@gamepark/react-game 6.16.0 → 6.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/GameProvider/GameContext.d.ts +2 -0
- package/dist/components/GameProvider/GameContext.js.map +1 -1
- package/dist/components/GameProvider/GameProvider.js +5 -3
- package/dist/components/GameProvider/GameProvider.js.map +1 -1
- package/dist/components/JournalTabs/Chat/Chat.d.ts +7 -0
- package/dist/components/JournalTabs/Chat/Chat.js +37 -0
- package/dist/components/JournalTabs/Chat/Chat.js.map +1 -0
- package/dist/components/JournalTabs/Chat/ChatMessage.d.ts +7 -0
- package/dist/components/JournalTabs/Chat/ChatMessage.js +29 -0
- package/dist/components/JournalTabs/Chat/ChatMessage.js.map +1 -0
- package/dist/components/JournalTabs/Chat/ChatMessageAuthor.d.ts +3 -0
- package/dist/components/JournalTabs/Chat/ChatMessageAuthor.js +37 -0
- package/dist/components/JournalTabs/Chat/ChatMessageAuthor.js.map +1 -0
- package/dist/components/JournalTabs/Chat/ChatTextInput.d.ts +19 -0
- package/dist/components/JournalTabs/Chat/ChatTextInput.js +71 -0
- package/dist/components/JournalTabs/Chat/ChatTextInput.js.map +1 -0
- package/dist/components/JournalTabs/Chat/CommonChat.d.ts +12 -0
- package/dist/components/JournalTabs/Chat/CommonChat.js +58 -0
- package/dist/components/JournalTabs/Chat/CommonChat.js.map +1 -0
- package/dist/components/JournalTabs/Chat/LocalChat.d.ts +6 -0
- package/dist/components/JournalTabs/Chat/LocalChat.js +49 -0
- package/dist/components/JournalTabs/Chat/LocalChat.js.map +1 -0
- package/dist/components/JournalTabs/Chat/RemoteChat.d.ts +7 -0
- package/dist/components/JournalTabs/Chat/RemoteChat.js +46 -0
- package/dist/components/JournalTabs/Chat/RemoteChat.js.map +1 -0
- package/dist/components/JournalTabs/Chat/SignInToChat.d.ts +1 -0
- package/dist/components/JournalTabs/Chat/SignInToChat.js +35 -0
- package/dist/components/JournalTabs/Chat/SignInToChat.js.map +1 -0
- package/dist/components/JournalTabs/Chat/index.d.ts +5 -0
- package/dist/components/JournalTabs/Chat/index.js +22 -0
- package/dist/components/JournalTabs/Chat/index.js.map +1 -0
- package/dist/components/JournalTabs/History/ActionHistoryEntry.d.ts +12 -0
- package/dist/components/JournalTabs/History/ActionHistoryEntry.js +62 -0
- package/dist/components/JournalTabs/History/ActionHistoryEntry.js.map +1 -0
- package/dist/components/JournalTabs/History/History.d.ts +6 -0
- package/dist/components/JournalTabs/History/History.js +54 -0
- package/dist/components/JournalTabs/History/History.js.map +1 -0
- package/dist/components/JournalTabs/History/HistoryEntry.d.ts +11 -0
- package/dist/components/JournalTabs/History/HistoryEntry.js +42 -0
- package/dist/components/JournalTabs/History/HistoryEntry.js.map +1 -0
- package/dist/components/JournalTabs/History/MaterialHistory.d.ts +11 -0
- package/dist/components/JournalTabs/History/MaterialHistory.js +3 -0
- package/dist/components/JournalTabs/History/MaterialHistory.js.map +1 -0
- package/dist/components/JournalTabs/History/PlayerActionHistory.d.ts +8 -0
- package/dist/components/JournalTabs/History/PlayerActionHistory.js +42 -0
- package/dist/components/JournalTabs/History/PlayerActionHistory.js.map +1 -0
- package/dist/components/JournalTabs/History/PlayerHistoryEntry.d.ts +8 -0
- package/dist/components/JournalTabs/History/PlayerHistoryEntry.js +44 -0
- package/dist/components/JournalTabs/History/PlayerHistoryEntry.js.map +1 -0
- package/dist/components/JournalTabs/History/StartHistory.d.ts +2 -0
- package/dist/components/JournalTabs/History/StartHistory.js +30 -0
- package/dist/components/JournalTabs/History/StartHistory.js.map +1 -0
- package/dist/components/JournalTabs/History/index.d.ts +5 -0
- package/dist/components/JournalTabs/History/index.js +22 -0
- package/dist/components/JournalTabs/History/index.js.map +1 -0
- package/dist/components/JournalTabs/JournalTabs.d.ts +5 -0
- package/dist/components/JournalTabs/JournalTabs.js +74 -0
- package/dist/components/JournalTabs/JournalTabs.js.map +1 -0
- package/dist/components/JournalTabs/index.d.ts +1 -0
- package/dist/components/JournalTabs/index.js +18 -0
- package/dist/components/JournalTabs/index.js.map +1 -0
- package/dist/components/Picture/Picture.js +1 -0
- package/dist/components/Picture/Picture.js.map +1 -1
- package/dist/components/PlayerPanel/PlayerPanel.d.ts +4 -3
- package/dist/components/PlayerPanel/PlayerPanel.js +16 -10
- package/dist/components/PlayerPanel/PlayerPanel.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +21 -23
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/dialogs/FailuresDialog.js +3 -3
- package/dist/components/dialogs/FailuresDialog.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/ResultDialog.js +9 -6
- package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +5 -5
- 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 +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.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/material/Dices/CubicDiceDescription.d.ts +5 -4
- package/dist/components/material/Dices/CubicDiceDescription.js +5 -5
- package/dist/components/material/Dices/CubicDiceDescription.js.map +1 -1
- package/dist/components/material/DraggableMaterial.d.ts +2 -0
- package/dist/components/material/DraggableMaterial.js +65 -33
- package/dist/components/material/DraggableMaterial.js.map +1 -1
- package/dist/components/material/FlatMaterial/FlatMaterial.d.ts +10 -10
- package/dist/components/material/FlatMaterial/FlatMaterial.js +19 -19
- package/dist/components/material/FlatMaterial/FlatMaterial.js.map +1 -1
- package/dist/components/material/GameTable/DraggableStockItem.d.ts +4 -0
- package/dist/components/material/GameTable/DraggableStockItem.js +82 -0
- package/dist/components/material/GameTable/DraggableStockItem.js.map +1 -0
- package/dist/components/material/GameTable/DynamicItemsDisplay.d.ts +4 -0
- package/dist/components/material/GameTable/DynamicItemsDisplay.js +72 -0
- package/dist/components/material/GameTable/DynamicItemsDisplay.js.map +1 -0
- package/dist/components/material/GameTable/FocusableElement.d.ts +13 -0
- package/dist/components/material/GameTable/FocusableElement.js +63 -0
- package/dist/components/material/GameTable/FocusableElement.js.map +1 -0
- package/dist/components/material/GameTable/FocusableLocation.d.ts +8 -0
- package/dist/components/material/GameTable/FocusableLocation.js +37 -0
- package/dist/components/material/GameTable/FocusableLocation.js.map +1 -0
- package/dist/components/material/GameTable/FocusableLocations.d.ts +0 -0
- package/dist/components/material/GameTable/FocusableLocations.js +2 -0
- package/dist/components/material/GameTable/FocusableLocations.js.map +1 -0
- package/dist/components/material/GameTable/GameMaterialDisplay.d.ts +7 -1
- package/dist/components/material/GameTable/GameMaterialDisplay.js +16 -133
- package/dist/components/material/GameTable/GameMaterialDisplay.js.map +1 -1
- package/dist/components/material/GameTable/GameTable.d.ts +2 -0
- package/dist/components/material/GameTable/GameTable.js +7 -6
- package/dist/components/material/GameTable/GameTable.js.map +1 -1
- package/dist/components/material/GameTable/GameTableNavigation.d.ts +5 -1
- package/dist/components/material/GameTable/GameTableNavigation.js +18 -6
- package/dist/components/material/GameTable/GameTableNavigation.js.map +1 -1
- package/dist/components/material/GameTable/ItemDisplay.d.ts +15 -0
- package/dist/components/material/GameTable/ItemDisplay.js +51 -0
- package/dist/components/material/GameTable/ItemDisplay.js.map +1 -0
- package/dist/components/material/GameTable/StaticItemsDisplay.d.ts +4 -0
- package/dist/components/material/GameTable/StaticItemsDisplay.js +67 -0
- package/dist/components/material/GameTable/StaticItemsDisplay.js.map +1 -0
- package/dist/components/material/GameTable/StaticLocationsDisplay.d.ts +4 -0
- package/dist/components/material/GameTable/StaticLocationsDisplay.js +35 -0
- package/dist/components/material/GameTable/StaticLocationsDisplay.js.map +1 -0
- package/dist/components/material/GameTable/focus/FocusProvider.d.ts +10 -0
- package/dist/components/material/GameTable/focus/FocusProvider.js +78 -0
- package/dist/components/material/GameTable/focus/FocusProvider.js.map +1 -0
- package/dist/components/material/GameTable/focus/FocusableElement.d.ts +13 -0
- package/dist/components/material/GameTable/focus/FocusableElement.js +63 -0
- package/dist/components/material/GameTable/focus/FocusableElement.js.map +1 -0
- package/dist/components/material/GameTable/focus/FocusableLocation.d.ts +8 -0
- package/dist/components/material/GameTable/focus/FocusableLocation.js +38 -0
- package/dist/components/material/GameTable/focus/FocusableLocation.js.map +1 -0
- package/dist/components/material/GameTable/focus/LocationsWithFocus.d.ts +8 -0
- package/dist/components/material/GameTable/focus/LocationsWithFocus.js +30 -0
- package/dist/components/material/GameTable/focus/LocationsWithFocus.js.map +1 -0
- package/dist/components/material/GameTable/focus/MaterialFocus.d.ts +20 -0
- package/dist/components/material/GameTable/focus/MaterialFocus.js +3 -0
- package/dist/components/material/GameTable/focus/MaterialFocus.js.map +1 -0
- package/dist/components/material/GameTable/focus/index.d.ts +3 -0
- package/dist/components/material/GameTable/focus/index.js +20 -0
- package/dist/components/material/GameTable/focus/index.js.map +1 -0
- package/dist/components/material/GameTable/index.d.ts +1 -0
- package/dist/components/material/GameTable/index.js +1 -0
- package/dist/components/material/GameTable/index.js.map +1 -1
- package/dist/components/material/GameTable/locations.utils.d.ts +0 -0
- package/dist/components/material/GameTable/locations.utils.js +2 -0
- package/dist/components/material/GameTable/locations.utils.js.map +1 -0
- package/dist/components/material/MaterialComponent.d.ts +2 -2
- package/dist/components/material/MaterialComponent.js +7 -7
- package/dist/components/material/MaterialComponent.js.map +1 -1
- package/dist/components/material/MaterialDescription.d.ts +10 -9
- package/dist/components/material/MaterialDescription.js +11 -38
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/MobileMaterialDescription.d.ts +9 -0
- package/dist/components/material/MobileMaterialDescription.js +68 -0
- package/dist/components/material/MobileMaterialDescription.js.map +1 -0
- package/dist/components/material/Writing/WritingDescription.d.ts +5 -5
- package/dist/components/material/Writing/WritingDescription.js +15 -15
- package/dist/components/material/Writing/WritingDescription.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.d.ts +2 -1
- package/dist/components/material/animations/CreateItemAnimations.js +10 -3
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MaterialGameAnimations.d.ts +1 -1
- package/dist/components/material/animations/MaterialGameAnimations.js +1 -1
- package/dist/components/material/animations/MaterialGameAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAnimations.js +1 -1
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
- package/dist/components/material/index.d.ts +1 -0
- package/dist/components/material/index.js +1 -0
- package/dist/components/material/index.js.map +1 -1
- package/dist/components/material/locations/LocationDescription.d.ts +1 -2
- package/dist/components/material/locations/LocationDescription.js +1 -4
- package/dist/components/material/locations/LocationDescription.js.map +1 -1
- package/dist/components/material/locations/LocationsMask.d.ts +1 -1
- package/dist/components/material/locations/LocationsMask.js +1 -3
- package/dist/components/material/locations/LocationsMask.js.map +1 -1
- package/dist/components/material/locations/SimpleDropArea.js +65 -34
- package/dist/components/material/locations/SimpleDropArea.js.map +1 -1
- package/dist/components/material/utils/useIsAnimatingPlayerAction.js +8 -3
- package/dist/components/material/utils/useIsAnimatingPlayerAction.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js +2 -2
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js +2 -2
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js +2 -2
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenButton.js +3 -2
- package/dist/components/menus/Fullscreen/FullscreenButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenDialog.js +2 -2
- package/dist/components/menus/Fullscreen/FullscreenDialog.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js +3 -2
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js.map +1 -1
- package/dist/components/menus/Menu/Menu.js +19 -19
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js +2 -2
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js.map +1 -1
- package/dist/components/menus/SoundButton/SoundButton.js +3 -2
- package/dist/components/menus/SoundButton/SoundButton.js.map +1 -1
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +2 -2
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoButton.js +2 -2
- package/dist/components/menus/UndoButton/UndoButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoPopButton.js +2 -2
- package/dist/components/menus/UndoButton/UndoPopButton.js.map +1 -1
- package/dist/components/tutorial/FocusableElement.d.ts +0 -0
- package/dist/components/tutorial/FocusableElement.js +2 -0
- package/dist/components/tutorial/FocusableElement.js.map +1 -0
- package/dist/components/tutorial/MaterialTutorial.d.ts +4 -14
- package/dist/components/tutorial/MaterialTutorial.js +1 -60
- package/dist/components/tutorial/MaterialTutorial.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorialDisplay.js +39 -24
- package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
- package/dist/components/tutorial/TutorialRulesWrapper.js +25 -5
- package/dist/components/tutorial/TutorialRulesWrapper.js.map +1 -1
- package/dist/css/GameTheme.d.ts +4 -0
- package/dist/css/GameTheme.js +3 -0
- package/dist/css/GameTheme.js.map +1 -1
- package/dist/hooks/useHistory.d.ts +6 -0
- package/dist/hooks/useHistory.js +82 -0
- package/dist/hooks/useHistory.js.map +1 -0
- package/dist/hooks/useLegalMoves.js +5 -3
- package/dist/hooks/useLegalMoves.js.map +1 -1
- package/dist/hooks/useRankedPlayers.js.map +1 -1
- package/dist/hooks/useZoomToElements.d.ts +9 -1
- package/dist/hooks/useZoomToElements.js +20 -17
- package/dist/hooks/useZoomToElements.js.map +1 -1
- package/dist/locators/ItemLocator.d.ts +1 -1
- package/dist/locators/ItemLocator.js +3 -3
- package/dist/locators/ItemLocator.js.map +1 -1
- package/dist/utilities/findIfUnique.util.d.ts +1 -0
- package/dist/utilities/findIfUnique.util.js +17 -0
- package/dist/utilities/findIfUnique.util.js.map +1 -0
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.StaticLocationsDisplay = void 0;
|
|
18
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
19
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
20
|
+
var hooks_1 = require("../../../hooks");
|
|
21
|
+
var locations_1 = require("../locations");
|
|
22
|
+
var focus_1 = require("./focus");
|
|
23
|
+
var StaticLocationsDisplay = function (props) {
|
|
24
|
+
var context = (0, hooks_1.useMaterialContext)();
|
|
25
|
+
var _a = (0, focus_1.useFocusContext)(), focus = _a.focus, addFocusRef = _a.addFocusRef;
|
|
26
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: Object.values(context.locators).map(function (locator) {
|
|
27
|
+
var _a;
|
|
28
|
+
return (_a = locator === null || locator === void 0 ? void 0 : locator.getLocationDescription(context)) === null || _a === void 0 ? void 0 : _a.getLocations(context).map(function (location) {
|
|
29
|
+
var isFocused = focus === null || focus === void 0 ? void 0 : focus.locations.some(function (focusedLocation) { return (0, fast_deep_equal_1.default)(focusedLocation, location); });
|
|
30
|
+
return (0, jsx_runtime_1.jsx)(locations_1.SimpleDropArea, __assign({ location: location, alwaysVisible: isFocused, ref: isFocused ? addFocusRef : undefined }, props), JSON.stringify(location));
|
|
31
|
+
});
|
|
32
|
+
}) });
|
|
33
|
+
};
|
|
34
|
+
exports.StaticLocationsDisplay = StaticLocationsDisplay;
|
|
35
|
+
//# sourceMappingURL=StaticLocationsDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticLocationsDisplay.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/StaticLocationsDisplay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,oEAAmC;AACnC,wCAAmD;AACnD,0CAA6C;AAC7C,iCAAyC;AAElC,IAAM,sBAAsB,GAAG,UAAC,KAAqC;IAC1E,IAAM,OAAO,GAAG,IAAA,0BAAkB,GAAE,CAAA;IAC9B,IAAA,KAAyB,IAAA,uBAAe,GAAE,EAAxC,KAAK,WAAA,EAAE,WAAW,iBAAsB,CAAA;IAChD,OAAO,2DACJ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAA,OAAO;;YACxC,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,UAAA,QAAQ;gBACjF,IAAM,SAAS,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,IAAI,CAAC,UAAA,eAAe,IAAI,OAAA,IAAA,yBAAK,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAhC,CAAgC,CAAC,CAAA;gBAC5F,OAAO,uBAAC,0BAAc,aAAgC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IACjH,KAAK,GADJ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACjB,CAAA;YACrC,CAAC,CAAC,CAAA;QACJ,CAAC,CACF,GACA,CAAA;AACL,CAAC,CAAA;AAbY,QAAA,sBAAsB,0BAalC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { MaterialFocus } from './MaterialFocus';
|
|
3
|
+
export type FocusContextType = {
|
|
4
|
+
focus?: MaterialFocus;
|
|
5
|
+
setFocus: (focus?: MaterialFocus, reset?: boolean) => void;
|
|
6
|
+
addFocusRef: (ref: HTMLElement | null) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const FocusContext: import("react").Context<FocusContextType | null>;
|
|
9
|
+
export declare const useFocusContext: () => FocusContextType;
|
|
10
|
+
export declare const FocusProvider: FC;
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FocusProvider = exports.useFocusContext = exports.FocusContext = void 0;
|
|
18
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
19
|
+
var sumBy_1 = __importDefault(require("lodash/sumBy"));
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var react_zoom_pan_pinch_1 = require("react-zoom-pan-pinch");
|
|
22
|
+
var hooks_1 = require("../../../../hooks");
|
|
23
|
+
var useLocators_1 = require("../../../../hooks/useLocators");
|
|
24
|
+
exports.FocusContext = (0, react_1.createContext)(null);
|
|
25
|
+
var useFocusContext = function () {
|
|
26
|
+
var focusContext = (0, react_1.useContext)(exports.FocusContext);
|
|
27
|
+
if (focusContext === null) {
|
|
28
|
+
throw new Error('useFocusContext has to be used within a <FocusContext.Provider>');
|
|
29
|
+
}
|
|
30
|
+
return focusContext;
|
|
31
|
+
};
|
|
32
|
+
exports.useFocusContext = useFocusContext;
|
|
33
|
+
var FocusProvider = function (_a) {
|
|
34
|
+
var children = _a.children;
|
|
35
|
+
var zoomToElements = (0, hooks_1.useZoomToElements)();
|
|
36
|
+
var resetTransform = (0, react_zoom_pan_pinch_1.useControls)().resetTransform;
|
|
37
|
+
var locators = (0, useLocators_1.useLocators)();
|
|
38
|
+
var _b = (0, react_1.useState)(), focus = _b[0], doSetFocus = _b[1];
|
|
39
|
+
var focusRefs = (0, react_1.useRef)(new Set());
|
|
40
|
+
var countFocusRef = (0, react_1.useRef)(0);
|
|
41
|
+
var setFocus = (0, react_1.useCallback)(function (focus, reset) {
|
|
42
|
+
if (reset === void 0) { reset = true; }
|
|
43
|
+
if (!focus && reset) {
|
|
44
|
+
setTimeout(function () { return resetTransform(1000); }, 50);
|
|
45
|
+
}
|
|
46
|
+
focusRefs.current = new Set();
|
|
47
|
+
countFocusRef.current = countFocusRefs(focus, locators);
|
|
48
|
+
doSetFocus(focus);
|
|
49
|
+
}, []);
|
|
50
|
+
var doFocus = (0, react_1.useCallback)(function () {
|
|
51
|
+
var elements = Array.from(focusRefs.current);
|
|
52
|
+
setTimeout(function () { var _a; return zoomToElements(elements, { animationTime: (_a = focus === null || focus === void 0 ? void 0 : focus.animationTime) !== null && _a !== void 0 ? _a : 1000, margin: focus === null || focus === void 0 ? void 0 : focus.margin, scale: focus === null || focus === void 0 ? void 0 : focus.scale }); }, 50);
|
|
53
|
+
}, [zoomToElements]);
|
|
54
|
+
var addFocusRef = (0, react_1.useCallback)(function (ref) {
|
|
55
|
+
if (!ref || focusRefs.current.has(ref))
|
|
56
|
+
return;
|
|
57
|
+
focusRefs.current.add(ref);
|
|
58
|
+
if (countFocusRef.current === focusRefs.current.size) {
|
|
59
|
+
doFocus();
|
|
60
|
+
}
|
|
61
|
+
}, [doFocus]);
|
|
62
|
+
return ((0, jsx_runtime_1.jsx)(exports.FocusContext.Provider, __assign({ value: { focus: focus, setFocus: setFocus, addFocusRef: addFocusRef } }, { children: children })));
|
|
63
|
+
};
|
|
64
|
+
exports.FocusProvider = FocusProvider;
|
|
65
|
+
function countFocusRefs(focus, locators) {
|
|
66
|
+
if (!focus)
|
|
67
|
+
return 0;
|
|
68
|
+
return (0, sumBy_1.default)(focus.materials, function (material) {
|
|
69
|
+
return (0, sumBy_1.default)(material.getItems(), function (item) { var _a, _b, _c; return Math.min((_a = item.quantity) !== null && _a !== void 0 ? _a : 1, (_c = (_b = locators === null || locators === void 0 ? void 0 : locators[item.location.type]) === null || _b === void 0 ? void 0 : _b.limit) !== null && _c !== void 0 ? _c : Infinity); });
|
|
70
|
+
})
|
|
71
|
+
+ (0, sumBy_1.default)(focus.staticItems, function (_a) {
|
|
72
|
+
var _b, _c, _d;
|
|
73
|
+
var item = _a.item;
|
|
74
|
+
return Math.min((_b = item.quantity) !== null && _b !== void 0 ? _b : 1, (_d = (_c = locators === null || locators === void 0 ? void 0 : locators[item.location.type]) === null || _c === void 0 ? void 0 : _c.limit) !== null && _d !== void 0 ? _d : Infinity);
|
|
75
|
+
})
|
|
76
|
+
+ focus.locations.length;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=FocusProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusProvider.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/FocusProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Location, LocationBuilder, Material, MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
export type FocusableElement<P extends number = number, M extends number = number, L extends number = number> = Material<P, M, L> | StaticItem<P, M, L> | LocationBuilder<P, L>;
|
|
3
|
+
export type StaticItem<P extends number = number, M extends number = number, L extends number = number> = {
|
|
4
|
+
type: M;
|
|
5
|
+
item: MaterialItem<P, L>;
|
|
6
|
+
};
|
|
7
|
+
export declare function isItemFocus(itemType: number, itemIndex: number, focus?: FocusableElement | FocusableElement[]): boolean;
|
|
8
|
+
export declare function isMaterialFocus(focus?: FocusableElement): focus is Material;
|
|
9
|
+
export declare function countTutorialFocusRefs(focus?: FocusableElement | FocusableElement[]): number;
|
|
10
|
+
export declare function isStaticItem(focus?: FocusableElement): focus is StaticItem;
|
|
11
|
+
export declare function isStaticItemFocus(itemType: number, item: MaterialItem, focus?: FocusableElement | FocusableElement[]): boolean;
|
|
12
|
+
export declare function isLocationBuilder(focus?: FocusableElement): focus is LocationBuilder;
|
|
13
|
+
export declare function isLocationFocus(location: Location, focus?: FocusableElement | FocusableElement[]): boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isLocationFocus = exports.isLocationBuilder = exports.isStaticItemFocus = exports.isStaticItem = exports.countTutorialFocusRefs = exports.isMaterialFocus = exports.isItemFocus = void 0;
|
|
7
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
+
var sumBy_1 = __importDefault(require("lodash/sumBy"));
|
|
9
|
+
function isItemFocus(itemType, itemIndex, focus) {
|
|
10
|
+
if (Array.isArray(focus)) {
|
|
11
|
+
return focus.some(function (focus) { return isItemFocus(itemType, itemIndex, focus); });
|
|
12
|
+
}
|
|
13
|
+
return isMaterialFocus(focus) && focus.type === itemType && focus.getIndexes().includes(itemIndex);
|
|
14
|
+
}
|
|
15
|
+
exports.isItemFocus = isItemFocus;
|
|
16
|
+
function isMaterialFocus(focus) {
|
|
17
|
+
return typeof focus === 'object' && focus.entries !== undefined;
|
|
18
|
+
}
|
|
19
|
+
exports.isMaterialFocus = isMaterialFocus;
|
|
20
|
+
function countTutorialFocusRefs(focus) {
|
|
21
|
+
var _a;
|
|
22
|
+
if (!focus)
|
|
23
|
+
return 0;
|
|
24
|
+
if (Array.isArray(focus)) {
|
|
25
|
+
return (0, sumBy_1.default)(focus, function (focus) { return countTutorialFocusRefs(focus); });
|
|
26
|
+
}
|
|
27
|
+
if (isMaterialFocus(focus)) {
|
|
28
|
+
return (0, sumBy_1.default)(focus.getItems(), function (item) { var _a; return (_a = item.quantity) !== null && _a !== void 0 ? _a : 1; });
|
|
29
|
+
}
|
|
30
|
+
else if (isStaticItem(focus)) {
|
|
31
|
+
return (_a = focus.item.quantity) !== null && _a !== void 0 ? _a : 1;
|
|
32
|
+
}
|
|
33
|
+
else if (isLocationBuilder(focus)) {
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.countTutorialFocusRefs = countTutorialFocusRefs;
|
|
41
|
+
function isStaticItem(focus) {
|
|
42
|
+
return typeof focus === 'object' && typeof focus.type === 'number' && typeof focus.item === 'object';
|
|
43
|
+
}
|
|
44
|
+
exports.isStaticItem = isStaticItem;
|
|
45
|
+
function isStaticItemFocus(itemType, item, focus) {
|
|
46
|
+
if (Array.isArray(focus)) {
|
|
47
|
+
return focus.some(function (focus) { return isStaticItemFocus(itemType, item, focus); });
|
|
48
|
+
}
|
|
49
|
+
return isStaticItem(focus) && focus.type === itemType && (0, fast_deep_equal_1.default)(focus.item, item);
|
|
50
|
+
}
|
|
51
|
+
exports.isStaticItemFocus = isStaticItemFocus;
|
|
52
|
+
function isLocationBuilder(focus) {
|
|
53
|
+
return typeof focus === 'object' && typeof focus.location === 'object';
|
|
54
|
+
}
|
|
55
|
+
exports.isLocationBuilder = isLocationBuilder;
|
|
56
|
+
function isLocationFocus(location, focus) {
|
|
57
|
+
if (Array.isArray(focus)) {
|
|
58
|
+
return focus.some(function (focus) { return isLocationFocus(location, focus); });
|
|
59
|
+
}
|
|
60
|
+
return isLocationBuilder(focus) && (0, fast_deep_equal_1.default)(focus.location, location);
|
|
61
|
+
}
|
|
62
|
+
exports.isLocationFocus = isLocationFocus;
|
|
63
|
+
//# sourceMappingURL=FocusableElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableElement.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/FocusableElement.ts"],"names":[],"mappings":";;;;;;AACA,oEAAmC;AACnC,uDAAgC;AAShC,SAAgB,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAA6C;IAC5G,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAvC,CAAuC,CAAC,CAAA;KACpE;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACpG,CAAC;AALD,kCAKC;AAED,SAAgB,eAAe,CAAC,KAAwB;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAkB,CAAC,OAAO,KAAK,SAAS,CAAA;AAC/E,CAAC;AAFD,0CAEC;AAED,SAAgB,sBAAsB,CAAC,KAA6C;;IAClF,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,IAAA,eAAK,EAAC,KAAK,EAAE,UAAA,KAAK,IAAI,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,CAAC,CAAA;KAC5D;IACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,UAAA,IAAI,YAAI,OAAA,MAAA,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAA;KAC3D;SAAM,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,mCAAI,CAAC,CAAA;KAChC;SAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,CAAC,CAAA;KACT;SAAM;QACL,OAAO,CAAC,CAAA;KACT;AACH,CAAC;AAdD,wDAcC;AAED,SAAgB,YAAY,CAAC,KAAwB;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,QAAQ,CAAA;AACxH,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,IAAkB,EAAE,KAA6C;IACnH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAxC,CAAwC,CAAC,CAAA;KACrE;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAA,yBAAK,EAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAClF,CAAC;AALD,8CAKC;AAED,SAAgB,iBAAiB,CAAC,KAAwB;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAAyB,CAAC,QAAQ,KAAK,QAAQ,CAAA;AAC7F,CAAC;AAFD,8CAEC;AAED,SAAgB,eAAe,CAAC,QAAkB,EAAE,KAA6C;IAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAhC,CAAgC,CAAC,CAAA;KAC7D;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAA,yBAAK,EAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACpE,CAAC;AALD,0CAKC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Location, MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
import { ItemContext } from '../../../../locators';
|
|
3
|
+
import { FocusableElement } from './FocusableElement';
|
|
4
|
+
export type FocusableLocation = {
|
|
5
|
+
location: Location;
|
|
6
|
+
focus?: true;
|
|
7
|
+
};
|
|
8
|
+
export declare const getLocationsWithFocus: (item: MaterialItem, context: ItemContext, focus?: FocusableElement | FocusableElement[]) => [Location[], number[]];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLocationsWithFocus = void 0;
|
|
7
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
+
var FocusableElement_1 = require("./FocusableElement");
|
|
9
|
+
var getLocationsWithFocus = function (item, context, focus) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
var locationsFocus = getLocationsFocus(focus).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; });
|
|
12
|
+
var result = [(_b = (_a = context.material[context.type]) === null || _a === void 0 ? void 0 : _a.getLocations(item, context)) !== null && _b !== void 0 ? _b : [], []];
|
|
13
|
+
var _loop_1 = function (locationFocus) {
|
|
14
|
+
var index = result[0].findIndex(function (location) { return (0, fast_deep_equal_1.default)(location, locationFocus); });
|
|
15
|
+
if (index !== -1) {
|
|
16
|
+
result[1].push(index);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
result[1].push(result[0].length);
|
|
20
|
+
result[0].push(locationFocus);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
for (var _i = 0, locationsFocus_1 = locationsFocus; _i < locationsFocus_1.length; _i++) {
|
|
24
|
+
var locationFocus = locationsFocus_1[_i];
|
|
25
|
+
_loop_1(locationFocus);
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
exports.getLocationsWithFocus = getLocationsWithFocus;
|
|
30
|
+
var getLocationsFocus = function (focus) {
|
|
31
|
+
if (!focus)
|
|
32
|
+
return [];
|
|
33
|
+
if (Array.isArray(focus)) {
|
|
34
|
+
return focus.filter(FocusableElement_1.isLocationBuilder).map(function (builder) { return builder.location; });
|
|
35
|
+
}
|
|
36
|
+
return (0, FocusableElement_1.isLocationBuilder)(focus) ? [focus.location] : [];
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=FocusableLocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableLocation.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/FocusableLocation.ts"],"names":[],"mappings":";;;;;;AACA,oEAAmC;AAEnC,uDAAwE;AAOjE,IAAM,qBAAqB,GAAG,UACnC,IAAkB,EAAE,OAAoB,EAAE,KAA6C;;IAEvF,IAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAA,QAAQ,gBAC7D,OAAA,CAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,cAAc,MAAK,OAAO,CAAC,IAAI,IAAI,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAA,EAAA,CAC7G,CAAA;IACD,IAAM,MAAM,GAA2B,CAAC,MAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0CAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,EAAE,EAAE,EAAE,CAAC,CAAA;4BACnG,aAAa;QACtB,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,QAAQ,IAAI,OAAA,IAAA,yBAAK,EAAC,QAAQ,EAAE,aAAa,CAAC,EAA9B,CAA8B,CAAC,CAAA;QAC7E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACtB;aAAM;YACL,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAChC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAC9B;;IAPH,KAA4B,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc;QAArC,IAAM,aAAa,uBAAA;gBAAb,aAAa;KAQvB;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAjBY,QAAA,qBAAqB,yBAiBjC;AAED,IAAM,iBAAiB,GAAG,UAAC,KAA6C;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,MAAM,CAAC,oCAAiB,CAAC,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,QAAQ,EAAhB,CAAgB,CAAC,CAAA;KACxE;IACD,OAAO,IAAA,oCAAiB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACzD,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Location, MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
import { ItemContext } from '../../../../locators';
|
|
3
|
+
import { MaterialFocus } from './MaterialFocus';
|
|
4
|
+
export type LocationsWithFocus = {
|
|
5
|
+
locations: Location[];
|
|
6
|
+
focusedIndexes: number[];
|
|
7
|
+
};
|
|
8
|
+
export declare const getLocationsWithFocus: (item: MaterialItem, context: ItemContext, focus?: MaterialFocus) => LocationsWithFocus;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLocationsWithFocus = void 0;
|
|
7
|
+
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
+
var getLocationsWithFocus = function (item, context, focus) {
|
|
9
|
+
var _a, _b, _c, _d;
|
|
10
|
+
var locationsFocus = (_b = (_a = focus === null || focus === void 0 ? void 0 : focus.locations) === null || _a === void 0 ? void 0 : _a.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; })) !== null && _b !== void 0 ? _b : [];
|
|
11
|
+
var locations = (_d = (_c = context.material[context.type]) === null || _c === void 0 ? void 0 : _c.getLocations(item, context)) !== null && _d !== void 0 ? _d : [];
|
|
12
|
+
var focusedIndexes = [];
|
|
13
|
+
var _loop_1 = function (locationFocus) {
|
|
14
|
+
var index = locations.findIndex(function (location) { return (0, fast_deep_equal_1.default)(location, locationFocus); });
|
|
15
|
+
if (index !== -1) {
|
|
16
|
+
focusedIndexes.push(index);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
focusedIndexes.push(locations.length);
|
|
20
|
+
locations.push(locationFocus);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
for (var _i = 0, locationsFocus_1 = locationsFocus; _i < locationsFocus_1.length; _i++) {
|
|
24
|
+
var locationFocus = locationsFocus_1[_i];
|
|
25
|
+
_loop_1(locationFocus);
|
|
26
|
+
}
|
|
27
|
+
return { locations: locations, focusedIndexes: focusedIndexes };
|
|
28
|
+
};
|
|
29
|
+
exports.getLocationsWithFocus = getLocationsWithFocus;
|
|
30
|
+
//# sourceMappingURL=LocationsWithFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationsWithFocus.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/LocationsWithFocus.ts"],"names":[],"mappings":";;;;;;AACA,oEAAmC;AAS5B,IAAM,qBAAqB,GAAG,UACnC,IAAkB,EAAE,OAAoB,EAAE,KAAqB;;IAE/D,IAAM,cAAc,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,MAAM,CAAC,UAAA,QAAQ,gBACtD,OAAA,CAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,cAAc,MAAK,OAAO,CAAC,IAAI,IAAI,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAA,EAAA,CAC7G,mCAAI,EAAE,CAAA;IACP,IAAM,SAAS,GAAG,MAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0CAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,EAAE,CAAA;IACnF,IAAM,cAAc,GAAG,EAAE,CAAA;4BACd,aAAa;QACtB,IAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,UAAA,QAAQ,IAAI,OAAA,IAAA,yBAAK,EAAC,QAAQ,EAAE,aAAa,CAAC,EAA9B,CAA8B,CAAC,CAAA;QAC7E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC3B;aAAM;YACL,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YACrC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAC9B;;IAPH,KAA4B,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc;QAArC,IAAM,aAAa,uBAAA;gBAAb,aAAa;KAQvB;IACD,OAAO,EAAE,SAAS,WAAA,EAAE,cAAc,gBAAA,EAAE,CAAA;AACtC,CAAC,CAAA;AAlBY,QAAA,qBAAqB,yBAkBjC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Location, Material, MaterialItem } from '@gamepark/rules-api';
|
|
2
|
+
export type MaterialFocus<P extends number = number, M extends number = number, L extends number = number> = {
|
|
3
|
+
materials: Material<P, M, L>[];
|
|
4
|
+
staticItems: StaticItem<P, M, L>[];
|
|
5
|
+
locations: Location<P, L>[];
|
|
6
|
+
margin?: Margin;
|
|
7
|
+
scale?: number;
|
|
8
|
+
highlight?: true;
|
|
9
|
+
animationTime?: number;
|
|
10
|
+
};
|
|
11
|
+
export type Margin = {
|
|
12
|
+
top?: number;
|
|
13
|
+
right?: number;
|
|
14
|
+
bottom?: number;
|
|
15
|
+
left?: number;
|
|
16
|
+
};
|
|
17
|
+
export type StaticItem<P extends number = number, M extends number = number, L extends number = number> = {
|
|
18
|
+
type: M;
|
|
19
|
+
item: MaterialItem<P, L>;
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialFocus.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/MaterialFocus.tsx"],"names":[],"mappings":""}
|
|
@@ -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("./LocationsWithFocus"), exports);
|
|
18
|
+
__exportStar(require("./FocusProvider"), exports);
|
|
19
|
+
__exportStar(require("./MaterialFocus"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/focus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,kDAA+B;AAC/B,kDAA+B"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./focus"), exports);
|
|
17
18
|
__exportStar(require("./GameTable"), exports);
|
|
18
19
|
__exportStar(require("./GameTableNavigation"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,wDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,8CAA2B;AAC3B,wDAAqC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations.utils.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/locations.utils.ts"],"names":[],"mappings":""}
|
|
@@ -7,11 +7,11 @@ export type MaterialComponentProps<M extends number = number, ItemId = any> = {
|
|
|
7
7
|
highlight?: boolean;
|
|
8
8
|
playDown?: boolean;
|
|
9
9
|
} & HTMLAttributes<HTMLElement>;
|
|
10
|
-
export declare const MaterialComponent: import("react").ForwardRefExoticComponent<{
|
|
10
|
+
export declare const MaterialComponent: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<{
|
|
11
11
|
type: number;
|
|
12
12
|
itemId?: any;
|
|
13
13
|
onShortClick?: (() => void) | undefined;
|
|
14
14
|
onLongClick?: (() => void) | undefined;
|
|
15
15
|
highlight?: boolean | undefined;
|
|
16
16
|
playDown?: boolean | undefined;
|
|
17
|
-
} & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLDivElement
|
|
17
|
+
} & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLDivElement>>>;
|
|
@@ -34,11 +34,9 @@ var use_long_press_1 = require("use-long-press");
|
|
|
34
34
|
var css_1 = require("../../css");
|
|
35
35
|
var hooks_1 = require("../../hooks");
|
|
36
36
|
var utilities_1 = require("../../utilities");
|
|
37
|
-
exports.MaterialComponent = (0, react_2.forwardRef)(function (_a, ref) {
|
|
37
|
+
exports.MaterialComponent = (0, react_2.memo)((0, react_2.forwardRef)(function (_a, ref) {
|
|
38
38
|
var type = _a.type, itemId = _a.itemId, onShortClick = _a.onShortClick, onLongClick = _a.onLongClick, highlight = _a.highlight, playDown = _a.playDown, props = __rest(_a, ["type", "itemId", "onShortClick", "onLongClick", "highlight", "playDown"]);
|
|
39
|
-
var game = (0, hooks_1.useGame)();
|
|
40
39
|
var description = (0, hooks_1.useMaterialDescription)(type);
|
|
41
|
-
var context = (0, hooks_1.useMaterialContext)();
|
|
42
40
|
var listeners = (0, use_long_press_1.useLongPress)(function () { return onLongClick && onLongClick(); }, {
|
|
43
41
|
detect: use_long_press_1.LongPressEventType.Pointer,
|
|
44
42
|
cancelOnMovement: 5,
|
|
@@ -51,11 +49,13 @@ exports.MaterialComponent = (0, react_2.forwardRef)(function (_a, ref) {
|
|
|
51
49
|
},
|
|
52
50
|
filterEvents: function (event) { return !event.button; }
|
|
53
51
|
})();
|
|
54
|
-
if (!description
|
|
52
|
+
if (!description)
|
|
55
53
|
return null;
|
|
56
|
-
var _b = description.getSize(itemId
|
|
57
|
-
|
|
58
|
-
});
|
|
54
|
+
var _b = description.getSize(itemId), width = _b.width, height = _b.height;
|
|
55
|
+
var componentCss = (0, react_2.useMemo)(function () { return [materialCss, (0, css_1.sizeCss)(width, height)]; }, [width, height]);
|
|
56
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ ref: ref, css: componentCss }, props, (0, utilities_1.combineEventListeners)(listeners, props), { children: description.content(__assign({ itemId: itemId, highlight: highlight, playDown: playDown }, props)) })));
|
|
57
|
+
}));
|
|
58
|
+
exports.MaterialComponent.displayName = 'MaterialComponent';
|
|
59
59
|
var materialCss = (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n transform-style: preserve-3d;\n -webkit-tap-highlight-color: transparent;\n"], ["\n transform-style: preserve-3d;\n -webkit-tap-highlight-color: transparent;\n"])));
|
|
60
60
|
var templateObject_1;
|
|
61
61
|
//# sourceMappingURL=MaterialComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAoC;
|
|
1
|
+
{"version":3,"file":"MaterialComponent.js","sourceRoot":"","sources":["../../../src/components/material/MaterialComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAoC;AACpC,+BAA6E;AAC7E,iDAA0F;AAC1F,iCAAmC;AACnC,qCAAoD;AACpD,6CAAuD;AAW1C,QAAA,iBAAiB,GAAG,IAAA,YAAI,EAAC,IAAA,kBAAU,EAAyC,UACvF,EAA0E,EAAE,GAAG;IAA7E,IAAA,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAK,KAAK,cAAxE,0EAA0E,CAAF;IAExE,IAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAA;IAEhD,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;KACrD,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAEvB,IAAA,KAAoB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAA7C,KAAK,WAAA,EAAE,MAAM,YAAgC,CAAA;IAErD,IAAM,YAAY,GAAG,IAAA,eAAO,EAAC,cAAM,OAAA,CAAC,WAAW,EAAE,IAAA,aAAO,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAArC,CAAqC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;IAE1F,OAAO,CACL,yCAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,IAAM,KAAK,EAAM,IAAA,iCAAqB,EAAC,SAAS,EAAE,KAAK,CAAC,cACrF,WAAW,CAAC,OAAO,YAAG,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,QAAQ,UAAA,IAAK,KAAK,EAAG,IAC3D,CACP,CAAA;AACH,CAAC,CAAC,CAAC,CAAA;AAEH,yBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAA;AAEnD,IAAM,WAAW,OAAG,WAAG,sJAAA,kFAGtB,IAAA,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Interpolation, Theme } from '@emotion/react';
|
|
2
|
+
import { Location, MaterialHelpDisplay, MaterialItem, MaterialMove } from '@gamepark/rules-api';
|
|
2
3
|
import { ComponentType, FC, HTMLAttributes } from 'react';
|
|
3
4
|
import { ItemContext, MaterialContext } from '../../locators';
|
|
4
5
|
export type MaterialHelpProps<P extends number = number, M extends number = number, L extends number = number> = {
|
|
@@ -8,15 +9,15 @@ export type ComponentSize = {
|
|
|
8
9
|
width: number;
|
|
9
10
|
height: number;
|
|
10
11
|
};
|
|
11
|
-
export type MaterialContentProps<
|
|
12
|
+
export type MaterialContentProps<ItemId = any> = {
|
|
12
13
|
itemId: ItemId;
|
|
13
|
-
context: MaterialContext<P, M, L>;
|
|
14
14
|
highlight?: boolean;
|
|
15
15
|
playDown?: boolean;
|
|
16
16
|
} & HTMLAttributes<HTMLElement>;
|
|
17
17
|
export declare abstract class MaterialDescription<P extends number = number, M extends number = number, L extends number = number, ItemId = any> {
|
|
18
18
|
help?: ComponentType<MaterialHelpProps<P, M, L>>;
|
|
19
|
-
abstract content: FC<MaterialContentProps<
|
|
19
|
+
abstract content: FC<MaterialContentProps<ItemId>>;
|
|
20
|
+
isMobile: boolean;
|
|
20
21
|
staticItem?: MaterialItem<P, L>;
|
|
21
22
|
staticItems: MaterialItem<P, L>[];
|
|
22
23
|
getStaticItems(_context: MaterialContext<P, M, L>): MaterialItem<P, L>[];
|
|
@@ -25,20 +26,20 @@ export declare abstract class MaterialDescription<P extends number = number, M e
|
|
|
25
26
|
location?: Location<P, L>;
|
|
26
27
|
locations: Location<P, L>[];
|
|
27
28
|
getLocations(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): Location<P, L>[];
|
|
28
|
-
canDrag(
|
|
29
|
-
protected canDragToMove(move: MoveItem<P, M, L>, { type, index, rules }: ItemContext<P, M, L>): boolean;
|
|
30
|
-
protected canDragToDelete(_move: DeleteItem<M>, _context: ItemContext<P, M, L>): boolean;
|
|
29
|
+
canDrag(_move: MaterialMove<P, M, L>, _context: ItemContext<P, M, L>): boolean;
|
|
31
30
|
canLongClick(move: MaterialMove<P, M, L>, { type, index }: ItemContext<P, M, L>): boolean;
|
|
32
31
|
canShortClick(move: MaterialMove<P, M, L>, { type, index }: ItemContext<P, M, L>): boolean;
|
|
33
32
|
height?: number;
|
|
34
33
|
width?: number;
|
|
35
34
|
ratio?: number;
|
|
36
35
|
borderRadius?: number;
|
|
37
|
-
getSize(_itemId: ItemId
|
|
38
|
-
getBorderRadius(_itemId: ItemId
|
|
36
|
+
getSize(_itemId: ItemId): ComponentSize;
|
|
37
|
+
getBorderRadius(_itemId: ItemId): number | undefined;
|
|
39
38
|
abstract getImages(): string[];
|
|
40
39
|
thickness: number;
|
|
41
40
|
getThickness(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): number;
|
|
42
41
|
getRotations(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): string[];
|
|
42
|
+
getItemExtraCss(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): Interpolation<Theme>;
|
|
43
|
+
highlight(_item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): boolean | undefined;
|
|
43
44
|
}
|
|
44
45
|
export type MaterialDescriptionRecord<P extends number = number, M extends number = number, L extends number = number> = Record<M, MaterialDescription<P, M, L>>;
|
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
3
|
exports.MaterialDescription = void 0;
|
|
18
4
|
var rules_api_1 = require("@gamepark/rules-api");
|
|
19
|
-
var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
20
5
|
var MaterialDescription = (function () {
|
|
21
6
|
function MaterialDescription() {
|
|
7
|
+
this.isMobile = false;
|
|
22
8
|
this.staticItems = [];
|
|
23
9
|
this.locations = [];
|
|
24
10
|
this.thickness = 0.05;
|
|
@@ -32,27 +18,8 @@ var MaterialDescription = (function () {
|
|
|
32
18
|
MaterialDescription.prototype.getLocations = function (_item, _context) {
|
|
33
19
|
return this.location ? [this.location] : this.locations;
|
|
34
20
|
};
|
|
35
|
-
MaterialDescription.prototype.canDrag = function (
|
|
36
|
-
|
|
37
|
-
if ((0, rules_api_1.isMoveItem)(move)) {
|
|
38
|
-
return ((_a = move.location) === null || _a === void 0 ? void 0 : _a.type) !== undefined && move.itemType === context.type && move.itemIndex === context.index && this.canDragToMove(move, context);
|
|
39
|
-
}
|
|
40
|
-
else if ((0, rules_api_1.isDeleteItem)(move)) {
|
|
41
|
-
return move.itemType === context.type && move.itemIndex === context.index && this.canDragToDelete(move, context);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
MaterialDescription.prototype.canDragToMove = function (move, _a) {
|
|
48
|
-
var _b;
|
|
49
|
-
var type = _a.type, index = _a.index, rules = _a.rules;
|
|
50
|
-
var _c = (_b = rules.material(type).getItem(index)) === null || _b === void 0 ? void 0 : _b.location, rotation = _c.rotation, actualLocation = __rest(_c, ["rotation"]);
|
|
51
|
-
var _d = move.location, nextRotation = _d.rotation, nextLocation = __rest(_d, ["rotation"]);
|
|
52
|
-
return !(0, fast_deep_equal_1.default)(actualLocation, nextLocation);
|
|
53
|
-
};
|
|
54
|
-
MaterialDescription.prototype.canDragToDelete = function (_move, _context) {
|
|
55
|
-
return this.stockLocation !== undefined;
|
|
21
|
+
MaterialDescription.prototype.canDrag = function (_move, _context) {
|
|
22
|
+
return false;
|
|
56
23
|
};
|
|
57
24
|
MaterialDescription.prototype.canLongClick = function (move, _a) {
|
|
58
25
|
var type = _a.type, index = _a.index;
|
|
@@ -62,7 +29,7 @@ var MaterialDescription = (function () {
|
|
|
62
29
|
var type = _a.type, index = _a.index;
|
|
63
30
|
return (0, rules_api_1.isSelectItem)(move) && move.itemType === type && move.itemIndex === index;
|
|
64
31
|
};
|
|
65
|
-
MaterialDescription.prototype.getSize = function (_itemId
|
|
32
|
+
MaterialDescription.prototype.getSize = function (_itemId) {
|
|
66
33
|
if (this.width && this.height)
|
|
67
34
|
return { width: this.width, height: this.height };
|
|
68
35
|
if (this.ratio && this.width)
|
|
@@ -71,7 +38,7 @@ var MaterialDescription = (function () {
|
|
|
71
38
|
return { width: this.height * this.ratio, height: this.height };
|
|
72
39
|
throw new Error('You must implement 2 of "width", "height" & "ratio" in any Material description');
|
|
73
40
|
};
|
|
74
|
-
MaterialDescription.prototype.getBorderRadius = function (_itemId
|
|
41
|
+
MaterialDescription.prototype.getBorderRadius = function (_itemId) {
|
|
75
42
|
return this.borderRadius;
|
|
76
43
|
};
|
|
77
44
|
MaterialDescription.prototype.getThickness = function (_item, _context) {
|
|
@@ -80,6 +47,12 @@ var MaterialDescription = (function () {
|
|
|
80
47
|
MaterialDescription.prototype.getRotations = function (_item, _context) {
|
|
81
48
|
return [];
|
|
82
49
|
};
|
|
50
|
+
MaterialDescription.prototype.getItemExtraCss = function (_item, _context) {
|
|
51
|
+
return;
|
|
52
|
+
};
|
|
53
|
+
MaterialDescription.prototype.highlight = function (_item, _context) {
|
|
54
|
+
return;
|
|
55
|
+
};
|
|
83
56
|
return MaterialDescription;
|
|
84
57
|
}());
|
|
85
58
|
exports.MaterialDescription = MaterialDescription;
|