@gamepark/react-game 6.8.2 → 6.8.4
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/GameProvider/GameContext.d.ts +7 -7
- package/dist/components/Header/MaterialHeader.d.ts +2 -3
- package/dist/components/Header/MaterialHeader.js +8 -18
- package/dist/components/Header/MaterialHeader.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +3 -2
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.d.ts +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.js +14 -6
- package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +8 -7
- package/dist/components/material/FlatMaterial/FlatMaterial.js +11 -11
- package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.js +19 -16
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.d.ts +1 -1
- package/dist/components/material/GameTable/GameTable.js +18 -18
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/MaterialComponent.js +2 -1
- package/dist/components/material/MaterialComponent.js.map +1 -1
- package/dist/components/material/MaterialDescription.d.ts +3 -2
- package/dist/components/material/MaterialDescription.js +1 -1
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/locations/SimpleDropArea.d.ts +1 -2
- package/dist/components/material/locations/SimpleDropArea.js +18 -20
- package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
- package/dist/hooks/useAnimations.js +2 -1
- package/dist/hooks/useAnimations.js.map +1 -1
- package/dist/hooks/useLocators.d.ts +1 -1
- package/dist/hooks/useMaterialContext.js +3 -2
- package/dist/hooks/useMaterialContext.js.map +1 -1
- package/dist/locators/ItemLocator.d.ts +6 -4
- package/dist/locators/ItemLocator.js +10 -7
- package/dist/locators/ItemLocator.js.map +1 -1
- package/dist/locators/LineLocator.d.ts +1 -0
- package/dist/locators/LineLocator.js +14 -8
- package/dist/locators/LineLocator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { Animations, TutorialDescription } from '@gamepark/react-client';
|
|
2
2
|
import { RulesCreator } from '@gamepark/rules-api';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { ItemLocatorRecord } from '../../locators';
|
|
5
|
+
import { MaterialDescriptionRecord } from '../material';
|
|
6
6
|
export type GameContext<Game = any, Move = any, PlayerId extends number = number, MaterialType extends number = number, LocationType extends number = number> = {
|
|
7
7
|
game: string;
|
|
8
8
|
Rules: RulesCreator<Game, Move, PlayerId>;
|
|
9
|
-
material?:
|
|
10
|
-
materialI18n?: Record<string, Partial<
|
|
11
|
-
locators?:
|
|
9
|
+
material?: Partial<MaterialDescriptionRecord<PlayerId, MaterialType, LocationType>>;
|
|
10
|
+
materialI18n?: Record<string, Partial<MaterialDescriptionRecord<PlayerId, MaterialType, LocationType>>>;
|
|
11
|
+
locators?: Partial<ItemLocatorRecord<PlayerId, MaterialType, LocationType>>;
|
|
12
12
|
optionsSpec?: any;
|
|
13
13
|
animations?: Animations<Game, Move, PlayerId>;
|
|
14
14
|
tutorial?: TutorialDescription<Game, Move, PlayerId>;
|
|
15
15
|
hasSounds?: boolean;
|
|
16
16
|
};
|
|
17
17
|
export type MaterialGameContext<Game = any, Move = any, PlayerId extends number = number, MaterialType extends number = number, LocationType extends number = number> = GameContext<Game, Move, PlayerId, MaterialType, LocationType> & {
|
|
18
|
-
material:
|
|
19
|
-
locators:
|
|
18
|
+
material: Partial<MaterialDescriptionRecord<PlayerId, MaterialType, LocationType>>;
|
|
19
|
+
locators: Partial<ItemLocatorRecord<PlayerId, MaterialType, LocationType>>;
|
|
20
20
|
};
|
|
21
21
|
export declare const gameContext: React.Context<GameContext<any, any, number, number, number>>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/** @jsxImportSource @emotion/react */
|
|
2
|
-
import { HeaderProps } from './Header';
|
|
3
1
|
import { ComponentType } from 'react';
|
|
2
|
+
import { HeaderProps } from './Header';
|
|
4
3
|
export type MaterialHeaderProps<RulesStep extends number = number> = {
|
|
5
4
|
loading?: boolean;
|
|
6
|
-
rulesStepsHeaders: Record<RulesStep, ComponentType
|
|
5
|
+
rulesStepsHeaders: Partial<Record<RulesStep, ComponentType>>;
|
|
7
6
|
GameOver?: ComponentType;
|
|
8
7
|
GameOverRule?: ComponentType;
|
|
9
8
|
} & HeaderProps;
|
|
@@ -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++) {
|
|
@@ -25,23 +21,18 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
25
21
|
}
|
|
26
22
|
return t;
|
|
27
23
|
};
|
|
28
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
-
};
|
|
31
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
25
|
exports.MaterialHeader = void 0;
|
|
33
26
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
34
27
|
/** @jsxImportSource @emotion/react */
|
|
35
|
-
var Header_1 = require("./Header");
|
|
36
|
-
var react_i18next_1 = require("react-i18next");
|
|
37
|
-
var hooks_1 = require("../../hooks");
|
|
38
|
-
var react_1 = require("react");
|
|
39
|
-
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
40
28
|
var faCircleQuestion_1 = require("@fortawesome/free-regular-svg-icons/faCircleQuestion");
|
|
29
|
+
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
30
|
+
var react_1 = require("react");
|
|
31
|
+
var react_i18next_1 = require("react-i18next");
|
|
41
32
|
var css_1 = require("../../css");
|
|
33
|
+
var hooks_1 = require("../../hooks");
|
|
42
34
|
var dialogs_1 = require("../dialogs");
|
|
43
|
-
var
|
|
44
|
-
var react_2 = require("@emotion/react");
|
|
35
|
+
var Header_1 = require("./Header");
|
|
45
36
|
var MaterialHeader = function (_a) {
|
|
46
37
|
var loading = _a.loading, rulesStepsHeaders = _a.rulesStepsHeaders, GameOver = _a.GameOver, GameOverRule = _a.GameOverRule, props = __rest(_a, ["loading", "rulesStepsHeaders", "GameOver", "GameOverRule"]);
|
|
47
38
|
var t = (0, react_i18next_1.useTranslation)().t;
|
|
@@ -49,7 +40,8 @@ var MaterialHeader = function (_a) {
|
|
|
49
40
|
var RulesStepsHeader = (game === null || game === void 0 ? void 0 : game.rule) ? rulesStepsHeaders[game.rule.id] : undefined;
|
|
50
41
|
return ((0, jsx_runtime_1.jsx)(Header_1.Header, __assign({}, props, { children: loading ? t('Game loading...')
|
|
51
42
|
: RulesStepsHeader ? (0, jsx_runtime_1.jsx)(RulesStepsHeader, {})
|
|
52
|
-
:
|
|
43
|
+
: (game === null || game === void 0 ? void 0 : game.rule) !== undefined ? t("TODO: header for rule id ".concat(game.rule.id))
|
|
44
|
+
: GameOver ? (0, jsx_runtime_1.jsx)(GameOver, {}) : (0, jsx_runtime_1.jsx)(GameOverHeader, { GameOverRule: GameOverRule }) })));
|
|
53
45
|
};
|
|
54
46
|
exports.MaterialHeader = MaterialHeader;
|
|
55
47
|
var GameOverHeader = function (_a) {
|
|
@@ -58,8 +50,6 @@ var GameOverHeader = function (_a) {
|
|
|
58
50
|
var _b = (0, react_1.useState)(false), dialogOpen = _b[0], setDialogOpen = _b[1];
|
|
59
51
|
if (!GameOverRule)
|
|
60
52
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: resultText });
|
|
61
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("span", { children: [resultText, "\u00A0", (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faCircleQuestion_1.faCircleQuestion, onClick: function () { return setDialogOpen(true); }, css: css_1.pointerCursorCss })] }), (0, jsx_runtime_1.jsx)(dialogs_1.RulesDialog, __assign({ open: dialogOpen, close: function () { return setDialogOpen(false); }
|
|
53
|
+
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("span", { children: [resultText, "\u00A0", (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faCircleQuestion_1.faCircleQuestion, onClick: function () { return setDialogOpen(true); }, css: css_1.pointerCursorCss })] }), (0, jsx_runtime_1.jsx)(dialogs_1.RulesDialog, __assign({ open: dialogOpen, close: function () { return setDialogOpen(false); }, scrollbar: true }, { children: (0, jsx_runtime_1.jsx)(GameOverRule, {}) }))] });
|
|
62
54
|
};
|
|
63
|
-
var scrollableContainer = (0, react_2.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n max-height: calc(90vh - 6em) !important;\n\n > div {\n max-height: calc(90vh - 6em) !important;\n\n // trick to avoid very thin bar on some resolutions with react-custom-scrollbars-2\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n }\n"], ["\n max-height: calc(90vh - 6em) !important;\n\n > div {\n max-height: calc(90vh - 6em) !important;\n\n // trick to avoid very thin bar on some resolutions with react-custom-scrollbars-2\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n }\n"])));
|
|
64
|
-
var templateObject_1;
|
|
65
55
|
//# sourceMappingURL=MaterialHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialHeader.js","sourceRoot":"","sources":["../../../src/components/Header/MaterialHeader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterialHeader.js","sourceRoot":"","sources":["../../../src/components/Header/MaterialHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,yFAAuF;AACvF,oEAAgE;AAEhE,+BAA+C;AAC/C,+CAA8C;AAC9C,iCAA4C;AAC5C,qCAAoD;AACpD,sCAAwC;AACxC,mCAA8C;AASvC,IAAM,cAAc,GAAG,UAC5B,EAAgG;IAA9F,IAAA,OAAO,aAAA,EAAE,iBAAiB,uBAAA,EAAE,QAAQ,cAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAA9D,4DAAgE,CAAF;IAEtD,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IAC9B,IAAM,IAAI,GAAG,IAAA,eAAO,GAAgB,CAAA;IACpC,IAAM,gBAAgB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjF,OAAO,CACL,uBAAC,eAAM,eAAK,KAAK,cAEb,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5B,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAC,gBAAgB,KAAE;gBACtC,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,mCAA4B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;oBACxE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAC,QAAQ,KAAE,CAAC,CAAC,CAAC,uBAAC,cAAc,IAAC,YAAY,EAAE,YAAY,GAAG,IAEzE,CACV,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,cAAc,kBAgB1B;AAED,IAAM,cAAc,GAAG,UAAC,EAAkD;QAAhD,YAAY,kBAAA;IACpC,IAAM,UAAU,GAAG,IAAA,qBAAa,GAAE,CAAA;IAC5B,IAAA,KAA8B,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAA;IAEnD,IAAI,CAAC,YAAY;QAAE,OAAO,2DAAG,UAAU,GAAI,CAAA;IAC3C,OAAO,6DACL,6CAAO,UAAU,YAAO,uBAAC,mCAAe,IAAC,IAAI,EAAE,mCAAgB,EAAE,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,IAAI,CAAC,EAAnB,CAAmB,EAAE,GAAG,EAAE,sBAAgB,GAAG,IAAO,EACpI,uBAAC,qBAAW,aAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAM,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB,EAAE,SAAS,sBACzE,uBAAC,YAAY,KAAE,IACH,IACb,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -30,14 +30,15 @@ var hooks_1 = require("../../../hooks");
|
|
|
30
30
|
var MaterialRulesDialogContent = function (_a) {
|
|
31
31
|
var rulesDisplay = _a.rulesDisplay;
|
|
32
32
|
var play = (0, hooks_1.usePlay)();
|
|
33
|
+
var context = (0, hooks_1.useMaterialContext)();
|
|
33
34
|
var description = (0, hooks_1.useMaterialDescription)(rulesDisplay.itemType);
|
|
34
35
|
if (!description)
|
|
35
36
|
return null;
|
|
36
37
|
var item = rulesDisplay.item;
|
|
37
|
-
var _b = description.getSize(item.id), width = _b.width, height = _b.height;
|
|
38
|
+
var _b = description.getSize(item.id, context), width = _b.width, height = _b.height;
|
|
38
39
|
return (0, jsx_runtime_1.jsxs)("div", __assign({ css: flex }, { children: [(0, jsx_runtime_1.jsx)(material_1.MaterialComponent, { type: rulesDisplay.itemType, itemId: item.id, css: [
|
|
39
40
|
noShrink, (0, css_1.fontSizeCss)(Math.min(75 / height, 75 / width, 10)),
|
|
40
|
-
(0, material_1.isFlatMaterialDescription)(description) && description.isHidden(item) && (0, css_1.transformCss)('rotateY(180deg)')
|
|
41
|
+
(0, material_1.isFlatMaterialDescription)(description) && description.isHidden(item, context) && (0, css_1.transformCss)('rotateY(180deg)')
|
|
41
42
|
] }), (0, jsx_runtime_1.jsx)(react_custom_scrollbars_2_1.default, __assign({ autoHeight: true, css: scrollableContainer }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: rulesStyle }, { children: (0, jsx_runtime_1.jsx)(description.rules, __assign({}, rulesDisplay, { closeDialog: function () { return play(rules_api_1.closeRulesDisplay, { local: true }); } })) })) }))] }));
|
|
42
43
|
};
|
|
43
44
|
exports.MaterialRulesDialogContent = MaterialRulesDialogContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRulesDialogContent.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/MaterialRulesDialogContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,iDAA6E;AAC7E,wCAAoC;AACpC,wFAAkD;AAClD,2CAA6E;AAC7E,oCAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"MaterialRulesDialogContent.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/MaterialRulesDialogContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,iDAA6E;AAC7E,wCAAoC;AACpC,wFAAkD;AAClD,2CAA6E;AAC7E,oCAAwD;AACxD,wCAAoF;AAM7E,IAAM,0BAA0B,GAAG,UACxC,EAA0D;QAAxD,YAAY,kBAAA;IAEd,IAAM,IAAI,GAAG,IAAA,eAAO,GAAE,CAAA;IACtB,IAAM,OAAO,GAAG,IAAA,0BAAkB,GAAW,CAAA;IAC7C,IAAM,WAAW,GAAG,IAAA,8BAAsB,EAAU,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC1E,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;IACxB,IAAA,KAAoB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAvD,KAAK,WAAA,EAAE,MAAM,YAA0C,CAAA;IAC/D,OAAO,0CAAK,GAAG,EAAE,IAAI,iBACnB,uBAAC,4BAAiB,IAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE;oBACpE,QAAQ,EAAE,IAAA,iBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC5D,IAAA,oCAAyB,EAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAA,kBAAY,EAAC,iBAAiB,CAAC;iBACjH,GAAG,EACJ,uBAAC,mCAAU,aAAC,UAAU,QAAC,GAAG,EAAE,mBAAmB,gBAC7C,yCAAK,GAAG,EAAE,UAAU,gBAClB,uBAAC,WAAW,CAAC,KAAK,eAAK,YAAY,IAAE,WAAW,EAAE,cAAM,OAAA,IAAI,CAAC,6BAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAxC,CAAwC,IAAG,IAC/F,IACK,KACT,CAAA;AACR,CAAC,CAAA;AApBY,QAAA,0BAA0B,8BAoBtC;AAED,IAAM,IAAI,OAAG,WAAG,gKAAA,4FAKf,IAAA,CAAA;AAED,IAAM,QAAQ,OAAG,WAAG,2FAAA,uBAEnB,IAAA,CAAA;AAED,IAAM,UAAU,OAAG,WAAG,2NAAA,uJAYrB,IAAA,CAAA;AAED,IAAM,mBAAmB,OAAG,WAAG,gZAAA,4UAe9B,IAAA,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/** @jsxImportSource @emotion/react */
|
|
2
1
|
import { FC } from 'react';
|
|
3
2
|
import { DialogProps } from '../index';
|
|
4
3
|
export type RulesDialogProps = {
|
|
5
4
|
close: () => void;
|
|
5
|
+
scrollbar?: boolean;
|
|
6
6
|
} & DialogProps;
|
|
7
7
|
export declare const RulesDialog: FC<RulesDialogProps>;
|
|
@@ -25,19 +25,27 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
25
25
|
}
|
|
26
26
|
return t;
|
|
27
27
|
};
|
|
28
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
28
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
32
|
exports.RulesDialog = void 0;
|
|
30
33
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
31
|
-
|
|
32
|
-
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
33
|
-
var faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
|
|
34
|
+
/** @jsxImportSource @emotion/react */
|
|
34
35
|
var react_1 = require("@emotion/react");
|
|
36
|
+
var faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
|
|
37
|
+
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
38
|
+
var react_custom_scrollbars_2_1 = __importDefault(require("react-custom-scrollbars-2"));
|
|
35
39
|
var css_1 = require("../../../css");
|
|
40
|
+
var index_1 = require("../index");
|
|
36
41
|
var RulesDialog = function (_a) {
|
|
37
|
-
var close = _a.close, children = _a.children, props = __rest(_a, ["close", "children"]);
|
|
38
|
-
return ((0, jsx_runtime_1.jsxs)(index_1.Dialog, __assign({ onBackdropClick: close }, props, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faXmark_1.faXmark, css: dialogCloseIcon, onClick: close }), (0, jsx_runtime_1.jsx)(react_1.ThemeProvider, __assign({ theme: function (theme) { return (__assign(__assign({}, theme), { buttons: (0, css_1.buttonCss)('#002448', '#c2ebf1', '#ade4ec') })); } }, { children:
|
|
42
|
+
var close = _a.close, children = _a.children, scrollbar = _a.scrollbar, props = __rest(_a, ["close", "children", "scrollbar"]);
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(index_1.Dialog, __assign({ onBackdropClick: close }, props, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faXmark_1.faXmark, css: dialogCloseIcon, onClick: close }), (0, jsx_runtime_1.jsx)(react_1.ThemeProvider, __assign({ theme: function (theme) { return (__assign(__assign({}, theme), { buttons: (0, css_1.buttonCss)('#002448', '#c2ebf1', '#ade4ec') })); } }, { children: scrollbar ?
|
|
44
|
+
(0, jsx_runtime_1.jsx)(react_custom_scrollbars_2_1.default, __assign({ autoHeight: true, css: scrollableContainer }, { children: children }))
|
|
45
|
+
: children }))] })));
|
|
39
46
|
};
|
|
40
47
|
exports.RulesDialog = RulesDialog;
|
|
41
48
|
var dialogCloseIcon = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n right: 0.5em;\n top: 0.3em;\n font-size: 4em;\n cursor: pointer;\n z-index: 100;\n"], ["\n position: absolute;\n right: 0.5em;\n top: 0.3em;\n font-size: 4em;\n cursor: pointer;\n z-index: 100;\n"])));
|
|
42
|
-
var
|
|
49
|
+
var scrollableContainer = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: calc(90vh - 6em) !important;\n\n > div {\n max-height: calc(90vh - 6em) !important;\n\n // trick to avoid very thin bar on some resolutions with react-custom-scrollbars-2\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n }\n"], ["\n max-height: calc(90vh - 6em) !important;\n\n > div {\n max-height: calc(90vh - 6em) !important;\n\n // trick to avoid very thin bar on some resolutions with react-custom-scrollbars-2\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n }\n"])));
|
|
50
|
+
var templateObject_1, templateObject_2;
|
|
43
51
|
//# sourceMappingURL=RulesDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesDialog.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/RulesDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RulesDialog.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/RulesDialog.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wCAAmD;AACnD,qEAAmE;AACnE,oEAAgE;AAEhE,wFAAkD;AAClD,oCAAwC;AACxC,kCAA8C;AAOvC,IAAM,WAAW,GAAyB,UAAC,EAA0D;IAAxD,IAAA,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAK,KAAK,cAAtC,kCAAwC,CAAF;IACtF,OAAO,CACL,wBAAC,cAAM,aAAC,eAAe,EAAE,KAAK,IAAM,KAAK,eACvC,uBAAC,mCAAe,IAAC,IAAI,EAAE,iBAAO,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,GAAG,EACvE,uBAAC,qBAAa,aAAC,KAAK,EAAE,UAAA,KAAK,IAAI,OAAA,uBAAM,KAAK,KAAE,OAAO,EAAE,IAAA,eAAS,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,IAAG,EAAnE,CAAmE,gBAC/F,SAAS,CAAC,CAAC;oBACV,uBAAC,mCAAU,aAAC,UAAU,QAAC,GAAG,EAAE,mBAAmB,gBAC5C,QAAQ,IACE;oBACb,CAAC,CAAC,QAAQ,IAEE,KACT,CACV,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,WAAW,eAcvB;AAED,IAAM,eAAe,OAAG,WAAG,uLAAA,mHAO1B,IAAA,CAAA;AAED,IAAM,mBAAmB,OAAG,WAAG,gZAAA,4UAe9B,IAAA,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { HTMLAttributes } from 'react';
|
|
3
3
|
import { ComponentCommonProps, ComponentSize, MaterialDescription } from '../MaterialDescription';
|
|
4
4
|
import { MaterialItem } from '@gamepark/rules-api';
|
|
5
|
+
import { MaterialContext } from '../../../locators';
|
|
5
6
|
export type FlatMaterialProps = ComponentSize & ComponentCommonProps & {
|
|
6
7
|
image?: string;
|
|
7
8
|
back?: {
|
|
@@ -19,17 +20,17 @@ export declare const FlatMaterial: import("react").ForwardRefExoticComponent<Com
|
|
|
19
20
|
export declare abstract class FlatMaterialDescription<P extends number = number, M extends number = number, L extends number = number, ItemId = any> extends MaterialDescription<P, M, L, ItemId> {
|
|
20
21
|
image?: string;
|
|
21
22
|
images?: Record<ItemId extends keyof any ? ItemId : never, string>;
|
|
22
|
-
getImage(itemId: ItemId): string | undefined;
|
|
23
|
+
getImage(itemId: ItemId, context: MaterialContext<P, M, L>): string | undefined;
|
|
23
24
|
backImage?: string;
|
|
24
25
|
backImages?: Record<ItemId extends keyof any ? ItemId : never, string>;
|
|
25
|
-
getBackImage(itemId: ItemId): string | undefined;
|
|
26
|
+
getBackImage(itemId: ItemId, context: MaterialContext<P, M, L>): string | undefined;
|
|
26
27
|
borderRadius?: number;
|
|
27
|
-
getBorderRadius(_itemId: ItemId): number | undefined;
|
|
28
|
-
getFlatMaterialProps(itemId: ItemId): FlatMaterialProps;
|
|
28
|
+
getBorderRadius(_itemId: ItemId, _context: MaterialContext<P, M, L>): number | undefined;
|
|
29
|
+
getFlatMaterialProps(itemId: ItemId, context: MaterialContext<P, M, L>): FlatMaterialProps;
|
|
29
30
|
getImages(): string[];
|
|
30
|
-
protected getFrontId(itemId: ItemId): any;
|
|
31
|
-
protected getBackId(itemId: ItemId): any;
|
|
31
|
+
protected getFrontId(itemId: ItemId, _context: MaterialContext<P, M, L>): any;
|
|
32
|
+
protected getBackId(itemId: ItemId, _context: MaterialContext<P, M, L>): any;
|
|
32
33
|
protected hasBackFace(): boolean;
|
|
33
|
-
isHidden(item: Partial<MaterialItem<P, L
|
|
34
|
+
isHidden(item: Partial<MaterialItem<P, L>>, context: MaterialContext<P, M, L>): boolean;
|
|
34
35
|
}
|
|
35
36
|
export declare function isFlatMaterialDescription<P extends number = number, M extends number = number, L extends number = number, ItemId = any>(description: MaterialDescription<P, M, L, ItemId>): description is FlatMaterialDescription<P, M, L, ItemId>;
|
|
@@ -72,19 +72,19 @@ var FlatMaterialDescription = /** @class */ (function (_super) {
|
|
|
72
72
|
function FlatMaterialDescription() {
|
|
73
73
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
74
74
|
}
|
|
75
|
-
FlatMaterialDescription.prototype.getImage = function (itemId) {
|
|
75
|
+
FlatMaterialDescription.prototype.getImage = function (itemId, context) {
|
|
76
76
|
var _a, _b;
|
|
77
|
-
return (_b = (_a = this.images) === null || _a === void 0 ? void 0 : _a[this.getFrontId(itemId)]) !== null && _b !== void 0 ? _b : this.image;
|
|
77
|
+
return (_b = (_a = this.images) === null || _a === void 0 ? void 0 : _a[this.getFrontId(itemId, context)]) !== null && _b !== void 0 ? _b : this.image;
|
|
78
78
|
};
|
|
79
|
-
FlatMaterialDescription.prototype.getBackImage = function (itemId) {
|
|
79
|
+
FlatMaterialDescription.prototype.getBackImage = function (itemId, context) {
|
|
80
80
|
var _a, _b;
|
|
81
|
-
return (_b = (_a = this.backImages) === null || _a === void 0 ? void 0 : _a[this.getBackId(itemId)]) !== null && _b !== void 0 ? _b : this.backImage;
|
|
81
|
+
return (_b = (_a = this.backImages) === null || _a === void 0 ? void 0 : _a[this.getBackId(itemId, context)]) !== null && _b !== void 0 ? _b : this.backImage;
|
|
82
82
|
};
|
|
83
|
-
FlatMaterialDescription.prototype.getBorderRadius = function (_itemId) {
|
|
83
|
+
FlatMaterialDescription.prototype.getBorderRadius = function (_itemId, _context) {
|
|
84
84
|
return this.borderRadius;
|
|
85
85
|
};
|
|
86
|
-
FlatMaterialDescription.prototype.getFlatMaterialProps = function (itemId) {
|
|
87
|
-
return __assign(__assign({}, this.getSize(itemId)), { image: this.getImage(itemId), back: this.backImage || this.backImages ? { image: this.getBackImage(itemId) } : undefined, borderRadius: this.getBorderRadius(itemId) });
|
|
86
|
+
FlatMaterialDescription.prototype.getFlatMaterialProps = function (itemId, context) {
|
|
87
|
+
return __assign(__assign({}, this.getSize(itemId, context)), { image: this.getImage(itemId, context), back: this.backImage || this.backImages ? { image: this.getBackImage(itemId, context) } : undefined, borderRadius: this.getBorderRadius(itemId, context) });
|
|
88
88
|
};
|
|
89
89
|
FlatMaterialDescription.prototype.getImages = function () {
|
|
90
90
|
var images = [];
|
|
@@ -98,17 +98,17 @@ var FlatMaterialDescription = /** @class */ (function (_super) {
|
|
|
98
98
|
images.push.apply(images, Object.values(this.backImages));
|
|
99
99
|
return images;
|
|
100
100
|
};
|
|
101
|
-
FlatMaterialDescription.prototype.getFrontId = function (itemId) {
|
|
101
|
+
FlatMaterialDescription.prototype.getFrontId = function (itemId, _context) {
|
|
102
102
|
return typeof itemId === 'object' ? itemId.front : itemId;
|
|
103
103
|
};
|
|
104
|
-
FlatMaterialDescription.prototype.getBackId = function (itemId) {
|
|
104
|
+
FlatMaterialDescription.prototype.getBackId = function (itemId, _context) {
|
|
105
105
|
return typeof itemId === 'object' ? itemId.back : itemId;
|
|
106
106
|
};
|
|
107
107
|
FlatMaterialDescription.prototype.hasBackFace = function () {
|
|
108
108
|
return !!this.backImage || !!this.backImages;
|
|
109
109
|
};
|
|
110
|
-
FlatMaterialDescription.prototype.isHidden = function (item) {
|
|
111
|
-
return this.hasBackFace() && this.getFrontId(item.id) === undefined;
|
|
110
|
+
FlatMaterialDescription.prototype.isHidden = function (item, context) {
|
|
111
|
+
return this.hasBackFace() && this.getFrontId(item.id, context) === undefined;
|
|
112
112
|
};
|
|
113
113
|
return FlatMaterialDescription;
|
|
114
114
|
}(MaterialDescription_1.MaterialDescription));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlatMaterial.js","sourceRoot":"","sources":["../../../../src/components/material/FlatMaterial/FlatMaterial.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAAkD;AAClD,oCAAsI;AACtI,8DAAiG;AACjG,wCAAoC;
|
|
1
|
+
{"version":3,"file":"FlatMaterial.js","sourceRoot":"","sources":["../../../../src/components/material/FlatMaterial/FlatMaterial.tsx"],"names":[],"mappings":"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"}
|
|
@@ -25,19 +25,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.GameMaterialDisplay = void 0;
|
|
27
27
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
28
|
-
|
|
29
|
-
var hooks_1 = require("../../../hooks");
|
|
28
|
+
/** @jsxImportSource @emotion/react */
|
|
30
29
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
31
|
-
var
|
|
30
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
31
|
+
var react_1 = require("react");
|
|
32
|
+
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
32
33
|
var css_1 = require("../../../css");
|
|
33
|
-
var
|
|
34
|
-
var dialogs_1 = require("../../dialogs");
|
|
35
|
-
var MaterialTutorialDisplay_1 = require("../../tutorial/MaterialTutorialDisplay");
|
|
34
|
+
var hooks_1 = require("../../../hooks");
|
|
36
35
|
var useTutorialStep_1 = require("../../../hooks/useTutorialStep");
|
|
36
|
+
var locators_1 = require("../../../locators");
|
|
37
|
+
var dialogs_1 = require("../../dialogs");
|
|
37
38
|
var tutorial_1 = require("../../tutorial");
|
|
39
|
+
var MaterialTutorialDisplay_1 = require("../../tutorial/MaterialTutorialDisplay");
|
|
40
|
+
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
38
41
|
var locations_1 = require("../locations");
|
|
39
|
-
var
|
|
40
|
-
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
42
|
+
var MaterialComponent_1 = require("../MaterialComponent");
|
|
41
43
|
var GameMaterialDisplay = function () {
|
|
42
44
|
var context = (0, hooks_1.useMaterialContext)();
|
|
43
45
|
var material = context.material;
|
|
@@ -73,10 +75,10 @@ var GameMaterialDisplay = function () {
|
|
|
73
75
|
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [Object.entries(material).map(function (_a) {
|
|
74
76
|
var stringType = _a[0], description = _a[1];
|
|
75
77
|
var type = parseInt(stringType);
|
|
76
|
-
return description.getStaticItems(context).map(function (item, index) {
|
|
77
|
-
var _a;
|
|
78
|
-
var locator = locators[item.location.type];
|
|
79
|
-
return __spreadArray([], Array((
|
|
78
|
+
return description === null || description === void 0 ? void 0 : description.getStaticItems(context).map(function (item, index) {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
var locator = (_a = locators[item.location.type]) !== null && _a !== void 0 ? _a : locators_1.centerLocator;
|
|
81
|
+
return __spreadArray([], Array((_b = item.quantity) !== null && _b !== void 0 ? _b : 1), true).map(function (_, displayIndex) {
|
|
80
82
|
var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
|
|
81
83
|
var innerLocations = getInnerLocations(item, itemContext, tutorialPopup, tutorialFocus);
|
|
82
84
|
var focus = (0, tutorial_1.isStaticItemFocus)(type, item, tutorialFocus);
|
|
@@ -96,7 +98,7 @@ var GameMaterialDisplay = function () {
|
|
|
96
98
|
var locator = locators[item.location.type];
|
|
97
99
|
return __spreadArray([], Array((_a = item.quantity) !== null && _a !== void 0 ? _a : 1), true).map(function (_, displayIndex) {
|
|
98
100
|
var itemContext = __assign(__assign({}, context), { type: type, index: index, displayIndex: displayIndex });
|
|
99
|
-
if (locator.hide(item, itemContext))
|
|
101
|
+
if (locator === null || locator === void 0 ? void 0 : locator.hide(item, itemContext))
|
|
100
102
|
return null;
|
|
101
103
|
var innerLocations = getInnerLocations(item, itemContext, tutorialPopup, tutorialFocus);
|
|
102
104
|
var focus = (0, tutorial_1.isItemFocus)(type, index, tutorialFocus);
|
|
@@ -108,7 +110,7 @@ var GameMaterialDisplay = function () {
|
|
|
108
110
|
});
|
|
109
111
|
}), Object.values(locators).map(function (locator) {
|
|
110
112
|
var _a;
|
|
111
|
-
return (_a = locator.locationDescription) === null || _a === void 0 ? void 0 : _a.getLocations(context).map(function (location) {
|
|
113
|
+
return (_a = locator === null || locator === void 0 ? void 0 : locator.locationDescription) === null || _a === void 0 ? void 0 : _a.getLocations(context).map(function (location) {
|
|
112
114
|
var isFocus = (0, tutorial_1.isLocationFocus)(location, tutorialFocus);
|
|
113
115
|
return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, { location: location, alwaysVisible: isFocus, ref: isFocus ? addFocusRef : undefined }, JSON.stringify(location));
|
|
114
116
|
});
|
|
@@ -116,8 +118,9 @@ var GameMaterialDisplay = function () {
|
|
|
116
118
|
};
|
|
117
119
|
exports.GameMaterialDisplay = GameMaterialDisplay;
|
|
118
120
|
var getInnerLocations = function (item, context, tutorialPopup, tutorialFocus) {
|
|
119
|
-
var
|
|
120
|
-
var
|
|
121
|
+
var _a, _b;
|
|
122
|
+
var locationsFocus = tutorialPopup ? getLocationsFocus(tutorialFocus).filter(function (location) { var _a, _b; return ((_a = context.locators[location.type]) === null || _a === void 0 ? void 0 : _a.parentItemType) === context.type && ((_b = location.parent) !== null && _b !== void 0 ? _b : 0) === context.index; }) : [];
|
|
123
|
+
var result = (_b = (_a = context.material[context.type]) === null || _a === void 0 ? void 0 : _a.getLocations(item, context).map(function (location) { return ({ location: location }); })) !== null && _b !== void 0 ? _b : [];
|
|
121
124
|
var _loop_1 = function (locationFocus) {
|
|
122
125
|
var focusableLocation = result.find(function (focusableLocation) { return (0, fast_deep_equal_1.default)(focusableLocation.location, locationFocus); });
|
|
123
126
|
if (focusableLocation) {
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
/** @jsxImportSource @emotion/react */
|
|
2
|
-
import { FC, HTMLAttributes } from 'react';
|
|
3
2
|
import { CollisionDetection } from '@dnd-kit/core';
|
|
3
|
+
import { FC, HTMLAttributes } from 'react';
|
|
4
4
|
export type GameTableProps = {
|
|
5
5
|
collisionAlgorithm?: CollisionDetection;
|
|
6
6
|
xMin: number;
|
|
@@ -29,26 +29,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.GameTable = void 0;
|
|
30
30
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
31
31
|
/** @jsxImportSource @emotion/react */
|
|
32
|
-
var
|
|
32
|
+
var core_1 = require("@dnd-kit/core");
|
|
33
|
+
var modifiers_1 = require("@dnd-kit/modifiers");
|
|
34
|
+
var react_1 = require("@emotion/react");
|
|
33
35
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
36
|
+
var react_2 = require("react");
|
|
34
37
|
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
38
|
+
var css_1 = require("../../../css");
|
|
35
39
|
var hooks_1 = require("../../../hooks");
|
|
36
|
-
var
|
|
37
|
-
var modifiers_1 = require("@dnd-kit/modifiers");
|
|
40
|
+
var bounds_util_1 = require("../../../utilities/bounds.util");
|
|
38
41
|
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
39
|
-
var react_2 = require("@emotion/react");
|
|
40
|
-
var css_1 = require("../../../css");
|
|
41
42
|
var GameMaterialDisplay_1 = require("./GameMaterialDisplay");
|
|
42
|
-
var bounds_util_1 = require("../../../utilities/bounds.util");
|
|
43
43
|
var wheel = { step: 0.05 };
|
|
44
44
|
var doubleClick = { disabled: true };
|
|
45
|
+
var pointerSensorOptions = { activationConstraint: { distance: 2 } };
|
|
45
46
|
var GameTable = function (_a) {
|
|
46
47
|
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, children = _a.children, props = __rest(_a, ["collisionAlgorithm", "perspective", "xMin", "xMax", "yMin", "yMax", "margin", "children"]);
|
|
47
|
-
var _c = (0,
|
|
48
|
+
var _c = (0, react_2.useState)(false), dragging = _c[0], setDragging = _c[1];
|
|
49
|
+
var sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.PointerSensor, pointerSensorOptions));
|
|
48
50
|
var context = (0, hooks_1.useMaterialContext)();
|
|
49
51
|
var play = (0, hooks_1.usePlay)();
|
|
50
52
|
var legalMoves = (0, hooks_1.useLegalMoves)();
|
|
51
|
-
var onDragEnd = (0,
|
|
53
|
+
var onDragEnd = (0, react_2.useCallback)(function (event) {
|
|
52
54
|
setDragging(false);
|
|
53
55
|
if (event.over && (0, DraggableMaterial_1.dataIsDisplayedItem)(event.active.data.current) && dataIsLocation(event.over.data.current)) {
|
|
54
56
|
var item = event.active.data.current;
|
|
@@ -57,17 +59,15 @@ var GameTable = function (_a) {
|
|
|
57
59
|
var location_1 = event.over.data.current;
|
|
58
60
|
var locator_1 = context.locators[location_1.type];
|
|
59
61
|
var itemContext_1 = __assign(__assign({}, context), item);
|
|
60
|
-
var moves = legalMoves.filter(function (move) {
|
|
61
|
-
return description_1.canDrag(move, itemContext_1) && locator_1.locationDescription.canDrop(move, location_1, itemContext_1);
|
|
62
|
-
});
|
|
62
|
+
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 = locator_1 === null || locator_1 === void 0 ? void 0 : locator_1.locationDescription) === null || _a === void 0 ? void 0 : _a.canDrop(move, location_1, itemContext_1)); });
|
|
63
63
|
if (moves.length === 1) {
|
|
64
64
|
play((0, rules_api_1.dropItemMove)(type, index, displayIndex), { local: true });
|
|
65
65
|
play(moves[0]);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
}, [context, play, legalMoves]);
|
|
69
|
-
var ref = (0,
|
|
70
|
-
(0,
|
|
69
|
+
var ref = (0, react_2.useRef)(null);
|
|
70
|
+
(0, react_2.useEffect)(function () {
|
|
71
71
|
var handler = function () {
|
|
72
72
|
var _a;
|
|
73
73
|
var zoomPanPinch = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.instance;
|
|
@@ -89,8 +89,8 @@ var GameTable = function (_a) {
|
|
|
89
89
|
var minScale = (100 - vm) / tableFontSize / (yMax - yMin);
|
|
90
90
|
var ratio = (xMax - xMin) / (yMax - yMin);
|
|
91
91
|
var ratioWithMargins = ((100 - vm) * ratio + hm) / 100;
|
|
92
|
-
var panning = (0,
|
|
93
|
-
var wrapperStyle = (0,
|
|
92
|
+
var panning = (0, react_2.useMemo)(function () { return ({ disabled: dragging }); }, [dragging]);
|
|
93
|
+
var wrapperStyle = (0, react_2.useMemo)(function () { return ({
|
|
94
94
|
position: 'absolute',
|
|
95
95
|
margin: "".concat(margin.top, "em ").concat(margin.right, "em ").concat(margin.bottom, "em ").concat(margin.left, "em"),
|
|
96
96
|
transformStyle: 'preserve-3d',
|
|
@@ -98,13 +98,13 @@ var GameTable = function (_a) {
|
|
|
98
98
|
width: "calc(100dvw - ".concat(hm, "em)"),
|
|
99
99
|
overflow: 'visible'
|
|
100
100
|
}); }, [margin, vm, hm, ratio]);
|
|
101
|
-
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)(
|
|
101
|
+
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], sensors: sensors, onDragStart: function () { return setDragging(true); }, onDragEnd: onDragEnd, onDragCancel: function () { return setDragging(false); } }, { children: [(0, jsx_runtime_1.jsx)(react_1.Global, { styles: ratioFontSize(ratioWithMargins) }), (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformWrapper, __assign({ ref: ref, minScale: minScale, maxScale: Math.max(1, minScale), initialScale: minScale, centerOnInit: true, wheel: wheel, smooth: false, panning: panning, disablePadding: true, doubleClick: doubleClick }, { children: (0, jsx_runtime_1.jsx)(react_zoom_pan_pinch_1.TransformComponent, __assign({ wrapperStyle: wrapperStyle }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ css: [tableCss(xMin, xMax, yMin, yMax), (0, css_1.fontSizeCss)(tableFontSize), perspective && (0, css_1.perspectiveCss)(perspective)] }, props, { children: [(0, jsx_runtime_1.jsx)(GameMaterialDisplay_1.GameMaterialDisplay, {}), children] })) })) }))] })));
|
|
102
102
|
};
|
|
103
103
|
exports.GameTable = GameTable;
|
|
104
104
|
function dataIsLocation(data) {
|
|
105
105
|
return typeof (data === null || data === void 0 ? void 0 : data.type) === 'number';
|
|
106
106
|
}
|
|
107
|
-
var ratioFontSize = function (ratio) { return (0,
|
|
108
|
-
var tableCss = function (xMin, xMax, yMin, yMax) { return (0,
|
|
107
|
+
var ratioFontSize = function (ratio) { return (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n .react-transform-wrapper {\n font-size: 1dvh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1dvw / ", ");\n }\n }\n"], ["\n .react-transform-wrapper {\n font-size: 1dvh;\n @media (max-aspect-ratio: ", "/1) {\n font-size: calc(1dvw / ", ");\n }\n }\n"])), ratio, ratio); };
|
|
108
|
+
var tableCss = function (xMin, xMax, yMin, yMax) { return (0, react_1.css)(templateObject_2 || (templateObject_2 = __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); };
|
|
109
109
|
var templateObject_1, templateObject_2;
|
|
110
110
|
//# sourceMappingURL=GameTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC
|
|
1
|
+
{"version":3,"file":"GameTable.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/GameTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ exports.MaterialComponent = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
34
34
|
var type = _a.type, itemId = _a.itemId, onShortClick = _a.onShortClick, _b = _a.onLongClick, onLongClick = _b === void 0 ? onShortClick : _b, props = __rest(_a, ["type", "itemId", "onShortClick", "onLongClick"]);
|
|
35
35
|
var game = (0, hooks_1.useGame)();
|
|
36
36
|
var description = (0, hooks_1.useMaterialDescription)(type);
|
|
37
|
+
var context = (0, hooks_1.useMaterialContext)();
|
|
37
38
|
var listeners = (0, use_long_press_1.useLongPress)(function () { return onLongClick && onLongClick(); }, {
|
|
38
39
|
detect: use_long_press_1.LongPressEventType.Pointer,
|
|
39
40
|
cancelOnMovement: 5,
|
|
@@ -49,7 +50,7 @@ exports.MaterialComponent = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
49
50
|
if (!description || !game)
|
|
50
51
|
return null;
|
|
51
52
|
if ((0, FlatMaterial_1.isFlatMaterialDescription)(description)) {
|
|
52
|
-
return ((0, jsx_runtime_1.jsx)(FlatMaterial_1.FlatMaterial, __assign({ ref: ref }, description.getFlatMaterialProps(itemId), props, (0, utilities_1.combineEventListeners)(listeners, props))));
|
|
53
|
+
return ((0, jsx_runtime_1.jsx)(FlatMaterial_1.FlatMaterial, __assign({ ref: ref }, description.getFlatMaterialProps(itemId, context), props, (0, utilities_1.combineEventListeners)(listeners, props))));
|
|
53
54
|
}
|
|
54
55
|
return null;
|
|
55
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAA8D;AAE9D,iDAA0F;AAC1F,6CAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAA8D;AAE9D,iDAA0F;AAC1F,6CAAuD;AACvD,qCAAiF;AACjF,+CAAwE;AAU3D,QAAA,iBAAiB,GAAG,IAAA,kBAAU,EAAyC,UAClF,EAAoE,EAAE,GAAG;IAAvE,IAAA,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA,EAAE,mBAA0B,EAA1B,WAAW,mBAAG,YAAY,KAAA,EAAK,KAAK,cAAlE,iDAAoE,CAAF;IAElE,IAAM,IAAI,GAAG,IAAA,eAAO,GAAgB,CAAA;IACpC,IAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAA;IAChD,IAAM,OAAO,GAAG,IAAA,0BAAkB,GAAE,CAAA;IAEpC,IAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,cAAM,OAAA,WAAW,IAAI,WAAW,EAAE,EAA5B,CAA4B,EAAE;QACjE,MAAM,EAAE,mCAAkB,CAAC,OAAO;QAClC,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,UAAC,CAAC,EAAE,EAAU;gBAAR,MAAM,YAAA;YACpB,IAAI,MAAM,KAAK,wCAAuB,CAAC,kBAAkB,EAAE;gBACzD,UAAU,CAAC,cAAM,OAAA,YAAY,IAAI,YAAY,EAAE,EAA9B,CAA8B,CAAC,CAAA;aACjD;QACH,CAAC;QACD,YAAY,EAAE,UAAA,KAAK,IAAI,OAAA,CAAE,KAAoB,CAAC,MAAM,EAA7B,CAA6B,CAAC,qCAAqC;KAC3F,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtC,IAAI,IAAA,wCAAyB,EAAC,WAAW,CAAC,EAAE;QAC1C,OAAO,CACL,uBAAC,2BAAY,aAAC,GAAG,EAAE,GAAG,IAAM,WAAW,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAM,KAAK,EAAM,IAAA,iCAAqB,EAAC,SAAS,EAAE,KAAK,CAAC,EAAG,CACzI,CAAA;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
1
|
import { Location, MaterialItem, MaterialMove, MaterialRulesDisplay } from '@gamepark/rules-api';
|
|
2
|
+
import { FC } from 'react';
|
|
3
3
|
import { ItemContext, MaterialContext } from '../../locators';
|
|
4
4
|
export type MaterialRulesProps<P extends number = number, M extends number = number, L extends number = number> = {
|
|
5
5
|
closeDialog: () => void;
|
|
@@ -27,8 +27,9 @@ export declare abstract class MaterialDescription<P extends number = number, M e
|
|
|
27
27
|
height?: number;
|
|
28
28
|
width?: number;
|
|
29
29
|
ratio?: number;
|
|
30
|
-
getSize(_itemId: ItemId): ComponentSize;
|
|
30
|
+
getSize(_itemId: ItemId, _context: MaterialContext<P, M, L>): ComponentSize;
|
|
31
31
|
abstract getImages(): string[];
|
|
32
32
|
thickness: number;
|
|
33
33
|
getThickness(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
|
|
34
34
|
}
|
|
35
|
+
export type MaterialDescriptionRecord<P extends number = number, M extends number = number, L extends number = number> = Record<M, MaterialDescription<P, M, L>>;
|
|
@@ -26,7 +26,7 @@ var MaterialDescription = /** @class */ (function () {
|
|
|
26
26
|
var type = _a.type, index = _a.index;
|
|
27
27
|
return ((0, rules_api_1.isMoveItem)(move) || (0, rules_api_1.isDeleteItem)(move)) && move.itemType === type && move.itemIndex === index;
|
|
28
28
|
};
|
|
29
|
-
MaterialDescription.prototype.getSize = function (_itemId) {
|
|
29
|
+
MaterialDescription.prototype.getSize = function (_itemId, _context) {
|
|
30
30
|
if (this.width && this.height)
|
|
31
31
|
return { width: this.width, height: this.height };
|
|
32
32
|
if (this.ratio && this.width)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialDescription.js","sourceRoot":"","sources":["../../../src/components/material/MaterialDescription.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MaterialDescription.js","sourceRoot":"","sources":["../../../src/components/material/MaterialDescription.ts"],"names":[],"mappings":";;;AAAA,iDAA0H;AAkB1H;IAAA;QAIE,gBAAW,GAAyB,EAAE,CAAA;QAatC,cAAS,GAAqB,EAAE,CAAA;QA8BhC,cAAS,GAAG,IAAI,CAAA;IAKlB,CAAC;IA9CC,4CAAc,GAAd,UAAe,QAAkC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;IAC/D,CAAC;IAID,8CAAgB,GAAhB,UAAiB,KAAyB,EAAE,QAAkC;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAKD,0CAAY,GAAZ,UAAa,KAAyB,EAAE,QAA8B;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;IACzD,CAAC;IAED,qCAAO,GAAP,UAAQ,IAA2B,EAAE,EAAqC;YAAnC,IAAI,UAAA,EAAE,KAAK,WAAA;QAChD,OAAO,CACL,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC;eACvD,CAAC,IAAA,wBAAY,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAA;IACzD,CAAC;IAED,0CAAY,GAAZ,UAAa,IAA2B,EAAE,EAAqC;YAAnC,IAAI,UAAA,EAAE,KAAK,WAAA;QACrD,OAAO,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAA;IACvG,CAAC;IAMD,qCAAO,GAAP,UAAQ,OAAe,EAAE,QAAkC;QACzD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;QAChF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;QAC9F,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;IACpG,CAAC;IAMD,0CAAY,GAAZ,UAAa,KAAyB,EAAE,QAA8B;QACpE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IACH,0BAAC;AAAD,CAAC,AApDD,IAoDC;AApDqB,kDAAmB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/** @jsxImportSource @emotion/react */
|
|
2
|
-
import { HTMLAttributes } from 'react';
|
|
3
1
|
import { Location } from '@gamepark/rules-api';
|
|
2
|
+
import { HTMLAttributes } from 'react';
|
|
4
3
|
export type SimpleDropAreaProps<P extends number = number, L extends number = number> = {
|
|
5
4
|
location: Location<P, L>;
|
|
6
5
|
onShortClick?: () => void;
|
|
@@ -29,17 +29,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.SimpleDropArea = void 0;
|
|
30
30
|
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
31
31
|
/** @jsxImportSource @emotion/react */
|
|
32
|
-
var
|
|
32
|
+
var core_1 = require("@dnd-kit/core");
|
|
33
|
+
var react_1 = require("@emotion/react");
|
|
33
34
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
34
|
-
var react_2 = require("
|
|
35
|
+
var react_2 = require("react");
|
|
36
|
+
var react_merge_refs_1 = require("react-merge-refs");
|
|
35
37
|
var use_long_press_1 = require("use-long-press");
|
|
36
|
-
var hooks_1 = require("../../../hooks");
|
|
37
38
|
var css_1 = require("../../../css");
|
|
38
|
-
var
|
|
39
|
-
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
39
|
+
var hooks_1 = require("../../../hooks");
|
|
40
40
|
var utilities_1 = require("../../../utilities");
|
|
41
|
-
var
|
|
42
|
-
exports.SimpleDropArea = (0,
|
|
41
|
+
var DraggableMaterial_1 = require("../DraggableMaterial");
|
|
42
|
+
exports.SimpleDropArea = (0, react_2.forwardRef)(function (_a, ref) {
|
|
43
43
|
var _b;
|
|
44
44
|
var location = _a.location, onShortClick = _a.onShortClick, onLongClick = _a.onLongClick, alwaysVisible = _a.alwaysVisible, props = __rest(_a, ["location", "onShortClick", "onLongClick", "alwaysVisible"]);
|
|
45
45
|
var context = (0, hooks_1.useMaterialContext)();
|
|
@@ -50,8 +50,8 @@ exports.SimpleDropArea = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
50
50
|
var play = (0, hooks_1.usePlay)();
|
|
51
51
|
var player = (0, hooks_1.usePlayerId)();
|
|
52
52
|
var legalMoves = (0, hooks_1.useLegalMoves)();
|
|
53
|
-
var disabled = (0,
|
|
54
|
-
var longClickMoves = (0,
|
|
53
|
+
var disabled = (0, react_2.useMemo)(function () { return !legalMoves.some(function (move) { return description === null || description === void 0 ? void 0 : description.couldDrop(move, location, context); }); }, [legalMoves, location, context]);
|
|
54
|
+
var longClickMoves = (0, react_2.useMemo)(function () { return legalMoves.filter(function (move) { return description === null || description === void 0 ? void 0 : description.canLongClick(move, location, context); }); }, [legalMoves, location, context]);
|
|
55
55
|
if (!onLongClick && longClickMoves.length === 1) {
|
|
56
56
|
onLongClick = function () { return play(longClickMoves[0], { delayed: rules === null || rules === void 0 ? void 0 : rules.isUnpredictableMove(longClickMoves[0], player) }); };
|
|
57
57
|
}
|
|
@@ -64,12 +64,10 @@ exports.SimpleDropArea = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
64
64
|
data: location
|
|
65
65
|
}), isOver = _c.isOver, active = _c.active, setNodeRef = _c.setNodeRef;
|
|
66
66
|
var draggedItem = (0, DraggableMaterial_1.dataIsDisplayedItem)(active === null || active === void 0 ? void 0 : active.data.current) ? active === null || active === void 0 ? void 0 : active.data.current : undefined;
|
|
67
|
-
var draggedItemContext = (0,
|
|
68
|
-
var canDrop = (0,
|
|
69
|
-
return material[draggedItemContext.type].canDrag(move, draggedItemContext) && description.canDrop(move, location, draggedItemContext);
|
|
70
|
-
}).length === 1; }, [draggedItemContext, legalMoves, rules]);
|
|
67
|
+
var draggedItemContext = (0, react_2.useMemo)(function () { return draggedItem ? __assign(__assign({}, context), draggedItem) : undefined; }, [draggedItem, context]);
|
|
68
|
+
var canDrop = (0, react_2.useMemo)(function () { return !!draggedItemContext && !!description && !!material && legalMoves.filter(function (move) { var _a; return ((_a = material[draggedItemContext.type]) === null || _a === void 0 ? void 0 : _a.canDrag(move, draggedItemContext)) && description.canDrop(move, location, draggedItemContext); }).length === 1; }, [draggedItemContext, legalMoves, rules]);
|
|
71
69
|
var animations = (0, hooks_1.useAnimations)(function (animation) { return animation.action.playerId === player; });
|
|
72
|
-
var _d = (0,
|
|
70
|
+
var _d = (0, react_2.useState)(false), clicking = _d[0], setClicking = _d[1];
|
|
73
71
|
var listeners = (0, use_long_press_1.useLongPress)(function () {
|
|
74
72
|
if (onLongClick)
|
|
75
73
|
onLongClick();
|
|
@@ -116,15 +114,15 @@ exports.SimpleDropArea = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
116
114
|
canDrop && isOver && dropHighlight
|
|
117
115
|
] }, props, (0, utilities_1.combineEventListeners)(listeners, props)));
|
|
118
116
|
});
|
|
119
|
-
var absolute = (0,
|
|
117
|
+
var absolute = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n"], ["\n position: absolute;\n"])));
|
|
120
118
|
var positionOnParentCss = function (_a) {
|
|
121
119
|
var x = _a.x, y = _a.y;
|
|
122
|
-
return (0,
|
|
120
|
+
return (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n left: ", "%;\n top: ", "%;\n"], ["\n left: ", "%;\n top: ", "%;\n"])), x, y);
|
|
123
121
|
};
|
|
124
|
-
var hoverHighlight = (0,
|
|
125
|
-
var clickingKeyframes = (0,
|
|
122
|
+
var hoverHighlight = (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n"], ["\n &:hover {\n background-color: rgba(255, 255, 255, 0.2);\n }\n"])));
|
|
123
|
+
var clickingKeyframes = (0, react_1.keyframes)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n from {\n background-color: rgba(255, 255, 255, 0.2);\n }\n to {\n background-color: rgba(0, 255, 0, 0.5);\n }\n"], ["\n from {\n background-color: rgba(255, 255, 255, 0.2);\n }\n to {\n background-color: rgba(0, 255, 0, 0.5);\n }\n"])));
|
|
126
124
|
var longClickThreshold = 600;
|
|
127
|
-
var clickingAnimation = (0,
|
|
128
|
-
var dropHighlight = (0,
|
|
125
|
+
var clickingAnimation = (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n animation: ", " ", "ms ease-in-out;\n"], ["\n animation: ", " ", "ms ease-in-out;\n"])), clickingKeyframes, longClickThreshold);
|
|
126
|
+
var dropHighlight = (0, react_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background-color: rgba(0, 255, 0, 0.5);\n"], ["\n background-color: rgba(0, 255, 0, 0.5);\n"])));
|
|
129
127
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
130
128
|
//# sourceMappingURL=SimpleDropArea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleDropArea.js","sourceRoot":"","sources":["../../../../src/components/material/locations/SimpleDropArea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC
|
|
1
|
+
{"version":3,"file":"SimpleDropArea.js","sourceRoot":"","sources":["../../../../src/components/material/locations/SimpleDropArea.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ var getAnimationFromState = function (action) {
|
|
|
28
28
|
};
|
|
29
29
|
exports.getAnimationFromState = getAnimationFromState;
|
|
30
30
|
var useAnimations = function (predicate) {
|
|
31
|
-
var
|
|
31
|
+
var _a;
|
|
32
|
+
var actions = (_a = (0, react_redux_1.useSelector)(function (state) { return state.actions; })) !== null && _a !== void 0 ? _a : [];
|
|
32
33
|
return actions.filter(function (action) { return action.animation !== undefined; })
|
|
33
34
|
.map(exports.getAnimationFromState)
|
|
34
35
|
.filter(function (animation) { return !predicate || predicate(animation); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnimations.js","sourceRoot":"","sources":["../../src/hooks/useAnimations.ts"],"names":[],"mappings":";;;AAAA,uDAAmG;AACnG,2CAAyC;AAElC,IAAM,YAAY,GAAG,UAC1B,SAA6D;IAE7D,IAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,UAAC,KAAyC;;QACnE,KAAqB,UAAmB,EAAnB,WAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;YAArC,IAAM,QAAM,SAAA;YACf,IAAI,QAAM,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAA,6BAAqB,EAAC,QAAM,CAAC,CAAC,EAAE;oBAC1D,OAAO,QAAM,CAAA;iBACd;aACF;SACF;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3D,CAAC,CAAA;AAbY,QAAA,YAAY,gBAaxB;AAEM,IAAM,qBAAqB,GAAG,UAAC,MAAuB;;IAAgB,OAAA,CAAC;QAC5E,IAAI,EAAE,IAAA,8BAAe,EAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,QAAQ,mCAAI,CAAC;QACzC,MAAM,QAAA;KACP,CAAC,CAAA;CAAA,CAAA;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,IAAM,aAAa,GAAG,UAAgC,SAA6D
|
|
1
|
+
{"version":3,"file":"useAnimations.js","sourceRoot":"","sources":["../../src/hooks/useAnimations.ts"],"names":[],"mappings":";;;AAAA,uDAAmG;AACnG,2CAAyC;AAElC,IAAM,YAAY,GAAG,UAC1B,SAA6D;IAE7D,IAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,UAAC,KAAyC;;QACnE,KAAqB,UAAmB,EAAnB,WAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;YAArC,IAAM,QAAM,SAAA;YACf,IAAI,QAAM,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAA,6BAAqB,EAAC,QAAM,CAAC,CAAC,EAAE;oBAC1D,OAAO,QAAM,CAAA;iBACd;aACF;SACF;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3D,CAAC,CAAA;AAbY,QAAA,YAAY,gBAaxB;AAEM,IAAM,qBAAqB,GAAG,UAAC,MAAuB;;IAAgB,OAAA,CAAC;QAC5E,IAAI,EAAE,IAAA,8BAAe,EAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAA,MAAA,MAAM,CAAC,SAAS,0CAAE,QAAQ,mCAAI,CAAC;QACzC,MAAM,QAAA;KACP,CAAC,CAAA;CAAA,CAAA;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,IAAM,aAAa,GAAG,UAAgC,SAA6D;;IACxH,IAAM,OAAO,GAAG,MAAA,IAAA,yBAAW,EAAC,UAAC,KAAyC,IAAK,OAAA,KAAK,CAAC,OAAO,EAAb,CAAa,CAAC,mCAAI,EAAE,CAAA;IAC/F,OAAO,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,SAAS,KAAK,SAAS,EAA9B,CAA8B,CAAC;SAC5D,GAAG,CAA4B,6BAAqB,CAAC;SACrD,MAAM,CAAC,UAAA,SAAS,IAAI,OAAA,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAlC,CAAkC,CAAC,CAAA;AAC5D,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const useLocators: () =>
|
|
1
|
+
export declare const useLocators: () => Partial<import("..").ItemLocatorRecord<number, number, number>>;
|
|
@@ -6,11 +6,12 @@ var components_1 = require("../components");
|
|
|
6
6
|
var usePlayerId_1 = require("./usePlayerId");
|
|
7
7
|
var useRules_1 = require("./useRules");
|
|
8
8
|
function useMaterialContext() {
|
|
9
|
+
var _a, _b;
|
|
9
10
|
var rules = (0, useRules_1.useRules)();
|
|
10
11
|
var player = (0, usePlayerId_1.usePlayerId)();
|
|
11
12
|
var context = (0, react_1.useContext)(components_1.gameContext);
|
|
12
|
-
var material = context.material;
|
|
13
|
-
var locators = context.locators;
|
|
13
|
+
var material = (_a = context.material) !== null && _a !== void 0 ? _a : {};
|
|
14
|
+
var locators = (_b = context.locators) !== null && _b !== void 0 ? _b : {};
|
|
14
15
|
return (0, react_1.useMemo)(function () { return ({ rules: rules, player: player, material: material, locators: locators }); }, [rules, player, material, locators]);
|
|
15
16
|
}
|
|
16
17
|
exports.useMaterialContext = useMaterialContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMaterialContext.js","sourceRoot":"","sources":["../../src/hooks/useMaterialContext.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useMaterialContext.js","sourceRoot":"","sources":["../../src/hooks/useMaterialContext.ts"],"names":[],"mappings":";;;AACA,+BAA2C;AAC3C,4CAAwD;AAExD,6CAA2C;AAC3C,uCAAqC;AAErC,SAAgB,kBAAkB;;IAChC,IAAM,KAAK,GAAG,IAAA,mBAAQ,GAA2B,CAAA;IACjD,IAAM,MAAM,GAAG,IAAA,yBAAW,GAAK,CAAA;IAC/B,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,wBAAW,CAAkF,CAAA;IACxH,IAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAA;IACvC,IAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAA;IACvC,OAAO,IAAA,eAAO,EAAC,cAAM,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAvC,CAAuC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpG,CAAC;AAPD,gDAOC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @jsxImportSource @emotion/react */
|
|
2
2
|
import { Coordinates, DisplayedItem, Location, Material, MaterialGame, MaterialItem, MaterialRules, XYCoordinates } from '@gamepark/rules-api';
|
|
3
|
-
import { LocationDescription,
|
|
4
|
-
export declare
|
|
3
|
+
import { LocationDescription, MaterialDescriptionRecord } from '../components';
|
|
4
|
+
export declare class ItemLocator<P extends number = number, M extends number = number, L extends number = number> {
|
|
5
5
|
parentItemType?: M;
|
|
6
6
|
rotationUnit: string;
|
|
7
7
|
limit?: number;
|
|
@@ -43,10 +43,11 @@ export declare abstract class ItemLocator<P extends number = number, M extends n
|
|
|
43
43
|
getMaterial(game: MaterialGame<P, M, L>, type: M): Material<P, M, L>;
|
|
44
44
|
getRelativePlayerIndex({ rules: { players }, player: me }: MaterialContext<P, M, L>, player: P): number;
|
|
45
45
|
}
|
|
46
|
+
export type ItemLocatorRecord<P extends number = number, M extends number = number, L extends number = number> = Record<L, ItemLocator<P, M, L>>;
|
|
46
47
|
export type MaterialContext<P extends number = number, M extends number = number, L extends number = number> = {
|
|
47
48
|
rules: MaterialRules<P, M, L>;
|
|
48
|
-
material:
|
|
49
|
-
locators:
|
|
49
|
+
material: Partial<MaterialDescriptionRecord<P, M, L>>;
|
|
50
|
+
locators: Partial<ItemLocatorRecord<P, M, L>>;
|
|
50
51
|
player?: P;
|
|
51
52
|
};
|
|
52
53
|
export type ItemContext<P extends number = number, M extends number = number, L extends number = number> = MaterialContext<P, M, L> & DisplayedItem<M>;
|
|
@@ -54,3 +55,4 @@ export type LocationRulesProps<P extends number = number, L extends number = num
|
|
|
54
55
|
location: Location<P, L>;
|
|
55
56
|
closeDialog: () => void;
|
|
56
57
|
};
|
|
58
|
+
export declare const centerLocator: ItemLocator<number, number, number>;
|
|
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ItemLocator = void 0;
|
|
26
|
+
exports.centerLocator = exports.ItemLocator = void 0;
|
|
27
27
|
/** @jsxImportSource @emotion/react */
|
|
28
28
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
29
29
|
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
@@ -53,7 +53,7 @@ var ItemLocator = /** @class */ (function () {
|
|
|
53
53
|
var parentMaterial = this.parentItemType ? context.material[this.parentItemType] : undefined;
|
|
54
54
|
if (parentMaterial) {
|
|
55
55
|
var positionOnParent = this.getPositionOnParent(item.location, context);
|
|
56
|
-
var _b = parentMaterial.getSize(this.getParentItemId(item.location)), width = _b.width, height = _b.height;
|
|
56
|
+
var _b = parentMaterial.getSize(this.getParentItemId(item.location), context), width = _b.width, height = _b.height;
|
|
57
57
|
x += width * (positionOnParent.x - 50) / 100;
|
|
58
58
|
y += height * (positionOnParent.y - 50) / 100;
|
|
59
59
|
}
|
|
@@ -70,7 +70,8 @@ var ItemLocator = /** @class */ (function () {
|
|
|
70
70
|
* @return The delta coordinates in em of the center of the item from the center of their parent (or the screen)
|
|
71
71
|
*/
|
|
72
72
|
ItemLocator.prototype.getPosition = function (item, context) {
|
|
73
|
-
|
|
73
|
+
var _a, _b;
|
|
74
|
+
return __assign(__assign({}, this.position), { z: (_b = (_a = context.material[context.type]) === null || _a === void 0 ? void 0 : _a.getThickness(item, context)) !== null && _b !== void 0 ? _b : 0 });
|
|
74
75
|
};
|
|
75
76
|
/**
|
|
76
77
|
* Place the center of the item in the plan of their parent item. This is ignored if "parentItemType" is undefined.
|
|
@@ -100,6 +101,7 @@ var ItemLocator = /** @class */ (function () {
|
|
|
100
101
|
return this.hidden;
|
|
101
102
|
};
|
|
102
103
|
ItemLocator.prototype.transformParentItemLocation = function (location, context) {
|
|
104
|
+
var _a, _b;
|
|
103
105
|
if (!this.parentItemType)
|
|
104
106
|
return [];
|
|
105
107
|
var rules = context.rules, material = context.material, locators = context.locators;
|
|
@@ -107,15 +109,15 @@ var ItemLocator = /** @class */ (function () {
|
|
|
107
109
|
if (location.parent !== undefined) {
|
|
108
110
|
var parentItem = rules.material(this.parentItemType).getItem(location.parent);
|
|
109
111
|
var parentLocator = locators[parentItem.location.type];
|
|
110
|
-
return parentLocator.transformItemLocation(parentItem, __assign(__assign({}, context), { type: this.parentItemType, displayIndex: 0 }));
|
|
112
|
+
return (_a = parentLocator === null || parentLocator === void 0 ? void 0 : parentLocator.transformItemLocation(parentItem, __assign(__assign({}, context), { type: this.parentItemType, displayIndex: 0 }))) !== null && _a !== void 0 ? _a : [];
|
|
111
113
|
}
|
|
112
114
|
else {
|
|
113
115
|
var parentItemId_1 = this.getParentItemId(location);
|
|
114
|
-
var staticItem = parentMaterial.getStaticItems(context).find(function (item) { return (0, fast_deep_equal_1.default)(item.id, parentItemId_1); });
|
|
116
|
+
var staticItem = parentMaterial === null || parentMaterial === void 0 ? void 0 : parentMaterial.getStaticItems(context).find(function (item) { return (0, fast_deep_equal_1.default)(item.id, parentItemId_1); });
|
|
115
117
|
if (!staticItem)
|
|
116
118
|
return [];
|
|
117
119
|
var locator = locators[staticItem.location.type];
|
|
118
|
-
return locator.transformItemLocation(staticItem, __assign(__assign({}, context), { type: this.parentItemType, displayIndex: 0 }));
|
|
120
|
+
return (_b = locator === null || locator === void 0 ? void 0 : locator.transformItemLocation(staticItem, __assign(__assign({}, context), { type: this.parentItemType, displayIndex: 0 }))) !== null && _b !== void 0 ? _b : [];
|
|
119
121
|
}
|
|
120
122
|
};
|
|
121
123
|
ItemLocator.prototype.getItemIndex = function (item, context) {
|
|
@@ -123,7 +125,7 @@ var ItemLocator = /** @class */ (function () {
|
|
|
123
125
|
return (_c = (_b = (_a = item.location.x) !== null && _a !== void 0 ? _a : item.location.y) !== null && _b !== void 0 ? _b : item.location.z) !== null && _c !== void 0 ? _c : context.displayIndex;
|
|
124
126
|
};
|
|
125
127
|
ItemLocator.prototype.isSameLocation = function (location1, location2) {
|
|
126
|
-
return location1.type === location2.type && location1.player === location2.player && location1.parent === location2.parent;
|
|
128
|
+
return location1.type === location2.type && location1.player === location2.player && location1.id === location2.id && location1.parent === location2.parent;
|
|
127
129
|
};
|
|
128
130
|
ItemLocator.prototype.countItems = function (location, _a) {
|
|
129
131
|
var _this = this;
|
|
@@ -144,4 +146,5 @@ var ItemLocator = /** @class */ (function () {
|
|
|
144
146
|
return ItemLocator;
|
|
145
147
|
}());
|
|
146
148
|
exports.ItemLocator = ItemLocator;
|
|
149
|
+
exports.centerLocator = new ItemLocator();
|
|
147
150
|
//# sourceMappingURL=ItemLocator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemLocator.js","sourceRoot":"","sources":["../../src/locators/ItemLocator.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,iDAA8I;
|
|
1
|
+
{"version":3,"file":"ItemLocator.js","sourceRoot":"","sources":["../../src/locators/ItemLocator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ItemContext, ItemLocator } from './ItemLocator';
|
|
|
2
2
|
import { Coordinates, MaterialItem } from '@gamepark/rules-api';
|
|
3
3
|
export declare abstract class LineLocator<P extends number = number, M extends number = number, L extends number = number> extends ItemLocator<P, M, L> {
|
|
4
4
|
getPosition(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Coordinates;
|
|
5
|
+
getDeltaValue(delta?: number, max?: number, count?: number): number;
|
|
5
6
|
coordinates: Coordinates;
|
|
6
7
|
getCoordinates(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): Coordinates;
|
|
7
8
|
delta?: Partial<Coordinates>;
|
|
@@ -25,21 +25,27 @@ var LineLocator = /** @class */ (function (_super) {
|
|
|
25
25
|
return _this;
|
|
26
26
|
}
|
|
27
27
|
LineLocator.prototype.getPosition = function (item, context) {
|
|
28
|
-
var _a, _b, _c
|
|
28
|
+
var _a, _b, _c;
|
|
29
29
|
var coordinates = this.getCoordinates(item, context);
|
|
30
30
|
var index = this.getItemIndex(item, context);
|
|
31
31
|
var delta = this.getDelta(item, context);
|
|
32
32
|
if (this.getDeltaMax) {
|
|
33
33
|
var deltaMax = this.getDeltaMax(item, context);
|
|
34
34
|
var count = this.countItems(item.location, context);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
delta.y = Math.min((_b = delta.y) !== null && _b !== void 0 ? _b : 0, deltaMax.y / count);
|
|
39
|
-
if (deltaMax.z !== undefined)
|
|
40
|
-
delta.z = Math.min((_c = delta.z) !== null && _c !== void 0 ? _c : 0, deltaMax.z / count);
|
|
35
|
+
delta.x = this.getDeltaValue(delta.x, deltaMax.x, count);
|
|
36
|
+
delta.y = this.getDeltaValue(delta.y, deltaMax.y, count);
|
|
37
|
+
delta.z = this.getDeltaValue(delta.z, deltaMax.z, count);
|
|
41
38
|
}
|
|
42
|
-
return { x: coordinates.x + index * ((
|
|
39
|
+
return { x: coordinates.x + index * ((_a = delta.x) !== null && _a !== void 0 ? _a : 0), y: coordinates.y + index * ((_b = delta.y) !== null && _b !== void 0 ? _b : 0), z: coordinates.z + index * ((_c = delta.z) !== null && _c !== void 0 ? _c : 0) };
|
|
40
|
+
};
|
|
41
|
+
LineLocator.prototype.getDeltaValue = function (delta, max, count) {
|
|
42
|
+
if (delta === void 0) { delta = 0; }
|
|
43
|
+
if (count === void 0) { count = 1; }
|
|
44
|
+
if (max !== undefined && max > 0)
|
|
45
|
+
return Math.min(delta, max / count);
|
|
46
|
+
if (max !== undefined && max < 0)
|
|
47
|
+
return Math.max(delta, max / count);
|
|
48
|
+
return delta;
|
|
43
49
|
};
|
|
44
50
|
LineLocator.prototype.getCoordinates = function (_item, _context) {
|
|
45
51
|
return this.coordinates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineLocator.js","sourceRoot":"","sources":["../../src/locators/LineLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AAGxD;IAA2H,+BAAoB;IAA/I;QAAA,
|
|
1
|
+
{"version":3,"file":"LineLocator.js","sourceRoot":"","sources":["../../src/locators/LineLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AAGxD;IAA2H,+BAAoB;IAA/I;QAAA,qEAkCC;QAbC,iBAAW,GAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;;IAajD,CAAC;IAjCC,iCAAW,GAAX,UAAY,IAAwB,EAAE,OAA6B;;QACjE,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtD,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9C,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAChD,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACrD,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YACxD,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YACxD,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;SACzD;QACD,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,CAAC,mCAAI,CAAC,CAAC,EAAE,CAAA;IAC5I,CAAC;IAED,mCAAa,GAAb,UAAc,KAAiB,EAAE,GAAY,EAAE,KAAiB;QAAlD,sBAAA,EAAA,SAAiB;QAAgB,sBAAA,EAAA,SAAiB;QAC9D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAA;QACrE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAA;QACrE,OAAO,KAAK,CAAA;IACd,CAAC;IAID,oCAAc,GAAd,UAAe,KAAyB,EAAE,QAA8B;QACtE,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAID,8BAAQ,GAAR,UAAS,KAAyB,EAAE,QAA8B;;QAChE,OAAO,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAA;IACzB,CAAC;IAGH,kBAAC;AAAD,CAAC,AAlCD,CAA2H,yBAAW,GAkCrI;AAlCqB,kCAAW"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/react-game",
|
|
3
|
-
"version": "6.8.
|
|
3
|
+
"version": "6.8.4",
|
|
4
4
|
"description": "React components & tools to create a Board Game user interface for Game Park",
|
|
5
5
|
"author": "Romain Fromi <romain@game-park.com> (https://game-park.com/)",
|
|
6
6
|
"license": "ISC",
|