@gamepark/react-game 6.0.0-alpha.0 → 6.2.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.
- package/dist/components/Avatar/Avatar.js +7 -5
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/GameProvider/GameContext.d.ts +1 -0
- package/dist/components/GameProvider/GameContext.js.map +1 -1
- package/dist/components/GameProvider/GameProvider.d.ts +1 -1
- package/dist/components/GameProvider/GameProvider.js +13 -4
- package/dist/components/GameProvider/GameProvider.js.map +1 -1
- package/dist/components/ImagesLoader/ImagesLoader.d.ts +2 -3
- package/dist/components/ImagesLoader/ImagesLoader.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +25 -10
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/ResultDialog.js +22 -17
- package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.d.ts +4 -9
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +7 -7
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js +5 -17
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.d.ts +3 -6
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +8 -8
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.d.ts +1 -0
- package/dist/components/dialogs/RulesDialog/RulesDialog.js +3 -3
- package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/material/DraggableMaterial.d.ts +14 -11
- package/dist/components/material/DraggableMaterial.js +102 -48
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/BoardDescription.d.ts +3 -0
- package/dist/components/material/FlatMaterial/BoardDescription.js +28 -0
- package/dist/components/material/FlatMaterial/BoardDescription.js.map +1 -0
- package/dist/components/material/FlatMaterial/CardDescription.d.ts +6 -0
- package/dist/components/material/FlatMaterial/CardDescription.js +32 -0
- package/dist/components/material/FlatMaterial/CardDescription.js.map +1 -0
- package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +35 -0
- package/dist/components/material/FlatMaterial/FlatMaterial.js +128 -0
- package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -0
- package/dist/components/material/FlatMaterial/TokenDescription.d.ts +10 -0
- package/dist/components/material/FlatMaterial/TokenDescription.js +44 -0
- package/dist/components/material/FlatMaterial/TokenDescription.js.map +1 -0
- package/dist/components/material/FlatMaterial/index.d.ts +4 -0
- package/dist/components/material/{Card → FlatMaterial}/index.js +4 -1
- package/dist/components/material/FlatMaterial/index.js.map +1 -0
- package/dist/components/material/GameTable/GameMaterialDisplay.js +64 -45
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.d.ts +2 -2
- package/dist/components/material/GameTable/GameTable.js +64 -16
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/GameTable/GameTableContent.js +22 -7
- package/dist/components/material/GameTable/GameTableContent.js.map +1 -1
- package/dist/components/material/ImageLoader/MaterialImageLoader.d.ts +5 -0
- package/dist/components/material/ImageLoader/MaterialImageLoader.js +33 -0
- package/dist/components/material/ImageLoader/MaterialImageLoader.js.map +1 -0
- package/dist/components/material/ImageLoader/index.d.ts +1 -0
- package/dist/components/material/{Token → ImageLoader}/index.js +1 -1
- package/dist/components/material/ImageLoader/index.js.map +1 -0
- package/dist/components/material/MaterialAnimations.d.ts +11 -14
- package/dist/components/material/MaterialAnimations.js +129 -82
- package/dist/components/material/MaterialAnimations.js.map +1 -1
- package/dist/components/material/MaterialComponent.d.ts +5 -10
- package/dist/components/material/MaterialComponent.js +8 -53
- package/dist/components/material/MaterialComponent.js.map +1 -1
- package/dist/components/material/MaterialDescription.d.ts +31 -18
- package/dist/components/material/MaterialDescription.js +36 -0
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.d.ts +14 -0
- package/dist/components/material/animations/CreateItemAnimations.js +72 -0
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -0
- package/dist/components/material/animations/DeleteItemAnimations.d.ts +14 -0
- package/dist/components/material/animations/DeleteItemAnimations.js +80 -0
- package/dist/components/material/animations/DeleteItemAnimations.js.map +1 -0
- package/dist/components/material/animations/ItemAnimations.d.ts +7 -0
- package/dist/components/material/animations/ItemAnimations.js +31 -0
- package/dist/components/material/animations/ItemAnimations.js.map +1 -0
- package/dist/components/material/animations/MaterialAnimations.d.ts +19 -0
- package/dist/components/material/animations/MaterialAnimations.js +51 -0
- package/dist/components/material/animations/MaterialAnimations.js.map +1 -0
- package/dist/components/material/animations/MaterialGameAnimations.d.ts +11 -0
- package/dist/components/material/animations/MaterialGameAnimations.js +42 -0
- package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -0
- package/dist/components/material/animations/MoveItemAnimations.d.ts +16 -0
- package/dist/components/material/animations/MoveItemAnimations.js +105 -0
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -0
- package/dist/components/material/animations/ShuffleAnimations.d.ts +8 -0
- package/dist/components/material/animations/ShuffleAnimations.js +34 -0
- package/dist/components/material/animations/ShuffleAnimations.js.map +1 -0
- package/dist/components/material/animations/adjustRotation.d.ts +1 -0
- package/dist/components/material/animations/adjustRotation.js +37 -0
- package/dist/components/material/animations/adjustRotation.js.map +1 -0
- package/dist/components/material/animations/getFirstStockItemTransforms.util.d.ts +2 -0
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js +32 -0
- package/dist/components/material/animations/getFirstStockItemTransforms.util.js.map +1 -0
- package/dist/components/material/animations/index.d.ts +9 -0
- package/dist/components/material/animations/index.js +29 -0
- package/dist/components/material/animations/index.js.map +1 -0
- package/dist/components/material/animations/isMovedOrDeletedItem.util.d.ts +3 -0
- package/dist/components/material/animations/isMovedOrDeletedItem.util.js +28 -0
- package/dist/components/material/animations/isMovedOrDeletedItem.util.js.map +1 -0
- package/dist/components/material/animations/itemMovementCss.util.d.ts +2 -0
- package/dist/components/material/animations/itemMovementCss.util.js +13 -0
- package/dist/components/material/animations/itemMovementCss.util.js.map +1 -0
- package/dist/components/material/animations/transformItem.util.d.ts +2 -0
- package/dist/components/material/animations/transformItem.util.js +11 -0
- package/dist/components/material/animations/transformItem.util.js.map +1 -0
- package/dist/components/material/index.d.ts +4 -7
- package/dist/components/material/index.js +4 -7
- package/dist/components/material/index.js.map +1 -1
- package/dist/components/material/locations/LocationDescription.d.ts +28 -0
- package/dist/components/material/locations/LocationDescription.js +54 -0
- package/dist/components/material/locations/LocationDescription.js.map +1 -0
- package/dist/components/material/locations/LocationsMask.d.ts +5 -0
- package/dist/components/material/locations/LocationsMask.js +48 -0
- package/dist/components/material/locations/LocationsMask.js.map +1 -0
- package/dist/components/material/locations/SimpleDropArea.d.ts +13 -0
- package/dist/components/material/{DropAreas → locations}/SimpleDropArea.js +44 -30
- package/dist/components/material/locations/SimpleDropArea.js.map +1 -0
- package/dist/components/material/locations/index.d.ts +3 -0
- package/dist/components/material/{Board → locations}/index.js +3 -1
- package/dist/components/material/locations/index.js.map +1 -0
- package/dist/components/material/utils/getItemFromContext.d.ts +3 -0
- package/dist/components/material/utils/getItemFromContext.js +10 -0
- package/dist/components/material/utils/getItemFromContext.js.map +1 -0
- package/dist/components/material/utils/index.d.ts +0 -3
- package/dist/components/material/utils/index.js +0 -3
- package/dist/components/material/utils/index.js.map +1 -1
- package/dist/components/material/utils/isDroppedItem.d.ts +2 -0
- package/dist/components/material/utils/isDroppedItem.js +15 -0
- package/dist/components/material/utils/isDroppedItem.js.map +1 -0
- package/dist/components/material/utils/isPlacedOnItem.d.ts +3 -0
- package/dist/components/material/utils/isPlacedOnItem.js +15 -0
- package/dist/components/material/utils/isPlacedOnItem.js.map +1 -0
- package/dist/components/material/utils/useIsAnimatingPlayerAction.d.ts +1 -0
- package/dist/components/material/utils/useIsAnimatingPlayerAction.js +10 -0
- package/dist/components/material/utils/useIsAnimatingPlayerAction.js.map +1 -0
- package/dist/components/menus/Menu/Menu.js +3 -3
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/components/menus/Result/ResultPopButton.js +1 -1
- package/dist/components/menus/Result/ResultPopButton.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorial.d.ts +47 -0
- package/dist/components/tutorial/MaterialTutorial.js +95 -0
- package/dist/components/tutorial/MaterialTutorial.js.map +1 -0
- package/dist/components/tutorial/MaterialTutorialDisplay.d.ts +1 -0
- package/dist/components/tutorial/MaterialTutorialDisplay.js +73 -0
- package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -0
- package/dist/components/tutorial/TutorialRulesWrapper.d.ts +3 -0
- package/dist/components/tutorial/TutorialRulesWrapper.js +60 -0
- package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -0
- package/dist/components/tutorial/index.d.ts +1 -0
- package/dist/components/{material/DropAreas → tutorial}/index.js +1 -1
- package/dist/components/tutorial/index.js.map +1 -0
- package/dist/css/componentSizeCss.d.ts +1 -5
- package/dist/css/componentSizeCss.js +1 -1
- package/dist/css/componentSizeCss.js.map +1 -1
- package/dist/css/fadeIn.d.ts +1 -0
- package/dist/css/fadeIn.js +13 -0
- package/dist/css/fadeIn.js.map +1 -0
- package/dist/css/index.d.ts +2 -0
- package/dist/css/index.js +2 -0
- package/dist/css/index.js.map +1 -1
- package/dist/css/shadowEffect.d.ts +1 -0
- package/dist/css/shadowEffect.js +11 -0
- package/dist/css/shadowEffect.js.map +1 -0
- package/dist/css/transformCss.d.ts +1 -0
- package/dist/css/transformCss.js +3 -2
- package/dist/css/transformCss.js.map +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useItemLocator.js +2 -3
- package/dist/hooks/useItemLocator.js.map +1 -1
- package/dist/hooks/useLegalMoves.js +11 -6
- package/dist/hooks/useLegalMoves.js.map +1 -1
- package/dist/hooks/useLocators.d.ts +1 -0
- package/dist/hooks/useLocators.js +8 -0
- package/dist/hooks/useLocators.js.map +1 -0
- package/dist/hooks/useMaterialContext.d.ts +2 -0
- package/dist/hooks/useMaterialContext.js +18 -0
- package/dist/hooks/useMaterialContext.js.map +1 -0
- package/dist/hooks/useMaterials.d.ts +2 -0
- package/dist/hooks/useMaterials.js +10 -0
- package/dist/hooks/useMaterials.js.map +1 -0
- package/dist/hooks/usePlayerName.js +12 -1
- package/dist/hooks/usePlayerName.js.map +1 -1
- package/dist/hooks/usePlayers.js +1 -1
- package/dist/hooks/usePlayers.js.map +1 -1
- package/dist/hooks/useRulesStep.d.ts +2 -0
- package/dist/hooks/useRulesStep.js +10 -0
- package/dist/hooks/useRulesStep.js.map +1 -0
- package/dist/hooks/useTutorialStep.d.ts +2 -0
- package/dist/hooks/useTutorialStep.js +15 -0
- package/dist/hooks/useTutorialStep.js.map +1 -0
- package/dist/hooks/useZoomToElements.d.ts +5 -0
- package/dist/hooks/useZoomToElements.js +65 -0
- package/dist/hooks/useZoomToElements.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/locators/DeckLocator.d.ts +4 -4
- package/dist/locators/DeckLocator.js +3 -2
- package/dist/locators/DeckLocator.js.map +1 -1
- package/dist/locators/HandLocator.d.ts +11 -11
- package/dist/locators/HandLocator.js.map +1 -1
- package/dist/locators/ItemLocator.d.ts +31 -41
- package/dist/locators/ItemLocator.js +33 -90
- package/dist/locators/ItemLocator.js.map +1 -1
- package/dist/locators/LineLocator.d.ts +7 -5
- package/dist/locators/LineLocator.js +10 -1
- package/dist/locators/LineLocator.js.map +1 -1
- package/dist/locators/PileLocator.d.ts +8 -6
- package/dist/locators/PileLocator.js +13 -1
- package/dist/locators/PileLocator.js.map +1 -1
- package/dist/utilities/animations.constants.d.ts +16 -0
- package/dist/utilities/animations.constants.js +82 -0
- package/dist/utilities/animations.constants.js.map +1 -0
- package/dist/utilities/animations.util.d.ts +4 -0
- package/dist/utilities/animations.util.js +78 -0
- package/dist/utilities/animations.util.js.map +1 -0
- package/dist/utilities/bounds.util.d.ts +18 -0
- package/dist/utilities/bounds.util.js +85 -0
- package/dist/utilities/bounds.util.js.map +1 -0
- package/dist/utilities/calculation.util.d.ts +14 -0
- package/dist/utilities/calculation.util.js +24 -0
- package/dist/utilities/calculation.util.js.map +1 -0
- package/dist/utilities/zoom.util.d.ts +4 -0
- package/dist/utilities/zoom.util.js +17 -0
- package/dist/utilities/zoom.util.js.map +1 -0
- package/package.json +7 -5
- package/dist/components/material/Board/Board.d.ts +0 -17
- package/dist/components/material/Board/Board.js +0 -34
- package/dist/components/material/Board/Board.js.map +0 -1
- package/dist/components/material/Board/index.d.ts +0 -1
- package/dist/components/material/Board/index.js.map +0 -1
- package/dist/components/material/Card/Card.d.ts +0 -23
- package/dist/components/material/Card/Card.js +0 -49
- package/dist/components/material/Card/Card.js.map +0 -1
- package/dist/components/material/Card/index.d.ts +0 -1
- package/dist/components/material/Card/index.js.map +0 -1
- package/dist/components/material/DropAreas/SimpleDropArea.d.ts +0 -12
- package/dist/components/material/DropAreas/SimpleDropArea.js.map +0 -1
- package/dist/components/material/DropAreas/index.d.ts +0 -1
- package/dist/components/material/DropAreas/index.js.map +0 -1
- package/dist/components/material/Items.d.ts +0 -4
- package/dist/components/material/Items.js +0 -3
- package/dist/components/material/Items.js.map +0 -1
- package/dist/components/material/Token/Token.d.ts +0 -18
- package/dist/components/material/Token/Token.js +0 -34
- package/dist/components/material/Token/Token.js.map +0 -1
- package/dist/components/material/Token/index.d.ts +0 -1
- package/dist/components/material/Token/index.js.map +0 -1
- package/dist/components/material/utils/IsMoveThisItem.d.ts +0 -2
- package/dist/components/material/utils/IsMoveThisItem.js +0 -12
- package/dist/components/material/utils/IsMoveThisItem.js.map +0 -1
- package/dist/components/material/utils/IsMoveThisItemToLocation.d.ts +0 -3
- package/dist/components/material/utils/IsMoveThisItemToLocation.js +0 -11
- package/dist/components/material/utils/IsMoveThisItemToLocation.js.map +0 -1
- package/dist/components/material/utils/IsMoveToLocation.d.ts +0 -2
- package/dist/components/material/utils/IsMoveToLocation.js +0 -13
- package/dist/components/material/utils/IsMoveToLocation.js.map +0 -1
- package/dist/components/material/utils/IsMoveToStock.d.ts +0 -4
- package/dist/components/material/utils/IsMoveToStock.js +0 -18
- package/dist/components/material/utils/IsMoveToStock.js.map +0 -1
- package/dist/hooks/useStocks.d.ts +0 -2
- package/dist/hooks/useStocks.js +0 -12
- package/dist/hooks/useStocks.js.map +0 -1
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
-
return cooked;
|
|
5
|
-
};
|
|
6
2
|
var __assign = (this && this.__assign) || function () {
|
|
7
3
|
__assign = Object.assign || function(t) {
|
|
8
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -32,47 +28,62 @@ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
|
32
28
|
var react_1 = require("react");
|
|
33
29
|
var hooks_1 = require("../../../hooks");
|
|
34
30
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
35
|
-
var pickBy_1 = __importDefault(require("lodash/pickBy"));
|
|
36
|
-
var utils_1 = require("../utils");
|
|
37
31
|
var MaterialComponent_1 = require("../MaterialComponent");
|
|
38
32
|
var css_1 = require("../../../css");
|
|
39
33
|
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
40
34
|
var dialogs_1 = require("../../dialogs");
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
35
|
+
var MaterialTutorialDisplay_1 = require("../../tutorial/MaterialTutorialDisplay");
|
|
36
|
+
var useTutorialStep_1 = require("../../../hooks/useTutorialStep");
|
|
37
|
+
var tutorial_1 = require("../../tutorial");
|
|
38
|
+
var locations_1 = require("../locations");
|
|
39
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
40
|
+
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
44
41
|
var GameMaterialDisplay = function () {
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var locators = (_b = context.locators) !== null && _b !== void 0 ? _b : {};
|
|
49
|
-
var player = (0, hooks_1.usePlayerId)();
|
|
42
|
+
var context = (0, hooks_1.useMaterialContext)();
|
|
43
|
+
var material = context.material;
|
|
44
|
+
var locators = context.locators;
|
|
50
45
|
var rules = (0, hooks_1.useRules)();
|
|
51
|
-
var legalMoves = (0, hooks_1.useLegalMoves)();
|
|
52
46
|
var play = (0, hooks_1.usePlay)();
|
|
53
|
-
var
|
|
54
|
-
(0,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
var zoomToElements = (0, hooks_1.useZoomToElements)();
|
|
48
|
+
var resetTransform = (0, react_zoom_pan_pinch_1.useControls)().resetTransform;
|
|
49
|
+
var focusRefs = (0, react_1.useRef)(new Set());
|
|
50
|
+
var tutorialStep = (0, useTutorialStep_1.useTutorialStep)();
|
|
51
|
+
var tutorialPopup = !(rules === null || rules === void 0 ? void 0 : rules.game.tutorialPopupClosed) && (tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.popup);
|
|
52
|
+
var tutorialFocus = (0, react_1.useMemo)(function () {
|
|
53
|
+
var _a;
|
|
54
|
+
focusRefs.current = new Set();
|
|
55
|
+
var tutorialFocus = (rules === null || rules === void 0 ? void 0 : rules.game) ? (_a = tutorialStep === null || tutorialStep === void 0 ? void 0 : tutorialStep.focus) === null || _a === void 0 ? void 0 : _a.call(tutorialStep, rules.game) : undefined;
|
|
56
|
+
if (!tutorialFocus) {
|
|
57
|
+
resetTransform(1000);
|
|
58
|
+
}
|
|
59
|
+
return tutorialFocus;
|
|
60
|
+
}, [tutorialStep]);
|
|
61
|
+
var addFocusRef = (0, react_1.useCallback)(function (ref) {
|
|
62
|
+
if (!ref || focusRefs.current.has(ref))
|
|
63
|
+
return;
|
|
64
|
+
focusRefs.current.add(ref);
|
|
65
|
+
if ((0, tutorial_1.countTutorialFocusRefs)(tutorialFocus) === focusRefs.current.size) {
|
|
66
|
+
var elements_1 = Array.from(focusRefs.current);
|
|
67
|
+
setTimeout(function () { return zoomToElements(elements_1, undefined, 1000); });
|
|
68
|
+
}
|
|
69
|
+
}, [tutorialFocus]);
|
|
58
70
|
if (!rules)
|
|
59
71
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
60
72
|
var game = rules === null || rules === void 0 ? void 0 : rules.game;
|
|
61
|
-
var commonContext = { game: game, player: player, material: material, locators: locators };
|
|
62
73
|
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [Object.entries(material).map(function (_a) {
|
|
63
74
|
var stringType = _a[0], description = _a[1];
|
|
64
|
-
if (!description.items)
|
|
65
|
-
return null;
|
|
66
75
|
var type = parseInt(stringType);
|
|
67
|
-
|
|
68
|
-
var innerLocations = Object.keys(innerLocators).map(function (type) { return parseInt(type); });
|
|
69
|
-
return description.items(game, player).map(function (item) {
|
|
76
|
+
return description.getStaticItems(context).map(function (item, index) {
|
|
70
77
|
var _a;
|
|
71
|
-
var legalMovesTo = innerLocations.length > 0 ? legalMoves.filter(function (move) { return rules.isMoveTrigger(move, function (move) { return (0, utils_1.isMoveOnItem)(move, item.id, innerLocations); }); }) : undefined;
|
|
72
78
|
var locator = locators[item.location.type];
|
|
73
|
-
return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_,
|
|
74
|
-
var
|
|
75
|
-
|
|
79
|
+
return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, displayIndex) {
|
|
80
|
+
var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
|
|
81
|
+
var innerLocations = description.getLocations(item, itemContext);
|
|
82
|
+
var focus = (0, tutorial_1.isStaticItemFocus)(type, item, tutorialFocus);
|
|
83
|
+
var locationsFocus = tutorialPopup ? getLocationsFocus(tutorialFocus).filter(function (location) { return innerLocations.some(function (innerLocation) { return (0, fast_deep_equal_1.default)(innerLocation, location); }); }) : [];
|
|
84
|
+
return (0, jsx_runtime_1.jsxs)(MaterialComponent_1.MaterialComponent, __assign({ type: type, itemId: item.id, playDown: tutorialPopup && !focus && !locationsFocus.length, ref: focus ? addFocusRef : undefined, css: [css_1.pointerCursorCss, css_1.transformCss.apply(void 0, locator.transformItem(item, itemContext))], onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, item), { local: true }); } }, { children: [(0, jsx_runtime_1.jsx)(locations_1.LocationsMask, { locations: locationsFocus }), innerLocations.map(function (location) {
|
|
85
|
+
return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
|
|
86
|
+
})] }), "".concat(type, "_").concat(index, "_").concat(displayIndex));
|
|
76
87
|
});
|
|
77
88
|
});
|
|
78
89
|
}), rules && game && Object.entries(game.items).map(function (_a) {
|
|
@@ -83,25 +94,33 @@ var GameMaterialDisplay = function () {
|
|
|
83
94
|
return items.map(function (item, index) {
|
|
84
95
|
var _a;
|
|
85
96
|
var locator = locators[item.location.type];
|
|
97
|
+
var description = material[type];
|
|
98
|
+
var focus = (0, tutorial_1.isItemFocus)(type, index, tutorialFocus);
|
|
86
99
|
return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, displayIndex) {
|
|
87
|
-
var
|
|
88
|
-
if (locator.hide(item,
|
|
100
|
+
var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
|
|
101
|
+
if (locator.hide(item, itemContext))
|
|
89
102
|
return null;
|
|
90
|
-
var
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
function () { return play(itemMoves[0], { delayed: rules.isUnpredictableMove(itemMoves[0], player) }); }
|
|
96
|
-
: undefined }, "".concat(type, "_").concat(index, "_").concat(displayIndex));
|
|
103
|
+
var innerLocations = description.getLocations(item, itemContext);
|
|
104
|
+
var locationsFocus = tutorialPopup ? getLocationsFocus(tutorialFocus).filter(function (location) { return innerLocations.some(function (innerLocation) { return (0, fast_deep_equal_1.default)(innerLocation, location); }); }) : [];
|
|
105
|
+
return (0, jsx_runtime_1.jsxs)(DraggableMaterial_1.DraggableMaterial, __assign({ type: type, index: index, displayIndex: displayIndex, playDown: tutorialPopup && !focus && !locationsFocus.length, ref: focus ? addFocusRef : undefined, onShortClick: function () { return play((0, rules_api_1.displayMaterialRules)(type, item, index), { local: true }); } }, { children: [(0, jsx_runtime_1.jsx)(locations_1.LocationsMask, { locations: locationsFocus }), innerLocations.map(function (location) {
|
|
106
|
+
return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
|
|
107
|
+
})] }), "".concat(type, "_").concat(index, "_").concat(displayIndex));
|
|
97
108
|
});
|
|
98
109
|
});
|
|
99
|
-
}), Object.
|
|
100
|
-
var
|
|
101
|
-
return locator.
|
|
102
|
-
|
|
110
|
+
}), Object.values(locators).map(function (locator) {
|
|
111
|
+
var _a;
|
|
112
|
+
return (_a = locator.locationDescription) === null || _a === void 0 ? void 0 : _a.getLocations(context).map(function (location) {
|
|
113
|
+
return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, ref: (0, tutorial_1.isLocationFocus)(location, tutorialFocus) ? addFocusRef : undefined }, JSON.stringify(location));
|
|
114
|
+
});
|
|
115
|
+
}), (0, jsx_runtime_1.jsx)(dialogs_1.MaterialRulesDialog, { open: !!(game === null || game === void 0 ? void 0 : game.rulesDisplay), close: function () { return play(rules_api_1.closeRulesDisplay, { local: true }); } }), (game === null || game === void 0 ? void 0 : game.tutorialStep) !== undefined && (0, jsx_runtime_1.jsx)(MaterialTutorialDisplay_1.MaterialTutorialDisplay, {})] });
|
|
103
116
|
};
|
|
104
117
|
exports.GameMaterialDisplay = GameMaterialDisplay;
|
|
105
|
-
var
|
|
106
|
-
|
|
118
|
+
var getLocationsFocus = function (focus) {
|
|
119
|
+
if (!focus)
|
|
120
|
+
return [];
|
|
121
|
+
if (Array.isArray(focus)) {
|
|
122
|
+
return focus.filter(tutorial_1.isLocationBuilder).map(function (builder) { return builder.location; });
|
|
123
|
+
}
|
|
124
|
+
return (0, tutorial_1.isLocationBuilder)(focus) ? [focus.location] : [];
|
|
125
|
+
};
|
|
107
126
|
//# sourceMappingURL=GameMaterialDisplay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameMaterialDisplay.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameMaterialDisplay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GameMaterialDisplay.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameMaterialDisplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/** @jsxImportSource @emotion/react */
|
|
2
2
|
import { FC } from 'react';
|
|
3
|
+
import { CollisionDetection } from '@dnd-kit/core';
|
|
3
4
|
export type GameTableProps = {
|
|
5
|
+
collisionAlgorithm?: CollisionDetection;
|
|
4
6
|
xMin: number;
|
|
5
7
|
xMax: number;
|
|
6
8
|
yMin: number;
|
|
7
9
|
yMax: number;
|
|
8
|
-
zoomMin?: number;
|
|
9
|
-
zoomMax?: number;
|
|
10
10
|
perspective?: number;
|
|
11
11
|
margin?: {
|
|
12
12
|
left: number;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
2
6
|
var __assign = (this && this.__assign) || function () {
|
|
3
7
|
__assign = Object.assign || function(t) {
|
|
4
8
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -10,6 +14,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
14
|
};
|
|
11
15
|
return __assign.apply(this, arguments);
|
|
12
16
|
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
13
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
21
|
exports.GameTable = void 0;
|
|
15
22
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
@@ -20,34 +27,75 @@ var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
|
20
27
|
var hooks_1 = require("../../../hooks");
|
|
21
28
|
var core_1 = require("@dnd-kit/core");
|
|
22
29
|
var modifiers_1 = require("@dnd-kit/modifiers");
|
|
23
|
-
var utils_1 = require("../utils");
|
|
24
|
-
var GameTableContent_1 = require("./GameTableContent");
|
|
25
|
-
var useStocks_1 = require("../../../hooks/useStocks");
|
|
26
30
|
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
27
|
-
var
|
|
31
|
+
var react_2 = require("@emotion/react");
|
|
32
|
+
var emotion_normalize_1 = __importDefault(require("emotion-normalize"));
|
|
33
|
+
var css_1 = require("../../../css");
|
|
34
|
+
var GameMaterialDisplay_1 = require("./GameMaterialDisplay");
|
|
35
|
+
var bounds_util_1 = require("../../../utilities/bounds.util");
|
|
28
36
|
var wheel = { step: 0.05 };
|
|
29
37
|
var doubleClick = { disabled: true };
|
|
30
|
-
var GameTable = function (
|
|
31
|
-
var _a =
|
|
38
|
+
var GameTable = function (_a) {
|
|
39
|
+
var collisionAlgorithm = _a.collisionAlgorithm, perspective = _a.perspective, xMin = _a.xMin, xMax = _a.xMax, yMin = _a.yMin, yMax = _a.yMax, _b = _a.margin, margin = _b === void 0 ? { left: 0, right: 0, top: 7, bottom: 0 } : _b;
|
|
32
40
|
var _c = (0, react_1.useState)(false), dragging = _c[0], setDragging = _c[1];
|
|
41
|
+
var context = (0, hooks_1.useMaterialContext)();
|
|
33
42
|
var play = (0, hooks_1.usePlay)();
|
|
34
|
-
var playerId = (0, hooks_1.usePlayerId)();
|
|
35
|
-
var rules = (0, hooks_1.useRules)();
|
|
36
43
|
var legalMoves = (0, hooks_1.useLegalMoves)();
|
|
37
|
-
var stocks = (0, useStocks_1.useStocks)();
|
|
38
44
|
var onDragEnd = (0, react_1.useCallback)(function (event) {
|
|
39
45
|
setDragging(false);
|
|
40
|
-
if (event.over && (0, DraggableMaterial_1.
|
|
41
|
-
var
|
|
46
|
+
if (event.over && (0, DraggableMaterial_1.dataIsDisplayedItem)(event.active.data.current) && dataIsLocation(event.over.data.current)) {
|
|
47
|
+
var item_1 = event.active.data.current;
|
|
48
|
+
var type = item_1.type, index = item_1.index, displayIndex = item_1.displayIndex;
|
|
49
|
+
var description_1 = context.material[type];
|
|
42
50
|
var location_1 = event.over.data.current;
|
|
43
|
-
var
|
|
51
|
+
var locator_1 = context.locators[location_1.type];
|
|
52
|
+
var moves = legalMoves.filter(function (move) {
|
|
53
|
+
return description_1.canDrag(move, __assign(__assign({}, context), item_1)) && locator_1.locationDescription.canDrop(move, location_1, context);
|
|
54
|
+
});
|
|
44
55
|
if (moves.length === 1) {
|
|
45
|
-
play((0, rules_api_1.dropItemMove)(
|
|
46
|
-
play(moves[0]
|
|
56
|
+
play((0, rules_api_1.dropItemMove)(type, index, displayIndex), { local: true });
|
|
57
|
+
play(moves[0]);
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
|
-
}, [
|
|
50
|
-
|
|
60
|
+
}, [context, play, legalMoves]);
|
|
61
|
+
var ref = (0, react_1.useRef)(null);
|
|
62
|
+
(0, react_1.useEffect)(function () {
|
|
63
|
+
var handler = function () {
|
|
64
|
+
var _a;
|
|
65
|
+
var zoomPanPinch = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.instance;
|
|
66
|
+
if (!(zoomPanPinch === null || zoomPanPinch === void 0 ? void 0 : zoomPanPinch.bounds))
|
|
67
|
+
return;
|
|
68
|
+
var _b = zoomPanPinch.transformState, positionX = _b.positionX, positionY = _b.positionY, scale = _b.scale;
|
|
69
|
+
var bounds = (0, bounds_util_1.calculateBounds)(zoomPanPinch, scale);
|
|
70
|
+
var _c = (0, bounds_util_1.getMouseBoundedPosition)(positionX, positionY, bounds, true, 0, 0, zoomPanPinch.wrapperComponent), x = _c.x, y = _c.y;
|
|
71
|
+
zoomPanPinch.setTransformState(scale, x, y);
|
|
72
|
+
};
|
|
73
|
+
window.addEventListener('resize', handler);
|
|
74
|
+
return function () {
|
|
75
|
+
window.removeEventListener('resize', handler);
|
|
76
|
+
};
|
|
77
|
+
}, []);
|
|
78
|
+
var hm = margin.left + margin.right;
|
|
79
|
+
var vm = margin.top + margin.bottom;
|
|
80
|
+
var tableFontSize = 8;
|
|
81
|
+
var minScale = (100 - vm) / tableFontSize / (yMax - yMin);
|
|
82
|
+
var ratio = (xMax - xMin) / (yMax - yMin);
|
|
83
|
+
var ratioWithMargins = ((100 - vm) * ratio + hm) / 100;
|
|
84
|
+
return ((0, jsx_runtime_1.jsxs)(core_1.DndContext, __assign({ collisionDetection: collisionAlgorithm, measuring: { draggable: { measure: core_1.getClientRect }, droppable: { measure: core_1.getClientRect } }, modifiers: [modifiers_1.snapCenterToCursor], onDragStart: function () { return setDragging(true); }, onDragEnd: onDragEnd, onDragCancel: function () { return setDragging(false); } }, { children: [(0, jsx_runtime_1.jsx)(react_2.Global, { styles: [emotion_normalize_1.default, globalStyle, globalFontSize(ratioWithMargins)] }), (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformWrapper, __assign({ ref: ref, minScale: minScale, maxScale: 1, initialScale: minScale, centerOnInit: true, wheel: wheel, smooth: false, panning: { disabled: dragging }, disablePadding: true, doubleClick: doubleClick }, { children: (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: {
|
|
85
|
+
position: 'absolute',
|
|
86
|
+
margin: "".concat(margin.top, "em ").concat(margin.right, "em ").concat(margin.bottom, "em ").concat(margin.left, "em"),
|
|
87
|
+
transformStyle: 'preserve-3d',
|
|
88
|
+
height: "min(100% - ".concat(vm, "em, (100vw - ").concat(hm, "em) / ").concat(ratio, ")"),
|
|
89
|
+
width: "calc(100vw - ".concat(hm, "em)"),
|
|
90
|
+
overflow: 'visible'
|
|
91
|
+
} }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), (0, css_1.fontSizeCss)(tableFontSize), perspective && (0, css_1.perspectiveCss)(perspective)] }, { children: (0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}) })) })) }))] })));
|
|
51
92
|
};
|
|
52
93
|
exports.GameTable = GameTable;
|
|
94
|
+
function dataIsLocation(data) {
|
|
95
|
+
return typeof (data === null || data === void 0 ? void 0 : data.type) === 'number';
|
|
96
|
+
}
|
|
97
|
+
var globalStyle = (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"], ["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"])), process.env.PUBLIC_URL + '/cover-1920.jpg');
|
|
98
|
+
var globalFontSize = function (ratio) { return (0, react_2.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1vw / ", ");\n }\n }\n"], ["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1vw / ", ");\n }\n }\n"])), ratio, ratio); };
|
|
99
|
+
var tableCss = function (xMin, xMax, yMin, yMax) { return (0, react_2.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"], ["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"])), xMax - xMin, yMax - yMin, -yMin, -xMin); };
|
|
100
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
53
101
|
//# sourceMappingURL=GameTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
14
14
|
};
|
|
15
15
|
return __assign.apply(this, arguments);
|
|
16
16
|
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
17
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
21
|
exports.GameTableContent = void 0;
|
|
19
22
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
@@ -23,26 +26,38 @@ var react_2 = require("@emotion/react");
|
|
|
23
26
|
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
24
27
|
var css_1 = require("../../../css");
|
|
25
28
|
var GameMaterialDisplay_1 = require("./GameMaterialDisplay");
|
|
29
|
+
var bounds_util_1 = require("../../../utilities/bounds.util");
|
|
30
|
+
var emotion_normalize_1 = __importDefault(require("emotion-normalize"));
|
|
26
31
|
var GameTableContent = function (props) {
|
|
27
|
-
var perspective = props.perspective, xMin = props.xMin, xMax = props.xMax, yMin = props.yMin, yMax = props.yMax, _a = props.
|
|
28
|
-
var
|
|
32
|
+
var perspective = props.perspective, xMin = props.xMin, xMax = props.xMax, yMin = props.yMin, yMax = props.yMax, _a = props.margin, margin = _a === void 0 ? { left: 0, right: 0, top: 7, bottom: 0 } : _a;
|
|
33
|
+
var ratio = (xMax - xMin) / (yMax - yMin);
|
|
34
|
+
var context = (0, react_zoom_pan_pinch_1.useTransformContext)();
|
|
29
35
|
(0, react_1.useEffect)(function () {
|
|
30
|
-
var handler = function () {
|
|
36
|
+
var handler = function () {
|
|
37
|
+
if (!context.bounds)
|
|
38
|
+
return;
|
|
39
|
+
var _a = context.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;
|
|
40
|
+
var bounds = (0, bounds_util_1.calculateBounds)(context, scale);
|
|
41
|
+
var _b = (0, bounds_util_1.getMouseBoundedPosition)(positionX, positionY, bounds, true, 0, 0, context.wrapperComponent), x = _b.x, y = _b.y;
|
|
42
|
+
context.setTransformState(scale, x, y);
|
|
43
|
+
};
|
|
31
44
|
window.addEventListener('resize', handler);
|
|
32
45
|
return function () {
|
|
33
46
|
window.removeEventListener('resize', handler);
|
|
34
47
|
};
|
|
35
48
|
}, []);
|
|
36
|
-
return ((0, jsx_runtime_1.
|
|
49
|
+
return ((0, jsx_runtime_1.jsxs)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: {
|
|
37
50
|
position: 'absolute',
|
|
38
51
|
margin: "".concat(margin.top, "em ").concat(margin.right, "em ").concat(margin.bottom, "em ").concat(margin.left, "em"),
|
|
39
52
|
transformStyle: 'preserve-3d',
|
|
40
|
-
height: "
|
|
53
|
+
height: "min(100% - ".concat((margin.top + margin.bottom), "em, 100vw / ").concat(ratio, ")"),
|
|
41
54
|
width: "calc(100% - ".concat(margin.left + margin.right, "em)"),
|
|
42
55
|
overflow: 'visible'
|
|
43
|
-
} }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax),
|
|
56
|
+
} }, { children: [(0, jsx_runtime_1.jsx)(react_2.Global, { styles: [emotion_normalize_1.default, globalStyle, globalFontSize(xMax - xMin + margin.left + margin.right, yMax - yMin + margin.top + margin.bottom)] }), (0, jsx_runtime_1.jsx)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), perspective && (0, css_1.perspectiveCss)(perspective)] }, { children: (0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}) }))] })));
|
|
44
57
|
};
|
|
45
58
|
exports.GameTableContent = GameTableContent;
|
|
46
59
|
var tableCss = function (xMin, xMax, yMin, yMax) { return (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"], ["\n transform-style: preserve-3d;\n width: ", "em;\n height: ", "em;\n\n > * {\n position: absolute;\n top: ", "em;\n left: ", "em;\n transform-style: preserve-3d;\n }\n"])), xMax - xMin, yMax - yMin, -yMin, -xMin); };
|
|
47
|
-
var
|
|
60
|
+
var globalStyle = (0, react_2.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"], ["\n html {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n *, *::before, *::after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n body {\n margin: 0;\n font-family: 'Oswald', \"Roboto Light\", serif;\n }\n\n #root {\n position: absolute;\n height: 100vh;\n width: 100vw;\n user-select: none;\n overflow: hidden;\n background-image: url(", ");\n background-color: white;\n background-size: cover;\n background-position: center;\n color: #eee;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n }\n }\n"])), process.env.PUBLIC_URL + '/cover-1920.jpg');
|
|
61
|
+
var globalFontSize = function (width, height) { return (0, react_2.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/", ") {\n font-size: calc(", "vw / ", ");\n }\n }\n"], ["\n body {\n font-size: 1vh;\n @media (max-aspect-ratio: ", "/", ") {\n font-size: calc(", "vw / ", ");\n }\n }\n"])), width, height, height, width); };
|
|
62
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
48
63
|
//# sourceMappingURL=GameTableContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameTableContent.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTableContent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GameTableContent.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTableContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAAqC;AACrC,wCAA4C;AAC5C,6DAA8E;AAC9E,oCAA6C;AAC7C,6DAA2D;AAC3D,8DAAyF;AACzF,wEAAyC;AAalC,IAAM,gBAAgB,GAA8B,UAAC,KAAK;IACvD,IAAA,WAAW,GAAgF,KAAK,YAArF,EAAE,IAAI,GAA0E,KAAK,KAA/E,EAAE,IAAI,GAAoE,KAAK,KAAzE,EAAE,IAAI,GAA8D,KAAK,KAAnE,EAAE,IAAI,GAAwD,KAAK,KAA7D,EAAE,KAAsD,KAAK,OAAV,EAAjD,MAAM,mBAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAA,CAAU;IACxG,IAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAE3C,IAAM,OAAO,GAAG,IAAA,0CAAmB,GAAE,CAAA;IACrC,IAAA,iBAAS,EAAC;QACR,IAAM,OAAO,GAAG;YACd,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAM;YACrB,IAAA,KAAkC,OAAO,CAAC,cAAc,EAAtD,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAA2B,CAAA;YAC9D,IAAM,MAAM,GAAG,IAAA,6BAAe,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACxC,IAAA,KAAW,IAAA,qCAAuB,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAApG,CAAC,OAAA,EAAE,CAAC,OAAgG,CAAA;YAC5G,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,wBAAC,yCAAkB,aAAC,YAAY,EAAE;YAChC,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAG,MAAM,CAAC,GAAG,gBAAM,MAAM,CAAC,KAAK,gBAAM,MAAM,CAAC,MAAM,gBAAM,MAAM,CAAC,IAAI,OAAI;YAC/E,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,qBAAc,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAe,KAAK,MAAG;YACzE,KAAK,EAAE,sBAAe,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,QAAK;YACrD,QAAQ,EAAE,SAAS;SACpB,iBACC,uBAAC,cAAM,IAAC,MAAM,EAAE,CAAC,2BAAS,EAAE,WAAW,EAAE,cAAc,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAC/I,yCAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,IAAI,IAAA,oBAAc,EAAC,WAAW,CAAC,CAAC,gBACtF,uBAAC,yCAAmB,KAAE,IAClB,KACa,CACtB,CAAA;AACH,CAAC,CAAA;AAlCY,QAAA,gBAAgB,oBAkC5B;AAED,IAAM,QAAQ,GAAG,UAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,IAAK,WAAA,WAAG,+PAAA,8CAErE,EAAW,iBACV,EAAW,oDAIZ,EAAK,iBACJ,EAAK,+CAGhB,KATU,IAAI,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EAIZ,CAAC,IAAI,EACJ,CAAC,IAAI,GAR4D,CAW5E,CAAA;AAED,IAAM,WAAW,OAAG,WAAG,q3BAAA,ieAwBK,EAA0C,8UAiBrE,KAjB2B,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAiBrE,CAAA;AAED,IAAM,cAAc,GAAG,UAAC,KAAa,EAAE,MAAc,IAAK,WAAA,WAAG,sMAAA,iEAG7B,EAAK,GAAI,EAAM,6BACvB,EAAM,OAAQ,EAAK,kBAG1C,KAJ+B,KAAK,EAAI,MAAM,EACvB,MAAM,EAAQ,KAAK,GAJe,CAOzD,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MaterialImageLoader = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var react_1 = require("react");
|
|
17
|
+
var ImagesLoader_1 = require("../../ImagesLoader");
|
|
18
|
+
var useMaterials_1 = require("../../../hooks/useMaterials");
|
|
19
|
+
var useMaterialImages = function () {
|
|
20
|
+
var descriptions = (0, useMaterials_1.useMaterials)();
|
|
21
|
+
return (0, react_1.useMemo)(function () {
|
|
22
|
+
if (!descriptions) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return Object.values(descriptions).flatMap(function (description) { return description.getImages(); });
|
|
26
|
+
}, [descriptions]);
|
|
27
|
+
};
|
|
28
|
+
var MaterialImageLoader = function (props) {
|
|
29
|
+
var images = useMaterialImages();
|
|
30
|
+
return (0, jsx_runtime_1.jsx)(ImagesLoader_1.ImagesLoader, __assign({ images: images }, props));
|
|
31
|
+
};
|
|
32
|
+
exports.MaterialImageLoader = MaterialImageLoader;
|
|
33
|
+
//# sourceMappingURL=MaterialImageLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialImageLoader.js","sourceRoot":"","sources":["../../../../src/components/material/ImageLoader/MaterialImageLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAmC;AACnC,mDAAoE;AACpE,4DAA0D;AAI1D,IAAM,iBAAiB,GAAG;IACxB,IAAM,YAAY,GAAG,IAAA,2BAAY,GAAE,CAAA;IACnC,OAAO,IAAA,eAAO,EAAC;QACb,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,EAAE,CAAA;SACV;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,SAAS,EAAE,EAAvB,CAAuB,CAAC,CAAA;IACtF,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;AACpB,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAiC,UAAC,KAAK;IAC9D,IAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAElC,OAAO,uBAAC,2BAAY,aAAC,MAAM,EAAE,MAAM,IAAM,KAAK,EAAI,CAAA;AACpD,CAAC,CAAA;AAGC,kDAAmB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MaterialImageLoader';
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./MaterialImageLoader"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/ImageLoader/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { Animation, AnimationContext, Animations } from '@gamepark/react-client';
|
|
2
|
-
import { CreateItem, DeleteItem,
|
|
3
|
-
import { Interpolation, Theme } from '@emotion/react';
|
|
4
|
-
import { ItemLocator } from '../../locators';
|
|
2
|
+
import { CreateItem, DeleteItem, ItemMove, MaterialGame, MaterialMove, MaterialRules, MoveItem } from '@gamepark/rules-api';
|
|
3
|
+
import { Interpolation, Keyframes, Theme } from '@emotion/react';
|
|
4
|
+
import { ItemContext, ItemLocator } from '../../locators';
|
|
5
5
|
import { MaterialDescription } from './MaterialDescription';
|
|
6
6
|
export declare class MaterialAnimations<P extends number = number, M extends number = number, L extends number = number> extends Animations<MaterialGame<P, M, L>, ItemMove<P, M, L>, P> {
|
|
7
7
|
getPreDuration(move: ItemMove<P, M, L>, context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
|
|
8
8
|
getPostDuration(move: ItemMove<P, M, L>, context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
|
|
9
9
|
moveDuration(_move: ItemMove<P, M, L>, _context: AnimationContext<MaterialGame<P, M, L>, MaterialMove<P, M, L>, P>): number;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
isItemToAnimate({ game, type, index, displayIndex, locators }: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>): boolean;
|
|
11
|
+
getItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MaterialMove<P, M, L>>): Interpolation<Theme>;
|
|
12
|
+
protected getCreateItemAnimation(context: ItemContext<P, M, L>, animation: Animation<CreateItem<P, M, L>>): Interpolation<Theme>;
|
|
12
13
|
protected fadein(duration: number): import("@emotion/utils").SerializedStyles;
|
|
13
|
-
protected
|
|
14
|
-
protected getKeyframesFromOrigin(origin: string,
|
|
15
|
-
protected getMoveItemAnimation(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
private closestRotation;
|
|
19
|
-
private getRotation;
|
|
20
|
-
protected getKeyframesToDestination(destination: string, _item: DisplayedItem<M>, _animation: Animation<ItemMove<P, M, L>>, _context: ItemAnimationContext<P, M, L>): import("@emotion/serialize").Keyframes;
|
|
21
|
-
protected getDeleteItemAnimation(item: DisplayedItem<M>, animation: Animation<DeleteItem<M>>, context: ItemAnimationContext<P, M, L>): Interpolation<Theme>;
|
|
14
|
+
protected getFirstStockItemTransforms(context: ItemContext<P, M, L>): string[];
|
|
15
|
+
protected getKeyframesFromOrigin(origin: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): Keyframes;
|
|
16
|
+
protected getMoveItemAnimation(context: ItemContext<P, M, L>, animation: Animation<MoveItem<P, M, L>>): Interpolation<Theme>;
|
|
17
|
+
protected getKeyframesToDestination(destination: string, _animation: Animation<ItemMove<P, M, L>>, _context: ItemContext<P, M, L>): Keyframes;
|
|
18
|
+
protected getDeleteItemAnimation(context: ItemContext<P, M, L>, animation: Animation<DeleteItem<M>>): Interpolation<Theme>;
|
|
22
19
|
}
|
|
23
20
|
export type ItemAnimationContext<P extends number = number, M extends number = number, L extends number = number> = {
|
|
24
21
|
material: Record<M, MaterialDescription<P, M, L>>;
|