@gamepark/react-game 6.30.2 → 6.31.1
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 +2 -2
- package/dist/components/JournalTabs/History/History.js +7 -8
- package/dist/components/JournalTabs/History/History.js.map +1 -1
- package/dist/components/JournalTabs/History/index.d.ts +0 -1
- package/dist/components/JournalTabs/History/index.js +0 -1
- package/dist/components/JournalTabs/History/index.js.map +1 -1
- package/dist/components/JournalTabs/JournalTabs.js +3 -3
- package/dist/components/JournalTabs/JournalTabs.js.map +1 -1
- package/dist/components/Log/InternalLiveLogContainer.d.ts +6 -0
- package/dist/components/Log/InternalLiveLogContainer.js +97 -0
- package/dist/components/Log/InternalLiveLogContainer.js.map +1 -0
- package/dist/components/Log/LiveLogButton.d.ts +1 -0
- package/dist/components/Log/LiveLogButton.js +35 -0
- package/dist/components/Log/LiveLogButton.js.map +1 -0
- package/dist/components/Log/LiveLogContainer.d.ts +3 -0
- package/dist/components/Log/LiveLogContainer.js +26 -0
- package/dist/components/Log/LiveLogContainer.js.map +1 -0
- package/dist/components/Log/LogDescription.d.ts +22 -0
- package/dist/components/Log/LogDescription.js +3 -0
- package/dist/components/Log/LogDescription.js.map +1 -0
- package/dist/components/Log/LogItem.d.ts +11 -0
- package/dist/components/Log/LogItem.js +45 -0
- package/dist/components/Log/LogItem.js.map +1 -0
- package/dist/components/Log/index.d.ts +3 -0
- package/dist/components/Log/index.js +20 -0
- package/dist/components/Log/index.js.map +1 -0
- package/dist/components/dialogs/ResultDialog/index.d.ts +1 -0
- package/dist/components/dialogs/ResultDialog/index.js +1 -0
- package/dist/components/dialogs/ResultDialog/index.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/menus/Menu/Menu.js +2 -1
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/hooks/useFlatHistory.d.ts +13 -0
- package/dist/hooks/useFlatHistory.js +89 -0
- package/dist/hooks/useFlatHistory.js.map +1 -0
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { Animations, ScoringDescription, TutorialDescription } from '@gamepark/r
|
|
|
2
2
|
import { RulesCreator } from '@gamepark/rules-api';
|
|
3
3
|
import React, { ComponentType } from 'react';
|
|
4
4
|
import { ItemLocatorRecord } from '../../locators';
|
|
5
|
-
import {
|
|
5
|
+
import { LogDescription } from '../Log';
|
|
6
6
|
import { MaterialDescriptionRecord } from '../material';
|
|
7
7
|
export type GameContext<Game = any, Move = any, PlayerId extends number = number, MaterialType extends number = number, LocationType extends number = number> = {
|
|
8
8
|
game: string;
|
|
@@ -17,7 +17,7 @@ export type GameContext<Game = any, Move = any, PlayerId extends number = number
|
|
|
17
17
|
animations?: Animations<Game, Move, PlayerId>;
|
|
18
18
|
tutorial?: TutorialDescription<Game, Move, PlayerId>;
|
|
19
19
|
scoring?: ScoringDescription<PlayerId>;
|
|
20
|
-
|
|
20
|
+
logs?: LogDescription<Move, PlayerId>;
|
|
21
21
|
hasSounds?: boolean;
|
|
22
22
|
};
|
|
23
23
|
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> & {
|
|
@@ -32,28 +32,27 @@ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
|
32
32
|
var react_1 = require("@emotion/react");
|
|
33
33
|
var react_2 = require("react");
|
|
34
34
|
var css_1 = require("../../../css");
|
|
35
|
-
var
|
|
35
|
+
var useFlatHistory_1 = require("../../../hooks/useFlatHistory");
|
|
36
|
+
var Log_1 = require("../../Log");
|
|
36
37
|
var GameOverHistory_1 = require("./GameOverHistory");
|
|
37
38
|
var StartGameHistory_1 = require("./StartGameHistory");
|
|
38
39
|
var History = function (props) {
|
|
39
|
-
var
|
|
40
|
+
var history = (0, useFlatHistory_1.useFlatHistory)().history;
|
|
40
41
|
var open = props.open, rest = __rest(props, ["open"]);
|
|
41
42
|
var scrollRef = (0, react_2.useRef)(null);
|
|
42
|
-
// TODO: Add an icon to tell "there is more to see"
|
|
43
43
|
(0, react_2.useEffect)(function () {
|
|
44
44
|
if (!scrollRef.current)
|
|
45
45
|
return;
|
|
46
46
|
var _a = scrollRef.current, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
|
|
47
47
|
scrollRef.current.scrollTo({ top: scrollHeight - clientHeight });
|
|
48
48
|
}, [open]);
|
|
49
|
-
return ((0, jsx_runtime_1.jsx)(react_1.ThemeProvider, __assign({ theme: function (theme) { return (__assign(__assign({}, theme), { buttons: exports.historyButtonCss })); } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: scrollCss, ref: scrollRef }, rest, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ css: scrollContentCss }, { children: [(0, jsx_runtime_1.jsx)(StartGameHistory_1.StartGameHistory, {}),
|
|
50
|
-
var id = _a[0], _b = _a[1], actions = _b === void 0 ? [] : _b;
|
|
51
|
-
return (actions.map(function (action, index) { return ((0, jsx_runtime_1.jsx)(react_2.Fragment, { children: action }, "".concat(id, "_").concat(index))); }));
|
|
52
|
-
}), (0, jsx_runtime_1.jsx)(GameOverHistory_1.GameOverHistory, {})] })) })) })));
|
|
49
|
+
return ((0, jsx_runtime_1.jsx)(react_1.ThemeProvider, __assign({ theme: function (theme) { return (__assign(__assign({}, theme), { buttons: exports.historyButtonCss })); } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: scrollCss, ref: scrollRef }, rest, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ css: scrollContentCss }, { children: [(0, jsx_runtime_1.jsx)(StartGameHistory_1.StartGameHistory, {}), history.map(function (h) { return ((0, jsx_runtime_1.jsx)(Log_1.LogItem, { history: h, css: itemCss, customEntryCss: customEntryCss }, "".concat(h.action.id, "_").concat(h.consequenceIndex))); }), (0, jsx_runtime_1.jsx)(GameOverHistory_1.GameOverHistory, {})] })) })) })));
|
|
53
50
|
};
|
|
54
51
|
exports.History = History;
|
|
55
52
|
var scrollCss = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow-x: hidden;\n overflow-y: scroll;\n scrollbar-color: rgba(74, 74, 74, 0.3) transparent;\n scrollbar-width: thin;\n margin-top: 0.5em;\n margin-right: 8px;\n\n &::-webkit-scrollbar {\n width: 6px\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 7px;\n background-color: rgba(74, 74, 74, 0.3);\n }\n\n align-self: stretch;\n display: flex;\n flex-direction: column;\n"], ["\n overflow-x: hidden;\n overflow-y: scroll;\n scrollbar-color: rgba(74, 74, 74, 0.3) transparent;\n scrollbar-width: thin;\n margin-top: 0.5em;\n margin-right: 8px;\n\n &::-webkit-scrollbar {\n width: 6px\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 7px;\n background-color: rgba(74, 74, 74, 0.3);\n }\n\n align-self: stretch;\n display: flex;\n flex-direction: column;\n"])));
|
|
56
53
|
var scrollContentCss = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n padding-bottom: 0.5em;\n font-size: 0.5em;\n"], ["\n position: relative;\n padding-bottom: 0.5em;\n font-size: 0.5em;\n"])));
|
|
57
54
|
exports.historyButtonCss = [css_1.linkButtonCss, (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n color: inherit;\n background-color: transparent;\n font-style: italic;\n"], ["\n color: inherit;\n background-color: transparent;\n font-style: italic;\n"])))];
|
|
58
|
-
var
|
|
55
|
+
var itemCss = (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-left: 0.7em;\n font-size: 0.5em;\n user-select: text;\n white-space: pre-wrap;\n"], ["\n margin-left: 0.7em;\n font-size: 0.5em;\n user-select: text;\n white-space: pre-wrap;\n"])));
|
|
56
|
+
var customEntryCss = (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background-color: rgba(0, 0, 0, 0.8);\n color: white;\n"], ["\n background-color: rgba(0, 0, 0, 0.8);\n color: white;\n"])));
|
|
57
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
59
58
|
//# sourceMappingURL=History.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"History.js","sourceRoot":"","sources":["../../../../src/components/JournalTabs/History/History.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wCAAmD;AACnD,+
|
|
1
|
+
{"version":3,"file":"History.js","sourceRoot":"","sources":["../../../../src/components/JournalTabs/History/History.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wCAAmD;AACnD,+BAA6D;AAC7D,oCAA4C;AAC5C,gEAA8D;AAC9D,iCAAmC;AACnC,qDAAmD;AACnD,uDAAqD;AAM9C,IAAM,OAAO,GAAqB,UAAC,KAAK;IAErC,IAAA,OAAO,GAAK,IAAA,+BAAc,GAAE,QAArB,CAAqB;IAC5B,IAAA,IAAI,GAAc,KAAK,KAAnB,EAAK,IAAI,UAAK,KAAK,EAAzB,QAAiB,CAAF,CAAU;IAC/B,IAAM,SAAS,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAE9C,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QACxB,IAAA,KAAiC,SAAS,CAAC,OAAO,EAAhD,YAAY,kBAAA,EAAE,YAAY,kBAAsB,CAAA;QACxD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC,CAAA;IAClE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO,CACL,uBAAC,qBAAa,aAAC,KAAK,EAAE,UAAA,KAAK,IAAI,OAAA,uBAAM,KAAK,KAAE,OAAO,EAAE,wBAAgB,IAAG,EAAzC,CAAyC,gBACtE,yCAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,IAAM,IAAI,cAC3C,0CAAK,GAAG,EAAE,gBAAgB,iBACxB,uBAAC,mCAAgB,KAAE,EAClB,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAClB,uBAAC,aAAO,IAA8C,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,IAAhG,UAAG,CAAC,CAAC,MAAM,CAAC,EAAE,cAAI,CAAC,CAAC,gBAAgB,CAAE,CAA6D,CAClH,EAFmB,CAEnB,CAAC,EACF,uBAAC,iCAAe,KAAE,KACd,IACF,IACQ,CACjB,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,OAAO,WAyBnB;AAGD,IAAM,SAAS,OAAG,WAAG,ydAAA,qZAoBpB,IAAA,CAAA;AAED,IAAM,gBAAgB,OAAG,WAAG,8IAAA,0EAI3B,IAAA,CAAA;AAEY,QAAA,gBAAgB,GAAG,CAAC,mBAAa,MAAE,WAAG,oJAAA,gFAIlD,KAAC,CAAA;AAEF,IAAM,OAAO,OAAG,WAAG,oKAAA,gGAKlB,IAAA,CAAA;AAED,IAAM,cAAc,OAAG,WAAG,kIAAA,8DAGzB,IAAA,CAAA"}
|
|
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./History"), exports);
|
|
18
|
-
__exportStar(require("./MaterialHistory"), exports);
|
|
19
18
|
__exportStar(require("./HistoryEntry"), exports);
|
|
20
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/JournalTabs/History/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/JournalTabs/History/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,iDAA8B"}
|
|
@@ -40,7 +40,7 @@ var JournalTab;
|
|
|
40
40
|
var JournalTabs = function (props) {
|
|
41
41
|
var t = (0, react_i18next_1.useTranslation)().t;
|
|
42
42
|
var gameId = props.gameId;
|
|
43
|
-
var history = (0, react_2.useContext)(GameProvider_1.gameContext).
|
|
43
|
+
var history = (0, react_2.useContext)(GameProvider_1.gameContext).logs;
|
|
44
44
|
var logEnabled = history !== undefined;
|
|
45
45
|
var gameMode = (0, react_redux_1.useSelector)(function (state) { return state.gameMode; });
|
|
46
46
|
var chatEnabled = gameMode !== react_client_1.GameMode.COMPETITIVE && gameMode !== react_client_1.GameMode.TUTORIAL;
|
|
@@ -60,10 +60,10 @@ var JournalTabs = function (props) {
|
|
|
60
60
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { css: [menus_1.backdrop, isOpen && menus_1.displayBackdrop], onClick: function () { return setOpen(false); } }), (0, jsx_runtime_1.jsxs)("div", __assign({ css: [menuCss_1.menuFontSize, menuCss_1.menuBaseCss, journalMenu, !isOpen && menuCss_1.hide] }, { children: [(0, jsx_runtime_1.jsx)("div", __assign({ css: buttonContainer }, { children: chatEnabled && logEnabled && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("button", __assign({ css: [button, chatButton, isChatOpened && selected], disabled: tab === JournalTab.CHAT, onClick: function () { return setTab(JournalTab.CHAT); } }, { children: (0, jsx_runtime_1.jsx)("div", { children: t('Chat') }) })), (0, jsx_runtime_1.jsx)("button", __assign({ css: [button, logButton, isLogOpened && selected], disabled: tab === JournalTab.LOG, onClick: function () { return setTab(JournalTab.LOG); } }, { children: (0, jsx_runtime_1.jsx)("div", { children: t('History') }) }))] })) })), (0, jsx_runtime_1.jsxs)("div", __assign({ css: [container, flexEnd] }, { children: [chatEnabled && ((0, jsx_runtime_1.jsx)(Chat_1.Chat, { css: [!isChatOpened && closed], open: isChatOpened, gameId: gameId })), logEnabled && ((0, jsx_runtime_1.jsx)(History_1.History, { css: [(0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["justify-self: flex-start"], ["justify-self: flex-start"]))), !isLogOpened && closed], open: isLogOpened }))] }))] })), (0, jsx_runtime_1.jsx)("button", __assign({ "aria-label": t('Discuss'), title: t('Discuss'), css: [journalButtonCss], onClick: function () { return setOpen(!isOpen); } }, { children: (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: isOpen ? faTimes_1.faTimes : faCommentDots_1.faCommentDots, css: iconStyle }) }))] }));
|
|
61
61
|
};
|
|
62
62
|
exports.JournalTabs = JournalTabs;
|
|
63
|
-
var buttonContainer = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n inset: 0;\n width: 100%;\n align-self: flex-start;\n padding-left: 3em;\n padding-top: 0.3em;\n padding-right: 0.5em;\n flex: 0;\n min-height: 2em;\n"], ["\n display: flex;\n flex-direction: row;\n inset: 0;\n width: 100%;\n align-self: flex-start;\n padding-left: 3em;\n padding-top: 0.3em;\n padding-right: 0.5em;\n flex: 0;\n min-height: 2em;\n"])));
|
|
63
|
+
var buttonContainer = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n inset: 0;\n width: 100%;\n align-self: flex-start;\n align-items: center;\n padding-left: 3em;\n padding-top: 0.3em;\n padding-right: 0.5em;\n flex: 0;\n min-height: 2em;\n"], ["\n display: flex;\n flex-direction: row;\n inset: 0;\n width: 100%;\n align-self: flex-start;\n align-items: center;\n padding-left: 3em;\n padding-top: 0.3em;\n padding-right: 0.5em;\n flex: 0;\n min-height: 2em;\n"])));
|
|
64
64
|
var container = (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden\n"], ["\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden\n"])));
|
|
65
65
|
var flexEnd = (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n justify-content: flex-end;\n"], ["\n justify-content: flex-end;\n"])));
|
|
66
|
-
var button = (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n flex: 1;\n border: 0.01em solid #28B8CE;\n color: black;\n cursor: pointer;\n background: white;\n height: 2em;\n"], ["\n flex: 1;\n border: 0.01em solid #28B8CE;\n color: black;\n cursor: pointer;\n background: white;\n height: 2em;\n"])));
|
|
66
|
+
var button = (0, react_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n flex: 1;\n border: 0.01em solid #28B8CE;\n color: black;\n cursor: pointer;\n background: white;\n height: 2em;\n font-size: 0.7em;\n"], ["\n flex: 1;\n border: 0.01em solid #28B8CE;\n color: black;\n cursor: pointer;\n background: white;\n height: 2em;\n font-size: 0.7em;\n"])));
|
|
67
67
|
var selected = (0, react_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background: #28B8CE;\n color: white;\n"], ["\n background: #28B8CE;\n color: white;\n"])));
|
|
68
68
|
var chatButton = (0, react_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n border-top-left-radius: 0.5em;\n border-bottom-left-radius: 0.5em\n"], ["\n border-top-left-radius: 0.5em;\n border-bottom-left-radius: 0.5em\n"])));
|
|
69
69
|
var logButton = (0, react_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n border-top-right-radius: 0.5em;\n border-bottom-right-radius: 0.5em\n"], ["\n border-top-right-radius: 0.5em;\n border-bottom-right-radius: 0.5em\n"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JournalTabs.js","sourceRoot":"","sources":["../../../src/components/JournalTabs/JournalTabs.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AAEtC,wCAAoC;AACpC,mFAAiF;AACjF,qEAAmE;AACnE,oEAAgE;AAChE,uDAAgE;AAChE,+BAA2D;AAC3D,+CAA8C;AAC9C,2CAAyC;AACzC,qCAAwC;AACxC,gDAA6C;AAC7C,kCAAoD;AACpD,4CAAyF;AACzF,+BAA6B;AAC7B,qCAAmC;AAMnC,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,yCAAO,CAAA;IACP,2CAAI,CAAA;AACN,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAEM,IAAM,WAAW,GAAyB,UAAC,KAAK;IAC7C,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IACtB,IAAA,MAAM,GAAK,KAAK,OAAV,CAAU;IACxB,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,0BAAW,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"JournalTabs.js","sourceRoot":"","sources":["../../../src/components/JournalTabs/JournalTabs.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AAEtC,wCAAoC;AACpC,mFAAiF;AACjF,qEAAmE;AACnE,oEAAgE;AAChE,uDAAgE;AAChE,+BAA2D;AAC3D,+CAA8C;AAC9C,2CAAyC;AACzC,qCAAwC;AACxC,gDAA6C;AAC7C,kCAAoD;AACpD,4CAAyF;AACzF,+BAA6B;AAC7B,qCAAmC;AAMnC,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,yCAAO,CAAA;IACP,2CAAI,CAAA;AACN,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAEM,IAAM,WAAW,GAAyB,UAAC,KAAK;IAC7C,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IACtB,IAAA,MAAM,GAAK,KAAK,OAAV,CAAU;IACxB,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,0BAAW,CAAC,CAAC,IAAI,CAAA;IAC5C,IAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAA;IACxC,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,UAAC,KAAoB,IAAK,OAAA,KAAK,CAAC,QAAQ,EAAd,CAAc,CAAC,CAAA;IACtE,IAAM,WAAW,GAAG,QAAQ,KAAK,uBAAQ,CAAC,WAAW,IAAI,QAAQ,KAAK,uBAAQ,CAAC,QAAQ,CAAA;IACjF,IAAA,KAAgB,IAAA,gBAAQ,GAA0B,EAAjD,GAAG,QAAA,EAAE,MAAM,QAAsC,CAAA;IAClD,IAAA,KAAoB,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAlC,MAAM,QAAA,EAAE,OAAO,QAAmB,CAAA;IACzC,IAAA,kBAAU,EAAC,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC,CAAA;IACxC,IAAA,kBAAU,EAAC,QAAQ,EAAE,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC,CAAA;IAC1C,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE;YACpB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACvD;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAM,YAAY,GAAG,MAAM,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,CAAA;IACtD,IAAM,WAAW,GAAG,MAAM,IAAI,GAAG,KAAK,UAAU,CAAC,GAAG,CAAA;IAEpD,OAAO,CACL,6DACE,gCAAK,GAAG,EAAE,CAAC,gBAAQ,EAAE,MAAM,IAAI,uBAAe,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,GAAG,EACjF,0CAAK,GAAG,EAAE,CAAC,sBAAY,EAAE,qBAAW,EAAE,WAAW,EAAE,CAAC,MAAM,IAAI,cAAI,CAAC,iBACjE,yCAAK,GAAG,EAAE,eAAe,gBACtB,WAAW,IAAI,UAAU,IAAI,CAC5B,6DACE,4CAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,IAAI,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,cAAM,OAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAvB,CAAuB,gBACpI,0CAAM,CAAC,CAAC,MAAM,CAAC,GAAO,IACf,EACT,4CAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,IAAI,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,cAAM,OAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAtB,CAAsB,gBAChI,0CAAM,CAAC,CAAC,SAAS,CAAC,GAAO,IAClB,IACR,CACJ,IACG,EACN,0CAAK,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,iBAC3B,WAAW,IAAI,CACd,uBAAC,WAAI,IAAC,GAAG,EAAE,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,CAC5E,EACA,UAAU,IAAI,CACb,uBAAC,iBAAO,IAAC,GAAG,EAAE,KAAC,WAAG,8FAAA,0BAA0B,MAAE,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,CAC5F,KACG,KACF,EACN,0DAAoB,CAAC,CAAC,SAAS,CAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,CAAC,MAAM,CAAC,EAAhB,CAAgB,gBAC/G,uBAAC,mCAAe,IAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,6BAAa,EAAE,GAAG,EAAE,SAAS,GAAG,IACnE,IACR,CACJ,CAAA;AACH,CAAC,CAAA;AAnDY,QAAA,WAAW,eAmDvB;AAED,IAAM,eAAe,OAAG,WAAG,wSAAA,oOAY1B,IAAA,CAAA;AAED,IAAM,SAAS,OAAG,WAAG,qKAAA,iGAMpB,IAAA,CAAA;AAED,IAAM,OAAO,OAAG,WAAG,sGAAA,kCAElB,IAAA,CAAA;AAED,IAAM,MAAM,OAAG,WAAG,qNAAA,iJAQjB,IAAA,CAAA;AAED,IAAM,QAAQ,OAAG,WAAG,iHAAA,6CAGnB,IAAA,CAAA;AAED,IAAM,UAAU,OAAG,WAAG,8IAAA,0EAGrB,IAAA,CAAA;AAED,IAAM,SAAS,OAAG,WAAG,gJAAA,4EAGpB;IAED,4CAA4C;IAF3C,CAAA;AAED,4CAA4C;AAC5C,IAAM,MAAM,OAAG,WAAG,0FAAA,sBAEjB,IAAA,CAAA;AAED,IAAM,gBAAgB,OAAG,WAAG,8aAAA,MACxB,EAAqB,gWAuBxB,KAvBG,+BAAqB,CAuBxB,CAAA;AAED,IAAM,SAAS,OAAG,WAAG,2KAAA,qGAMpB,IAAA,CAAA;AAGD,IAAM,WAAW,OAAG,WAAG,gVAAA,0QAatB,IAAA,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
18
|
+
var t = {};
|
|
19
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
20
|
+
t[p] = s[p];
|
|
21
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
22
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
23
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
24
|
+
t[p[i]] = s[p[i]];
|
|
25
|
+
}
|
|
26
|
+
return t;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.InternalLiveLogContainer = void 0;
|
|
30
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
31
|
+
/** @jsxImportSource @emotion/react */
|
|
32
|
+
var react_1 = require("@emotion/react");
|
|
33
|
+
var react_client_1 = require("@gamepark/react-client");
|
|
34
|
+
var react_2 = require("react");
|
|
35
|
+
var css_1 = require("../../css");
|
|
36
|
+
var useFlatHistory_1 = require("../../hooks/useFlatHistory");
|
|
37
|
+
var LogItem_1 = require("./LogItem");
|
|
38
|
+
var getFadeOutDuration = function (duration) {
|
|
39
|
+
return 0.4 * duration;
|
|
40
|
+
};
|
|
41
|
+
var getThrottleDuration = function (maxItemDisplayed, duration) {
|
|
42
|
+
return duration / maxItemDisplayed;
|
|
43
|
+
};
|
|
44
|
+
var getDelayBeforeDelete = function (duration) {
|
|
45
|
+
return duration - getFadeOutDuration(duration);
|
|
46
|
+
};
|
|
47
|
+
var InternalLiveLogContainer = function (props) {
|
|
48
|
+
var _a = (0, useFlatHistory_1.useFlatHistory)(), history = _a.history, isLoaded = _a.isLoaded;
|
|
49
|
+
var stopped = (0, react_client_1.useLogControls)().stopped;
|
|
50
|
+
var _b = (0, react_2.useState)([]), displayed = _b[0], setDisplayed = _b[1];
|
|
51
|
+
var _c = (0, react_2.useState)(-1), nextDisplayed = _c[0], setNextDisplayed = _c[1];
|
|
52
|
+
var _d = (0, react_2.useState)(false), isJustDisplayed = _d[0], setJustDisplayed = _d[1];
|
|
53
|
+
var _e = props.duration, duration = _e === void 0 ? 5 : _e, _f = props.maxItemDisplayed, maxItemDisplayed = _f === void 0 ? 5 : _f, rest = __rest(props, ["duration", "maxItemDisplayed"]);
|
|
54
|
+
(0, react_2.useEffect)(function () {
|
|
55
|
+
if (isLoaded) {
|
|
56
|
+
setNextDisplayed(history.length);
|
|
57
|
+
}
|
|
58
|
+
}, [isLoaded]);
|
|
59
|
+
(0, react_2.useEffect)(function () {
|
|
60
|
+
if (displayed.length < maxItemDisplayed && !stopped) {
|
|
61
|
+
displayNextHistoryEntry();
|
|
62
|
+
}
|
|
63
|
+
}, [history, displayed, isJustDisplayed, stopped]);
|
|
64
|
+
var displayNextHistoryEntry = function () {
|
|
65
|
+
if (!isLoaded || nextDisplayed === -1)
|
|
66
|
+
return;
|
|
67
|
+
var next = history[nextDisplayed];
|
|
68
|
+
if (next && !isJustDisplayed) {
|
|
69
|
+
setNextDisplayed(nextDisplayed + 1);
|
|
70
|
+
setDisplayed(function (d) { return d.concat(next); });
|
|
71
|
+
setJustDisplayed(true);
|
|
72
|
+
setTimeout(function () { return setJustDisplayed(false); }, getThrottleDuration(maxItemDisplayed, duration) * 1000);
|
|
73
|
+
setTimeout(function () {
|
|
74
|
+
setDisplayed(function (d) {
|
|
75
|
+
next.deleting = true;
|
|
76
|
+
return d;
|
|
77
|
+
});
|
|
78
|
+
setTimeout(function () {
|
|
79
|
+
setDisplayed(function (d) { return d.filter(function (h) { return h !== next; }); });
|
|
80
|
+
}, getFadeOutDuration(duration) * 1000);
|
|
81
|
+
}, getDelayBeforeDelete(duration) * 1000);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
if (stopped)
|
|
85
|
+
return null;
|
|
86
|
+
return ((0, jsx_runtime_1.jsx)(react_1.ThemeProvider, __assign({ theme: function (theme) { return (__assign(__assign({}, theme), { buttons: historyButtonCss })); } }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ css: scrollContentCss }, rest, { children: displayed.map(function (h) { return ((0, jsx_runtime_1.jsx)(LogItem_1.LogItem, { history: h, disableCustomCss: !h.liveCss, css: [itemCss, h.deleting ? deletingCss(duration) : fadeInCss] }, "".concat(h.action.id, "_").concat(h.consequenceIndex))); }) })) })));
|
|
87
|
+
};
|
|
88
|
+
exports.InternalLiveLogContainer = InternalLiveLogContainer;
|
|
89
|
+
var scrollContentCss = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n\n > &:not(button) {\n pointer-events: none;\n }\n"], ["\n position: relative;\n\n > &:not(button) {\n pointer-events: none;\n }\n"])));
|
|
90
|
+
var historyButtonCss = [css_1.linkButtonCss, (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: inherit;\n background-color: transparent;\n font-style: italic;\n"], ["\n color: inherit;\n background-color: transparent;\n font-style: italic;\n"])))];
|
|
91
|
+
var itemCss = (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: grid;\n grid-template-rows: 1fr;\n pointer-events: none;\n\n > div {\n overflow: hidden;\n }\n"], ["\n display: grid;\n grid-template-rows: 1fr;\n pointer-events: none;\n\n > div {\n overflow: hidden;\n }\n"])));
|
|
92
|
+
var deletingAnimation = (0, react_1.keyframes)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n 50% {\n font-size: 1em;\n opacity: 0;\n grid-template-rows: 1fr;\n }\n 100% {\n font-size: 0;\n opacity: 0;\n grid-template-rows: 0fr;\n }\n"], ["\n 50% {\n font-size: 1em;\n opacity: 0;\n grid-template-rows: 1fr;\n }\n 100% {\n font-size: 0;\n opacity: 0;\n grid-template-rows: 0fr;\n }\n"])));
|
|
93
|
+
var fadeInAnimation = (0, react_1.keyframes)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n from {\n opacity: 0;\n }\n"], ["\n from {\n opacity: 0;\n }\n"])));
|
|
94
|
+
var deletingCss = function (duration) { return (0, react_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n animation: ", " ", "s forwards;\n"], ["\n animation: ", " ", "s forwards;\n"])), deletingAnimation, getFadeOutDuration(duration) - 0.05); };
|
|
95
|
+
var fadeInCss = (0, react_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n animation: ", " 1000ms;\n"], ["\n animation: ", " 1000ms;\n"])), fadeInAnimation);
|
|
96
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
|
|
97
|
+
//# sourceMappingURL=InternalLiveLogContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalLiveLogContainer.js","sourceRoot":"","sources":["../../../src/components/Log/InternalLiveLogContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LiveLogButton: () => import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,35 @@
|
|
|
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.LiveLogButton = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
16
|
+
/** @jsxImportSource @emotion/react */
|
|
17
|
+
var faBell_1 = require("@fortawesome/free-solid-svg-icons/faBell");
|
|
18
|
+
var faBellSlash_1 = require("@fortawesome/free-solid-svg-icons/faBellSlash");
|
|
19
|
+
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
20
|
+
var react_client_1 = require("@gamepark/react-client");
|
|
21
|
+
var react_1 = require("react");
|
|
22
|
+
var react_i18next_1 = require("react-i18next");
|
|
23
|
+
var GameProvider_1 = require("../GameProvider");
|
|
24
|
+
var menuCss_1 = require("../menus/menuCss");
|
|
25
|
+
var LiveLogButton = function () {
|
|
26
|
+
var _a;
|
|
27
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
28
|
+
var _b = (0, react_client_1.useLogControls)(), start = _b.start, stop = _b.stop, stopped = _b.stopped;
|
|
29
|
+
var hasLogs = (_a = (0, react_1.useContext)(GameProvider_1.gameContext)) === null || _a === void 0 ? void 0 : _a.logs;
|
|
30
|
+
if (!hasLogs)
|
|
31
|
+
return null;
|
|
32
|
+
return ((0, jsx_runtime_1.jsxs)("button", __assign({ css: menuCss_1.menuButtonCss, onClick: function () { return stopped ? start() : stop(); } }, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: stopped ? faBellSlash_1.faBellSlash : faBell_1.faBell }), stopped ? t('Enable live history') : t('Disable live history')] })));
|
|
33
|
+
};
|
|
34
|
+
exports.LiveLogButton = LiveLogButton;
|
|
35
|
+
//# sourceMappingURL=LiveLogButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveLogButton.js","sourceRoot":"","sources":["../../../src/components/Log/LiveLogButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,mEAAiE;AACjE,6EAA2E;AAC3E,oEAAgE;AAChE,uDAAuD;AACvD,+BAAkC;AAClC,+CAA8C;AAC9C,gDAA6C;AAC7C,4CAAgD;AAEzC,IAAM,aAAa,GAAG;;IACnB,IAAA,CAAC,GAAK,IAAA,8BAAc,GAAE,EAArB,CAAqB;IACxB,IAAA,KAA2B,IAAA,6BAAc,GAAE,EAAzC,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAqB,CAAA;IACjD,IAAM,OAAO,GAAG,MAAA,IAAA,kBAAU,EAAC,0BAAW,CAAC,0CAAE,IAAI,CAAA;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,OAAO,CACL,6CAAQ,GAAG,EAAE,uBAAa,EAAE,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAA1B,CAA0B,iBACnE,uBAAC,mCAAe,IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,yBAAW,CAAC,CAAC,CAAC,eAAM,GAAG,EACvD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,KACxD,CACV,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,aAAa,iBAWzB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.LiveLogContainer = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
16
|
+
/** @jsxImportSource @emotion/react */
|
|
17
|
+
var react_client_1 = require("@gamepark/react-client");
|
|
18
|
+
var InternalLiveLogContainer_1 = require("./InternalLiveLogContainer");
|
|
19
|
+
var LiveLogContainer = function (props) {
|
|
20
|
+
var stopped = (0, react_client_1.useLogControls)().stopped;
|
|
21
|
+
if (stopped)
|
|
22
|
+
return null;
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(InternalLiveLogContainer_1.InternalLiveLogContainer, __assign({}, props)));
|
|
24
|
+
};
|
|
25
|
+
exports.LiveLogContainer = LiveLogContainer;
|
|
26
|
+
//# sourceMappingURL=LiveLogContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveLogContainer.js","sourceRoot":"","sources":["../../../src/components/Log/LiveLogContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,uDAAuD;AAEvD,uEAA4F;AAGrF,IAAM,gBAAgB,GAA8B,UAAC,KAAK;IACvD,IAAA,OAAO,GAAK,IAAA,6BAAc,GAAE,QAArB,CAAqB;IACpC,IAAI,OAAO;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,CACL,uBAAC,mDAAwB,eAAK,KAAK,EAAI,CACxC,CAAA;AACH,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Interpolation, Theme } from '@emotion/react';
|
|
2
|
+
import { DisplayedAction } from '@gamepark/react-client';
|
|
3
|
+
import { ComponentType } from 'react';
|
|
4
|
+
export type MoveComponentProps<Move = any, Player = number> = {
|
|
5
|
+
move: Move;
|
|
6
|
+
context: MoveComponentContext<Move, Player>;
|
|
7
|
+
};
|
|
8
|
+
export type MoveComponentContext<Move = any, Player = number, Game = any> = {
|
|
9
|
+
game: Game;
|
|
10
|
+
action: DisplayedAction<Move, Player>;
|
|
11
|
+
consequenceIndex?: number;
|
|
12
|
+
};
|
|
13
|
+
export type MovePlayedLogDescription<Move = any, Player = number> = {
|
|
14
|
+
Component: ComponentType<MoveComponentProps<Move, Player>>;
|
|
15
|
+
player?: Player;
|
|
16
|
+
depth?: number;
|
|
17
|
+
css?: Interpolation<Theme>;
|
|
18
|
+
liveCss?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export interface LogDescription<Move = any, Player = number, Game = any> {
|
|
21
|
+
getMovePlayedLogDescription(move: Move, context: MoveComponentContext<Move, Player, Game>): MovePlayedLogDescription | undefined;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogDescription.js","sourceRoot":"","sources":["../../../src/components/Log/LogDescription.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @jsxImportSource @emotion/react */
|
|
2
|
+
import { Interpolation, Theme } from '@emotion/react';
|
|
3
|
+
import { FC, HTMLAttributes } from 'react';
|
|
4
|
+
import { MoveHistory } from '../../hooks/useFlatHistory';
|
|
5
|
+
type HistoryItemProps = {
|
|
6
|
+
history: MoveHistory;
|
|
7
|
+
customEntryCss?: Interpolation<Theme>;
|
|
8
|
+
disableCustomCss?: boolean;
|
|
9
|
+
} & HTMLAttributes<HTMLDivElement>;
|
|
10
|
+
export declare const LogItem: FC<HistoryItemProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
18
|
+
var t = {};
|
|
19
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
20
|
+
t[p] = s[p];
|
|
21
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
22
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
23
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
24
|
+
t[p[i]] = s[p[i]];
|
|
25
|
+
}
|
|
26
|
+
return t;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.LogItem = void 0;
|
|
30
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
31
|
+
/** @jsxImportSource @emotion/react */
|
|
32
|
+
var react_1 = require("@emotion/react");
|
|
33
|
+
var Avatar_1 = require("../Avatar");
|
|
34
|
+
var LogItem = function (_a) {
|
|
35
|
+
var _b;
|
|
36
|
+
var history = _a.history, disableCustomCss = _a.disableCustomCss, customEntryCss = _a.customEntryCss, rest = __rest(_a, ["history", "disableCustomCss", "customEntryCss"]);
|
|
37
|
+
var depth = (_b = history.depth) !== null && _b !== void 0 ? _b : 0;
|
|
38
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({}, rest, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ css: [entryCss, customEntryCss, !disableCustomCss && history.css] }, { children: [history.player !== undefined && (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Avatar_1.Avatar, { css: avatarCss, playerId: history.player }) }), depth > 0 && (0, jsx_runtime_1.jsx)("div", __assign({ css: depthIconCss(depth) }, { children: "\u2937" })), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(history.Component, { move: history.move, context: history }) })] })) })));
|
|
39
|
+
};
|
|
40
|
+
exports.LogItem = LogItem;
|
|
41
|
+
var entryCss = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 1em;\n margin-bottom: 0.5em;\n min-height: 1em;\n padding-left: 1em;\n margin-left: 0.05em;\n margin-top: 0.05em;\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n display: flex;\n align-items: center;\n font-size: 2em;\n\n > picture {\n display: flex;\n margin-left: 0.5em;\n margin-right: 0.5em;\n }\n"], ["\n width: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n border-radius: 1em;\n margin-bottom: 0.5em;\n min-height: 1em;\n padding-left: 1em;\n margin-left: 0.05em;\n margin-top: 0.05em;\n padding-top: 0.5em;\n padding-bottom: 0.5em;\n display: flex;\n align-items: center;\n font-size: 2em;\n\n > picture {\n display: flex;\n margin-left: 0.5em;\n margin-right: 0.5em;\n }\n"])));
|
|
42
|
+
var avatarCss = (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n left: 0;\n border-radius: 100%;\n height: 2.5em;\n width: 2.5em;\n margin-right: 1em;\n color: black;\n z-index: 1;\n"], ["\n position: relative;\n left: 0;\n border-radius: 100%;\n height: 2.5em;\n width: 2.5em;\n margin-right: 1em;\n color: black;\n z-index: 1;\n"])));
|
|
43
|
+
var depthIconCss = function (depth) { return (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n font-size: 1.5em;\n margin-right: 0.4em;\n margin-left: ", "em;\n margin-top: -0.2em;\n"], ["\n font-size: 1.5em;\n margin-right: 0.4em;\n margin-left: ", "em;\n margin-top: -0.2em;\n"])), 0.5 + (1.5 * (depth - 1))); };
|
|
44
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
45
|
+
//# sourceMappingURL=LogItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogItem.js","sourceRoot":"","sources":["../../../src/components/Log/LogItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wCAA0D;AAG1D,oCAAkC;AAQ3B,IAAM,OAAO,GAAyB,UAAC,EAAsD;;IAApD,IAAA,OAAO,aAAA,EAAE,gBAAgB,sBAAA,EAAE,cAAc,oBAAA,EAAK,IAAI,cAApD,iDAAsD,CAAF;IAChG,IAAM,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,CAAC,CAAA;IAChC,OAAO,CACL,2CAAS,IAAI,cACX,0CAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,iBACnE,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,0CAAK,uBAAC,eAAM,IAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,GAAM,EAC9F,KAAK,GAAG,CAAC,IAAI,yCAAK,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,4BAAS,EACpD,0CACE,uBAAC,OAAO,CAAC,SAAS,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,GACtD,KACF,IACF,CACP,CAAA;AAGH,CAAC,CAAA;AAfY,QAAA,OAAO,WAenB;AAED,IAAM,QAAQ,OAAG,WAAG,qdAAA,iZAoBnB,IAAA,CAAA;AAED,IAAM,SAAS,OAAG,WAAG,4NAAA,wJASpB,IAAA,CAAA;AAGD,IAAM,YAAY,GAAG,UAAC,KAAa,IAAK,WAAA,WAAG,oKAAA,gEAG1B,EAAyB,8BAEzC,KAFgB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAHF,CAKvC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./LogItem"), exports);
|
|
18
|
+
__exportStar(require("./LiveLogContainer"), exports);
|
|
19
|
+
__exportStar(require("./LogDescription"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Log/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,qDAAkC;AAClC,mDAAgC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./ResultDialog"), exports);
|
|
18
|
+
__exportStar(require("./useScoringTable"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/dialogs/ResultDialog/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/dialogs/ResultDialog/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,oDAAiC"}
|
package/dist/components/index.js
CHANGED
|
@@ -29,4 +29,5 @@ __exportStar(require("./PlayerPanel"), exports);
|
|
|
29
29
|
__exportStar(require("./PlayerTimer"), exports);
|
|
30
30
|
__exportStar(require("./tutorial"), exports);
|
|
31
31
|
__exportStar(require("./Avatar"), exports);
|
|
32
|
+
__exportStar(require("./Log"), exports);
|
|
32
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,4CAAyB;AACzB,iDAA8B;AAC9B,2CAAwB;AACxB,iDAA8B;AAC9B,gDAA6B;AAC7B,8CAA2B;AAC3B,kDAA+B;AAC/B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,gDAA6B;AAC7B,gDAA6B;AAC7B,6CAA0B;AAC1B,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,4CAAyB;AACzB,iDAA8B;AAC9B,2CAAwB;AACxB,iDAA8B;AAC9B,gDAA6B;AAC7B,8CAA2B;AAC3B,kDAA+B;AAC/B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,gDAA6B;AAC7B,gDAA6B;AAC7B,6CAA0B;AAC1B,2CAAwB;AACxB,wCAAqB"}
|
|
@@ -34,6 +34,7 @@ var dialogs_1 = require("../../dialogs");
|
|
|
34
34
|
var GamePoints_1 = require("../../GamePoints");
|
|
35
35
|
var GameProvider_1 = require("../../GameProvider");
|
|
36
36
|
var JournalTabs_1 = require("../../JournalTabs/JournalTabs");
|
|
37
|
+
var LiveLogButton_1 = require("../../Log/LiveLogButton");
|
|
37
38
|
var EjectPlayer_1 = require("../EjectPlayer");
|
|
38
39
|
var Fullscreen_1 = require("../Fullscreen");
|
|
39
40
|
var GiveUpButton_1 = require("../GiveUpButton");
|
|
@@ -82,7 +83,7 @@ var Menu = function () {
|
|
|
82
83
|
if (resultDialogOpen)
|
|
83
84
|
setResultDialogAutoOpen(false);
|
|
84
85
|
}, [resultDialogOpen]);
|
|
85
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { css: [exports.backdrop, isOpen && exports.displayBackdrop], onClick: function () { return setOpen(false); } }), couldEject && (0, jsx_runtime_1.jsx)(EjectPlayer_1.EjectPlayerPopButton, { onClick: function () { return setEjectPlayerDialogOpen(true); } }), couldUndo && (0, jsx_runtime_1.jsx)(UndoButton_1.UndoPopButton, {}), gameOver && (0, jsx_runtime_1.jsx)(Result_1.ResultPopButton, { onClick: function () { return setResultDialogOpen(true); } }), fscreen_1.default.fullscreenEnabled && (0, jsx_runtime_1.jsx)(Fullscreen_1.FullscreenPopButton, {}), (0, jsx_runtime_1.jsxs)("div", __assign({ css: [menuCss_1.menuFontSize, menuCss_1.menuBaseCss, menuCss, !isOpen && hide] }, { children: [(0, jsx_runtime_1.jsx)("h2", __assign({ css: titleCss }, { children: t('Menu') })), fscreen_1.default.fullscreenEnabled && (0, jsx_runtime_1.jsx)(Fullscreen_1.FullscreenButton, {}), (0, jsx_runtime_1.jsx)(SoundButton_1.SoundButton, {}), couldUndo && (0, jsx_runtime_1.jsx)(UndoButton_1.UndoButton, {}), canGiveUp && (0, jsx_runtime_1.jsx)(GiveUpButton_1.GiveUpButton, {}), couldEject && (0, jsx_runtime_1.jsx)(EjectPlayer_1.EjectPlayerButton, { onClick: function () { return setEjectPlayerDialogOpen(true); } }), (0, jsx_runtime_1.jsx)(TimeStatsButton_1.TimeStatsButton, {}), gameMode === react_client_1.GameMode.TUTORIAL && (0, jsx_runtime_1.jsx)(RestartTutorialButton_1.RestartTutorialButton, {}), (0, jsx_runtime_1.jsxs)(NavButton_1.NavButton, __assign({ url: "".concat(react_client_1.PLATFORM_URI, "/").concat(locale, "/board-games/").concat(game) }, { children: [(0, jsx_runtime_1.jsx)(LogoIcon_1.LogoIcon, { css: buttonLogoIcon }), t('Back to Game Park')] })), gameOver && (0, jsx_runtime_1.jsx)(Result_1.ResultButton, { onClick: function () { return setResultDialogOpen(true); } }), canPlayAgain &&
|
|
86
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { css: [exports.backdrop, isOpen && exports.displayBackdrop], onClick: function () { return setOpen(false); } }), couldEject && (0, jsx_runtime_1.jsx)(EjectPlayer_1.EjectPlayerPopButton, { onClick: function () { return setEjectPlayerDialogOpen(true); } }), couldUndo && (0, jsx_runtime_1.jsx)(UndoButton_1.UndoPopButton, {}), gameOver && (0, jsx_runtime_1.jsx)(Result_1.ResultPopButton, { onClick: function () { return setResultDialogOpen(true); } }), fscreen_1.default.fullscreenEnabled && (0, jsx_runtime_1.jsx)(Fullscreen_1.FullscreenPopButton, {}), (0, jsx_runtime_1.jsxs)("div", __assign({ css: [menuCss_1.menuFontSize, menuCss_1.menuBaseCss, menuCss, !isOpen && hide] }, { children: [(0, jsx_runtime_1.jsx)("h2", __assign({ css: titleCss }, { children: t('Menu') })), fscreen_1.default.fullscreenEnabled && (0, jsx_runtime_1.jsx)(Fullscreen_1.FullscreenButton, {}), (0, jsx_runtime_1.jsx)(SoundButton_1.SoundButton, {}), (0, jsx_runtime_1.jsx)(LiveLogButton_1.LiveLogButton, {}), couldUndo && (0, jsx_runtime_1.jsx)(UndoButton_1.UndoButton, {}), canGiveUp && (0, jsx_runtime_1.jsx)(GiveUpButton_1.GiveUpButton, {}), couldEject && (0, jsx_runtime_1.jsx)(EjectPlayer_1.EjectPlayerButton, { onClick: function () { return setEjectPlayerDialogOpen(true); } }), (0, jsx_runtime_1.jsx)(TimeStatsButton_1.TimeStatsButton, {}), gameMode === react_client_1.GameMode.TUTORIAL && (0, jsx_runtime_1.jsx)(RestartTutorialButton_1.RestartTutorialButton, {}), (0, jsx_runtime_1.jsxs)(NavButton_1.NavButton, __assign({ url: "".concat(react_client_1.PLATFORM_URI, "/").concat(locale, "/board-games/").concat(game) }, { children: [(0, jsx_runtime_1.jsx)(LogoIcon_1.LogoIcon, { css: buttonLogoIcon }), t('Back to Game Park')] })), gameOver && (0, jsx_runtime_1.jsx)(Result_1.ResultButton, { onClick: function () { return setResultDialogOpen(true); } }), canPlayAgain &&
|
|
86
87
|
(0, jsx_runtime_1.jsxs)(NavButton_1.NavButton, __assign({ url: "".concat(react_client_1.PLATFORM_URI, "/").concat(locale, "/board-games/").concat(game, "/play") }, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faChessPawn_1.faChessPawn }), t('Play again')] })), goToRanking &&
|
|
87
88
|
(0, jsx_runtime_1.jsxs)(NavButton_1.NavButton, __assign({ url: "".concat(react_client_1.PLATFORM_URI, "/").concat(locale, "/board-games/").concat(game, "/ranking") }, { children: [(0, jsx_runtime_1.jsx)(GamePoints_1.GamePointIcon, { css: gamePointIconStyle }), t('See overall ranking')] }))] })), (0, jsx_runtime_1.jsx)("button", __assign({ "aria-label": t('Menu'), title: t('Menu'), css: mainButtonCss, onClick: function () { return setOpen(!isOpen); } }, { children: isOpen ? (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: faTimes_1.faTimes, css: iconStyle }) : (0, jsx_runtime_1.jsx)(LogoIcon_1.LogoIcon, { fill: "white" }) })), couldEject && (0, jsx_runtime_1.jsx)(EjectPlayer_1.EjectPlayerDialog, { open: ejectPlayerDialogOpen, close: function () { return setEjectPlayerDialogOpen(false); } }), !gameOver && (0, jsx_runtime_1.jsx)(PlayerQuit_1.TrackPlayersQuit, {}), gameOver && (0, jsx_runtime_1.jsx)(dialogs_1.ResultDialog, { open: resultDialogOpen, openDialog: function () { return setResultDialogOpen(true); }, close: function () { return setResultDialogOpen(false); } }), (0, jsx_runtime_1.jsx)(JournalTabs_1.JournalTabs, { gameId: gameId })] }));
|
|
88
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/components/menus/Menu/Menu.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/components/menus/Menu/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DisplayedAction } from '@gamepark/react-client';
|
|
2
|
+
import { MaterialMove } from '@gamepark/rules-api';
|
|
3
|
+
import { MovePlayedLogDescription } from '../components';
|
|
4
|
+
export type MoveHistory<Move = any, Player = any, Game = any> = MovePlayedLogDescription<Move, Player> & {
|
|
5
|
+
action: DisplayedAction<Move, Player>;
|
|
6
|
+
move: MaterialMove;
|
|
7
|
+
game: Game;
|
|
8
|
+
consequenceIndex?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const useFlatHistory: () => {
|
|
11
|
+
history: MoveHistory<any, any, any>[];
|
|
12
|
+
isLoaded: boolean;
|
|
13
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
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.useFlatHistory = void 0;
|
|
15
|
+
var react_1 = require("react");
|
|
16
|
+
var react_redux_1 = require("react-redux");
|
|
17
|
+
var components_1 = require("../components");
|
|
18
|
+
var usePlayerId_1 = require("./usePlayerId");
|
|
19
|
+
var useFlatHistory = function () {
|
|
20
|
+
var _a;
|
|
21
|
+
var context = (0, react_1.useContext)(components_1.gameContext);
|
|
22
|
+
var player = (0, usePlayerId_1.usePlayerId)();
|
|
23
|
+
var _b = (0, react_1.useState)([]), history = _b[0], setHistory = _b[1];
|
|
24
|
+
var _c = (0, react_1.useState)(false), isLoaded = _c[0], setLoaded = _c[1];
|
|
25
|
+
var setup = (_a = (0, react_redux_1.useSelector)(function (state) { return state.setup; })) !== null && _a !== void 0 ? _a : {};
|
|
26
|
+
var playedMoves = (0, react_redux_1.useSelector)(function (state) { return state.playedMoves; });
|
|
27
|
+
var gameOver = (0, react_redux_1.useSelector)(function (state) { return state.gameOver; });
|
|
28
|
+
var movesCount = (0, react_1.useRef)(0);
|
|
29
|
+
var rules = (0, react_1.useRef)();
|
|
30
|
+
(0, react_1.useEffect)(function () {
|
|
31
|
+
if (!rules.current && setup) {
|
|
32
|
+
rules.current = new context.Rules(JSON.parse(JSON.stringify(setup)), gameOver ? undefined : { player: player });
|
|
33
|
+
}
|
|
34
|
+
}, [setup, gameOver]);
|
|
35
|
+
var getMoveEntry = function (playedMove, game) {
|
|
36
|
+
var _a;
|
|
37
|
+
var move = playedMove.move;
|
|
38
|
+
var moveComponentContext = __assign(__assign({}, playedMove), { game: game });
|
|
39
|
+
var description = (_a = context.logs) === null || _a === void 0 ? void 0 : _a.getMovePlayedLogDescription(move, moveComponentContext);
|
|
40
|
+
if (!(description === null || description === void 0 ? void 0 : description.Component))
|
|
41
|
+
return;
|
|
42
|
+
return __assign(__assign(__assign({}, playedMove), { game: JSON.parse(JSON.stringify(game)) }), description);
|
|
43
|
+
};
|
|
44
|
+
(0, react_1.useEffect)(function () {
|
|
45
|
+
if (playedMoves !== undefined && !isLoaded)
|
|
46
|
+
setLoaded(true);
|
|
47
|
+
}, [playedMoves]);
|
|
48
|
+
(0, react_1.useEffect)(function () {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
var actualSize = movesCount.current;
|
|
51
|
+
if (!playedMoves)
|
|
52
|
+
return;
|
|
53
|
+
if (actualSize < playedMoves.length) {
|
|
54
|
+
var newMoves = playedMoves.slice(actualSize - playedMoves.length);
|
|
55
|
+
var entries_1 = [];
|
|
56
|
+
for (var _i = 0, newMoves_1 = newMoves; _i < newMoves_1.length; _i++) {
|
|
57
|
+
var move = newMoves_1[_i];
|
|
58
|
+
var entry = getMoveEntry(move, rules.current.game);
|
|
59
|
+
if (entry)
|
|
60
|
+
entries_1.push(entry);
|
|
61
|
+
(_a = rules.current) === null || _a === void 0 ? void 0 : _a.play(move.move, { local: move.action.local });
|
|
62
|
+
}
|
|
63
|
+
setHistory(function (h) { return h.concat(entries_1); });
|
|
64
|
+
}
|
|
65
|
+
else if (actualSize > playedMoves.length) {
|
|
66
|
+
var newPlayedMoveActionId_1 = new Set(playedMoves.map(function (m) { return m.action.id; }));
|
|
67
|
+
var firstDeletedActionIndex_1 = history.findIndex(function (m) { return !newPlayedMoveActionId_1.has(m.action.id); });
|
|
68
|
+
var gameBefore = JSON.parse(JSON.stringify(firstDeletedActionIndex_1 < 1 ? setup : history[firstDeletedActionIndex_1 - 1].game));
|
|
69
|
+
rules.current = new context.Rules(gameBefore);
|
|
70
|
+
var followingMoves = history.slice(firstDeletedActionIndex_1).filter(function (h) { return newPlayedMoveActionId_1.has(h.action.id); });
|
|
71
|
+
var entries_2 = [];
|
|
72
|
+
for (var _c = 0, followingMoves_1 = followingMoves; _c < followingMoves_1.length; _c++) {
|
|
73
|
+
var move = followingMoves_1[_c];
|
|
74
|
+
var entry = getMoveEntry(move, rules.current.game);
|
|
75
|
+
if (entry)
|
|
76
|
+
entries_2.push(entry);
|
|
77
|
+
(_b = rules.current) === null || _b === void 0 ? void 0 : _b.play(move.move, { local: move.action.local });
|
|
78
|
+
}
|
|
79
|
+
setHistory(function (h) { return h.slice(0, firstDeletedActionIndex_1).concat(entries_2); });
|
|
80
|
+
}
|
|
81
|
+
movesCount.current = playedMoves.length;
|
|
82
|
+
}, [playedMoves]);
|
|
83
|
+
return {
|
|
84
|
+
history: history,
|
|
85
|
+
isLoaded: isLoaded
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
exports.useFlatHistory = useFlatHistory;
|
|
89
|
+
//# sourceMappingURL=useFlatHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFlatHistory.js","sourceRoot":"","sources":["../../src/hooks/useFlatHistory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/react-game",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.31.1",
|
|
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",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
|
28
28
|
"@fortawesome/react-fontawesome": "^0.2.2",
|
|
29
29
|
"@gamepark/avataaars": "~2.2.0",
|
|
30
|
-
"@gamepark/react-client": "~6.
|
|
30
|
+
"@gamepark/react-client": "~6.31.1",
|
|
31
31
|
"@gamepark/rules-api": "~6.30.0",
|
|
32
32
|
"dayjs": "^1.11.7",
|
|
33
33
|
"emotion-normalize": "^11.0.1",
|