@truelab/truelogic 4.2.0 → 4.3.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/100.min.js +1 -1
  2. package/dist/103.min.js +1 -1
  3. package/dist/113.min.js +1 -1
  4. package/dist/172.min.js +1 -1
  5. package/dist/180.min.js +1 -1
  6. package/dist/201.min.js +1 -1
  7. package/dist/203.min.js +1 -1
  8. package/dist/266.min.js +1 -1
  9. package/dist/282.min.js +1 -1
  10. package/dist/383.min.js +1 -1
  11. package/dist/4.min.js +1 -1
  12. package/dist/423.min.js +1 -1
  13. package/dist/487.min.js +1 -1
  14. package/dist/546.min.js +1 -1
  15. package/dist/585.min.js +1 -1
  16. package/dist/59.min.js +1 -1
  17. package/dist/683.min.js +1 -1
  18. package/dist/699.min.js +1 -1
  19. package/dist/728.min.js +1 -1
  20. package/dist/755.min.js +1 -1
  21. package/dist/756.min.js +1 -1
  22. package/dist/761.min.js +1 -1
  23. package/dist/763.min.js +1 -1
  24. package/dist/80.min.js +1 -1
  25. package/dist/887.48666879.css +3 -0
  26. package/dist/887.min.js +1 -0
  27. package/dist/90.min.js +1 -1
  28. package/dist/929.min.js +1 -1
  29. package/dist/937.min.js +1 -1
  30. package/dist/988.min.js +1 -1
  31. package/dist/assets/events-empty.e864d6cd0e2060d9eb98.webp +0 -0
  32. package/dist/assets/locales/cs.json +5 -1
  33. package/dist/assets/locales/de.json +5 -1
  34. package/dist/assets/locales/en.json +5 -1
  35. package/dist/assets/locales/es.json +5 -1
  36. package/dist/assets/locales/fi.json +5 -1
  37. package/dist/assets/locales/fr.json +5 -1
  38. package/dist/assets/locales/hi.json +5 -1
  39. package/dist/assets/locales/hr.json +5 -1
  40. package/dist/assets/locales/id.json +5 -1
  41. package/dist/assets/locales/it.json +5 -1
  42. package/dist/assets/locales/ja.json +5 -1
  43. package/dist/assets/locales/kk.json +5 -1
  44. package/dist/assets/locales/ko.json +5 -1
  45. package/dist/assets/locales/nl.json +5 -1
  46. package/dist/assets/locales/no.json +5 -1
  47. package/dist/assets/locales/pl.json +5 -1
  48. package/dist/assets/locales/pt.json +5 -1
  49. package/dist/assets/locales/ru.json +5 -1
  50. package/dist/assets/locales/sc_en.json +26 -22
  51. package/dist/assets/locales/sr.json +5 -1
  52. package/dist/assets/locales/sv.json +5 -1
  53. package/dist/assets/locales/th.json +5 -1
  54. package/dist/assets/locales/tr.json +5 -1
  55. package/dist/assets/locales/uk.json +5 -1
  56. package/dist/assets/locales/vi.json +5 -1
  57. package/dist/assets/locales/zh.json +5 -1
  58. package/dist/truelogic.min.css +1 -1
  59. package/dist/truelogic.min.js +1 -1
  60. package/dist/types/src/app/lib/functions/getConfigurationNonCriticalImages.test.d.ts +1 -0
  61. package/dist/types/src/app/lib/singletones/publicEmitter.d.ts +9 -0
  62. package/dist/types/src/app/store.d.ts +35 -30
  63. package/dist/types/src/entities/autoplay/model/autoPlaySlice.d.ts +7 -6
  64. package/dist/types/src/entities/bonus/model/bonusSlice.d.ts +35 -30
  65. package/dist/types/src/entities/gameInfo/index.d.ts +3 -1
  66. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.d.ts +24 -0
  67. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.test.d.ts +1 -0
  68. package/dist/types/src/entities/gameInfo/model/gameInfoSlice.d.ts +4 -3
  69. package/dist/types/src/entities/gameInfo/model/types.d.ts +23 -2
  70. package/dist/types/src/entities/menu/index.d.ts +2 -1
  71. package/dist/types/src/entities/menu/model/menuSlice.d.ts +34 -0
  72. package/dist/types/src/entities/menu/model/menuSlice.test.d.ts +1 -0
  73. package/dist/types/src/entities/modals/index.d.ts +0 -1
  74. package/dist/types/src/entities/payTable/model/types.d.ts +5 -0
  75. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.d.ts +13 -1
  76. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.stories.d.ts +8 -1
  77. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableLine.stories.d.ts +5 -1
  78. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolGridV1.stories.d.ts +5 -1
  79. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV1.stories.d.ts +5 -1
  80. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV2.stories.d.ts +5 -1
  81. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableTitle.stories.d.ts +5 -1
  82. package/dist/types/src/entities/realityCheck/index.d.ts +0 -1
  83. package/dist/types/src/entities/roundsHistory/ui/RoundsHistoryCard.d.ts +1 -0
  84. package/dist/types/src/entities/sound/ui/SoundSettingsSwitcher/SoundSettingsSwitcher.d.ts +1 -0
  85. package/dist/types/src/features/menu/index.d.ts +2 -1
  86. package/dist/types/src/features/menu/lib/useInfoClick.d.ts +10 -0
  87. package/dist/types/src/features/menu/ui/InfoButton/InfoButton.d.ts +15 -0
  88. package/dist/types/src/features/menu/ui/PanelInfo/PanelInfo.d.ts +11 -0
  89. package/dist/types/src/modules/promoLobby/app/model/index.d.ts +2 -2
  90. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.d.ts +30 -2
  91. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.test.d.ts +1 -0
  92. package/dist/types/src/modules/promoLobby/app/model/types.d.ts +6 -1
  93. package/dist/types/src/modules/promoLobby/entities/modals/index.d.ts +0 -2
  94. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBase.d.ts +1 -1
  95. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBaseHeader.d.ts +1 -1
  96. package/dist/types/src/modules/promoLobby/entities/prizeDrop/lib/isTrueTokenCampaign.d.ts +2 -0
  97. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsEmpty.d.ts +5 -0
  98. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsList.d.ts +2 -0
  99. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/components/PrizeDropEventsPrizes.d.ts +4 -0
  100. package/dist/types/src/modules/promoLobby/shared/lib/analytics/promoLobbyAnalytics.d.ts +2 -1
  101. package/dist/types/src/modules/promoLobby/shared/lib/analytics/subscribePromoLobbyAnalytics.d.ts +9 -0
  102. package/dist/types/src/modules/promoLobby/shared/lib/hooks/useHasNotifications.d.ts +7 -3
  103. package/dist/types/src/modules/promoLobby/shared/modals/modalsSlice.d.ts +2 -1
  104. package/dist/types/src/modules/promoLobby/styles/tailwind.config.d.ts +3 -1
  105. package/dist/types/src/modules/promoLobby/widgets/panel/ui/PanelPromoLobby.d.ts +1 -4
  106. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/index.d.ts +1 -0
  107. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/ui/PromoLobbyTab.d.ts +7 -0
  108. package/dist/types/src/modules/promoLobby/widgets/topBar/ui/TopBar.d.ts +9 -0
  109. package/dist/types/src/sandbox/config.d.ts +10 -12
  110. package/dist/types/src/sandbox/gui/gui.d.ts +3 -6
  111. package/dist/types/src/sandbox/gui/helpers/index.d.ts +1 -1
  112. package/dist/types/src/sandbox/gui/helpers/serializationGameInfo.d.ts +6 -0
  113. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/index.d.ts +12 -0
  114. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateInfoItem.d.ts +11 -0
  115. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateLineItem.d.ts +11 -0
  116. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateSymbolItem.d.ts +11 -0
  117. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/index.d.ts +3 -0
  118. package/dist/types/src/sandbox/gui/sections/promoLobby/index.d.ts +8 -0
  119. package/dist/types/src/sandbox/presets/index.d.ts +1 -0
  120. package/dist/types/src/sandbox/presets/prizeDrop/campaignsList.d.ts +2 -0
  121. package/dist/types/src/sandbox/presets/prizeDrop/lobbyInit.d.ts +2 -0
  122. package/dist/types/src/sandbox/types/GameInfo.d.ts +11 -0
  123. package/dist/types/src/sandbox/types/PayTable.d.ts +1 -6
  124. package/dist/types/src/shared/api/config/types.d.ts +4 -0
  125. package/dist/types/src/shared/api/modules/promoLobby/config.d.ts +4 -0
  126. package/dist/types/src/shared/lib/classes/integration/OperatorAbstractService.d.ts +0 -2
  127. package/dist/types/src/shared/lib/classes/integration/OperatorBaseService.d.ts +0 -4
  128. package/dist/types/src/shared/lib/classes/integration/OperatorGeneralService.d.ts +1 -3
  129. package/dist/types/src/shared/lib/constants/cssVars.d.ts +7 -0
  130. package/dist/types/src/shared/lib/constants/index.d.ts +1 -0
  131. package/dist/types/src/shared/lib/constants/widgetZIndex.d.ts +1 -0
  132. package/dist/types/src/shared/lib/functions/formatCount.d.ts +5 -0
  133. package/dist/types/src/shared/lib/functions/index.d.ts +1 -0
  134. package/dist/types/src/shared/lib/hooks/index.d.ts +1 -1
  135. package/dist/types/src/shared/lib/hooks/useElementsBottomCssVar.d.ts +14 -0
  136. package/dist/types/src/shared/lib/panelLayout/types.d.ts +2 -2
  137. package/dist/types/src/shared/lib/singletones/analyticsEmitter.d.ts +0 -1
  138. package/dist/types/src/shared/lib/singletones/gameEmitter.d.ts +1 -1
  139. package/dist/types/src/shared/lib/singletones/operatorEmitter.d.ts +0 -2
  140. package/dist/types/src/shared/lib/store/redux.d.ts +14 -12
  141. package/dist/types/src/shared/lib/tests/utils/getPreloadedState.d.ts +7 -6
  142. package/dist/types/src/shared/lib/tests/utils/setupTestStore.d.ts +14 -12
  143. package/dist/types/src/shared/model/menu/types.d.ts +2 -1
  144. package/dist/types/src/shared/model/modals/index.d.ts +1 -1
  145. package/dist/types/src/shared/model/modals/modalsSlice.d.ts +2 -3
  146. package/dist/types/src/shared/modules/menuInnerPage.d.ts +25 -0
  147. package/dist/types/src/shared/modules/menuTabsRegistry.d.ts +3 -0
  148. package/dist/types/src/shared/ui/CustomScroll/CustomScroll.d.ts +3 -0
  149. package/dist/types/src/shared/ui/FixedWidthLabel/FixedWidthLabel.d.ts +1 -0
  150. package/dist/types/src/shared/ui/InfoConstructor/InfoConstructor.d.ts +3 -1
  151. package/dist/types/src/shared/ui/InfoConstructor/items/InfoIconListItem.d.ts +4 -1
  152. package/dist/types/src/shared/ui/InfoSeparator/InfoSeparator.d.ts +13 -0
  153. package/dist/types/src/shared/ui/InfoSeparator/index.d.ts +1 -0
  154. package/dist/types/src/shared/ui/SettingsSwitchCard/SettingsSwitchCard.d.ts +16 -0
  155. package/dist/types/src/shared/ui/SettingsSwitchCard/index.d.ts +1 -0
  156. package/dist/types/src/shared/ui/Switch/index.d.ts +0 -2
  157. package/dist/types/src/shared/ui/TabBar/TabBar.d.ts +16 -0
  158. package/dist/types/src/shared/ui/TabBar/TabBar.stories.d.ts +1804 -0
  159. package/dist/types/src/shared/ui/TabBar/TabBarIconButton.d.ts +8 -0
  160. package/dist/types/src/shared/ui/TabBar/TabBarItem.d.ts +12 -0
  161. package/dist/types/src/shared/ui/TabBar/index.d.ts +3 -0
  162. package/dist/types/src/shared/ui/TapAnywhere/TapAnywhere.d.ts +4 -2
  163. package/dist/types/src/widgets/menu/index.d.ts +3 -0
  164. package/dist/types/src/widgets/menu/lib/selectors.d.ts +11 -0
  165. package/dist/types/src/widgets/menu/lib/useMenuTabs.d.ts +25 -0
  166. package/dist/types/src/widgets/menu/ui/GameInfoLight/GameInfoLight.d.ts +16 -0
  167. package/dist/types/src/widgets/menu/ui/MenuHeader/MenuHeader.d.ts +18 -0
  168. package/dist/types/src/widgets/menu/ui/MenuTabBar/MenuTabBar.d.ts +11 -0
  169. package/dist/types/src/widgets/menu/ui/MenuTabContent/MenuTabContent.d.ts +17 -0
  170. package/dist/types/src/widgets/menu/ui/ModalMenu/ModalMenu.test.d.ts +1 -0
  171. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.d.ts +2 -0
  172. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.test.d.ts +1 -0
  173. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.d.ts +14 -0
  174. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.test.d.ts +1 -0
  175. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.d.ts +7 -0
  176. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.test.d.ts +1 -0
  177. package/dist/types/src/widgets/menu/ui/tabs/RoundDetailsPage.d.ts +9 -0
  178. package/dist/types/src/widgets/menu/ui/tabs/SettingsTab.d.ts +2 -0
  179. package/dist/types/src/widgets/{modals/ui/ModalSettings.stories.d.ts → menu/ui/tabs/SettingsTab.stories.d.ts} +3 -3
  180. package/dist/types/src/widgets/modals/index.d.ts +0 -7
  181. package/dist/types/src/widgets/modals/ui/ModalRealityCheckReminder.test.d.ts +1 -0
  182. package/package.json +1 -1
  183. package/dist/318.a4e04288.css +0 -3
  184. package/dist/318.min.js +0 -1
  185. package/dist/assets/coming-soon.378973f1d8788623bbe9.webp +0 -0
  186. package/dist/assets/true-coin.1428441fe478e319cb4e.webp +0 -0
  187. package/dist/types/src/entities/menu/ui/MenuSwitchItem.d.ts +0 -6
  188. package/dist/types/src/entities/menu/ui/MenuSwitchItem.stories.d.ts +0 -35
  189. package/dist/types/src/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  190. package/dist/types/src/entities/realityCheck/ui/RealityCheckSwitcher/RealityCheckSwitcher.d.ts +0 -7
  191. package/dist/types/src/features/menu/ui/PanelMenu/PanelMenu.d.ts +0 -10
  192. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalFullHeightBase.d.ts +0 -10
  193. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  194. package/dist/types/src/modules/promoLobby/screens/InfoScreen/InfoScreen.d.ts +0 -1
  195. package/dist/types/src/modules/promoLobby/screens/ProfileScreen/ProfileScreen.d.ts +0 -1
  196. package/dist/types/src/modules/promoLobby/shared/lib/constants/index.d.ts +0 -1
  197. package/dist/types/src/modules/promoLobby/shared/lib/constants/widgetZIndex.d.ts +0 -3
  198. package/dist/types/src/modules/promoLobby/shared/lib/hooks/usePromoLobbyAnalyticsEvents.d.ts +0 -1
  199. package/dist/types/src/modules/promoLobby/widgets/modals/ui/ModalPromoLobby.d.ts +0 -2
  200. package/dist/types/src/modules/promoLobby/widgets/navbar/index.d.ts +0 -2
  201. package/dist/types/src/modules/promoLobby/widgets/navbar/lib/navbarConfig.d.ts +0 -7
  202. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/Navbar.d.ts +0 -1
  203. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/NavbarItem.d.ts +0 -12
  204. package/dist/types/src/sandbox/gui/helpers/serializationPayTable.d.ts +0 -3
  205. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo.d.ts +0 -2
  206. package/dist/types/src/sandbox/gui/sections/configuration/payTable.d.ts +0 -2
  207. package/dist/types/src/shared/lib/hooks/useFullScreen.d.ts +0 -5
  208. package/dist/types/src/shared/lib/hooks/useFullScreenSupport.d.ts +0 -1
  209. package/dist/types/src/shared/model/fullScreen/fullScreenSlice.d.ts +0 -7
  210. package/dist/types/src/shared/model/fullScreen/index.d.ts +0 -1
  211. package/dist/types/src/shared/ui/Switch/SwitchItem.d.ts +0 -21
  212. package/dist/types/src/shared/ui/Switch/SwitchItem.stories.d.ts +0 -14
  213. package/dist/types/src/widgets/modals/ui/ModalGameInfo.d.ts +0 -1
  214. package/dist/types/src/widgets/modals/ui/ModalMenu/ModalMenu.stories.d.ts +0 -17
  215. package/dist/types/src/widgets/modals/ui/ModalPayTable.d.ts +0 -1
  216. package/dist/types/src/widgets/modals/ui/ModalPayTable.stories.d.ts +0 -15
  217. package/dist/types/src/widgets/modals/ui/ModalRealityCheck.d.ts +0 -1
  218. package/dist/types/src/widgets/modals/ui/ModalRoundDetails.d.ts +0 -1
  219. package/dist/types/src/widgets/modals/ui/ModalRoundsHistory.d.ts +0 -1
  220. package/dist/types/src/widgets/modals/ui/ModalSettings.d.ts +0 -1
  221. package/dist/types/src/widgets/topBar/ui/TopBar.d.ts +0 -5
  222. /package/dist/types/src/{widgets → modules/promoLobby/widgets}/topBar/index.d.ts +0 -0
  223. /package/dist/types/src/widgets/{modals → menu}/ui/ModalMenu/ModalMenu.d.ts +0 -0
@@ -62,6 +62,10 @@ export type TInitConfig = {
62
62
  /** When false, PromoLobby is not preloaded or mounted. Default: true (omit or undefined). */
63
63
  promoLobby?: {
64
64
  enabled?: boolean;
65
+ /** Shows the Wallet inside PromoLobby. Default: false. `session.prizeDrop.wallet` from the backend wins when sent. */
66
+ wallet?: boolean;
67
+ /** Shows the Rewards Hub inside PromoLobby. Default: false. `session.prizeDrop.rewardsHub` from the backend wins when sent. */
68
+ rewardsHub?: boolean;
65
69
  };
66
70
  };
67
71
  };
@@ -75,6 +79,11 @@ export type TConfiguration = {
75
79
  autoPlay?: TAutoPlayConfig;
76
80
  skip?: TSkipConfig;
77
81
  topLine?: TTopLineConfig;
82
+ /**
83
+ * @deprecated Supported for the whole life of the major version, but no longer the way to
84
+ * describe the Game Info page. Pass the symbols and lines as items of `gameInfo` instead —
85
+ * one config describes the whole page, block order and dividers included.
86
+ */
78
87
  payTable?: TPayTableConfig;
79
88
  gameInfo?: TGameInfoConfig;
80
89
  freeRounds?: TFreeRoundsConfig;
@@ -65,7 +65,6 @@ export declare const rootReducer: import("redux").Reducer<{
65
65
  inactivityTimeout: number;
66
66
  };
67
67
  modals: {
68
- hasOpenedByModule: boolean;
69
68
  hasOpened: boolean;
70
69
  current: import("../shared/model/modals").TModalName[];
71
70
  configs: {
@@ -260,7 +259,8 @@ export declare const rootReducer: import("redux").Reducer<{
260
259
  };
261
260
  gameInfo: {
262
261
  deferredConfig: import("../index").TGameInfoConfig;
263
- containers: import("../shared/ui/InfoConstructor").TInfoContainer[];
262
+ containers: import("../entities/gameInfo").TGameInfoContainer[];
263
+ symbolsGridV1Gap: import("../entities/payTable").TSymbolsGridV1Gap;
264
264
  background?: string | {
265
265
  portrait?: string;
266
266
  landscape?: string;
@@ -287,10 +287,6 @@ export declare const rootReducer: import("redux").Reducer<{
287
287
  apiRoundReplay: import("./config/types/apiRoundReplay").TApiRoundReplayState;
288
288
  gameSettings: import("../shared/api/config").TGameSettings;
289
289
  complianceSettings: import("../shared/api/config").TComplianceSettings;
290
- fullScreen: {
291
- isFullScreenSupported: boolean;
292
- isFullScreenEnabled: boolean;
293
- };
294
290
  topLine: {
295
291
  config: import("../index").TTopLineConfig;
296
292
  };
@@ -320,6 +316,11 @@ export declare const rootReducer: import("redux").Reducer<{
320
316
  };
321
317
  showed?: boolean;
322
318
  };
319
+ menu: {
320
+ activeTab: import("../entities/menu").TMenuTab;
321
+ isTabBarHidden: boolean;
322
+ entry: import("../entities/menu").TMenuEntry;
323
+ };
323
324
  }, import("redux").UnknownAction, Partial<{
324
325
  viewPort: import("../shared/viewPort/lib/types").TViewPortState;
325
326
  theme: Omit<{
@@ -406,7 +407,6 @@ export declare const rootReducer: import("redux").Reducer<{
406
407
  inactivityTimeout: number;
407
408
  };
408
409
  modals: {
409
- hasOpenedByModule: boolean;
410
410
  hasOpened: boolean;
411
411
  current: import("../shared/model/modals").TModalName[];
412
412
  configs: {
@@ -601,7 +601,8 @@ export declare const rootReducer: import("redux").Reducer<{
601
601
  };
602
602
  gameInfo: {
603
603
  deferredConfig: import("../index").TGameInfoConfig;
604
- containers: import("../shared/ui/InfoConstructor").TInfoContainer[];
604
+ containers: import("../entities/gameInfo").TGameInfoContainer[];
605
+ symbolsGridV1Gap: import("../entities/payTable").TSymbolsGridV1Gap;
605
606
  background?: string | {
606
607
  portrait?: string;
607
608
  landscape?: string;
@@ -628,10 +629,6 @@ export declare const rootReducer: import("redux").Reducer<{
628
629
  apiRoundReplay: import("./config/types/apiRoundReplay").TApiRoundReplayState;
629
630
  gameSettings: import("../shared/api/config").TGameSettings;
630
631
  complianceSettings: import("../shared/api/config").TComplianceSettings;
631
- fullScreen: {
632
- isFullScreenSupported: boolean;
633
- isFullScreenEnabled: boolean;
634
- };
635
632
  topLine: {
636
633
  config: import("../index").TTopLineConfig;
637
634
  };
@@ -661,6 +658,11 @@ export declare const rootReducer: import("redux").Reducer<{
661
658
  };
662
659
  showed?: boolean;
663
660
  };
661
+ menu: {
662
+ activeTab: import("../entities/menu").TMenuTab;
663
+ isTabBarHidden: boolean;
664
+ entry: import("../entities/menu").TMenuEntry;
665
+ };
664
666
  }>>;
665
667
  export declare const persistedReducer: import("redux").Reducer<{
666
668
  viewPort: import("../shared/viewPort/lib/types").TViewPortState;
@@ -729,7 +731,6 @@ export declare const persistedReducer: import("redux").Reducer<{
729
731
  inactivityTimeout: number;
730
732
  };
731
733
  modals: {
732
- hasOpenedByModule: boolean;
733
734
  hasOpened: boolean;
734
735
  current: import("../shared/model/modals").TModalName[];
735
736
  configs: {
@@ -924,7 +925,8 @@ export declare const persistedReducer: import("redux").Reducer<{
924
925
  };
925
926
  gameInfo: {
926
927
  deferredConfig: import("../index").TGameInfoConfig;
927
- containers: import("../shared/ui/InfoConstructor").TInfoContainer[];
928
+ containers: import("../entities/gameInfo").TGameInfoContainer[];
929
+ symbolsGridV1Gap: import("../entities/payTable").TSymbolsGridV1Gap;
928
930
  background?: string | {
929
931
  portrait?: string;
930
932
  landscape?: string;
@@ -951,10 +953,6 @@ export declare const persistedReducer: import("redux").Reducer<{
951
953
  apiRoundReplay: import("./config/types/apiRoundReplay").TApiRoundReplayState;
952
954
  gameSettings: import("../shared/api/config").TGameSettings;
953
955
  complianceSettings: import("../shared/api/config").TComplianceSettings;
954
- fullScreen: {
955
- isFullScreenSupported: boolean;
956
- isFullScreenEnabled: boolean;
957
- };
958
956
  topLine: {
959
957
  config: import("../index").TTopLineConfig;
960
958
  };
@@ -984,6 +982,11 @@ export declare const persistedReducer: import("redux").Reducer<{
984
982
  };
985
983
  showed?: boolean;
986
984
  };
985
+ menu: {
986
+ activeTab: import("../entities/menu").TMenuTab;
987
+ isTabBarHidden: boolean;
988
+ entry: import("../entities/menu").TMenuEntry;
989
+ };
987
990
  } & import("redux-persist/es/persistReducer").PersistPartial, import("redux").Action>;
988
991
  export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
989
992
  viewPort: import("../shared/viewPort/lib/types").TViewPortState;
@@ -1052,7 +1055,6 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1052
1055
  inactivityTimeout: number;
1053
1056
  };
1054
1057
  modals: {
1055
- hasOpenedByModule: boolean;
1056
1058
  hasOpened: boolean;
1057
1059
  current: import("../shared/model/modals").TModalName[];
1058
1060
  configs: {
@@ -1247,7 +1249,8 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1247
1249
  };
1248
1250
  gameInfo: {
1249
1251
  deferredConfig: import("../index").TGameInfoConfig;
1250
- containers: import("../shared/ui/InfoConstructor").TInfoContainer[];
1252
+ containers: import("../entities/gameInfo").TGameInfoContainer[];
1253
+ symbolsGridV1Gap: import("../entities/payTable").TSymbolsGridV1Gap;
1251
1254
  background?: string | {
1252
1255
  portrait?: string;
1253
1256
  landscape?: string;
@@ -1274,10 +1277,6 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1274
1277
  apiRoundReplay: import("./config/types/apiRoundReplay").TApiRoundReplayState;
1275
1278
  gameSettings: import("../shared/api/config").TGameSettings;
1276
1279
  complianceSettings: import("../shared/api/config").TComplianceSettings;
1277
- fullScreen: {
1278
- isFullScreenSupported: boolean;
1279
- isFullScreenEnabled: boolean;
1280
- };
1281
1280
  topLine: {
1282
1281
  config: import("../index").TTopLineConfig;
1283
1282
  };
@@ -1307,6 +1306,11 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1307
1306
  };
1308
1307
  showed?: boolean;
1309
1308
  };
1309
+ menu: {
1310
+ activeTab: import("../entities/menu").TMenuTab;
1311
+ isTabBarHidden: boolean;
1312
+ entry: import("../entities/menu").TMenuEntry;
1313
+ };
1310
1314
  } & import("redux-persist/es/persistReducer").PersistPartial, import("redux").Action, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
1311
1315
  dispatch: import("redux-thunk").ThunkDispatch<{
1312
1316
  viewPort: import("../shared/viewPort/lib/types").TViewPortState;
@@ -1375,7 +1379,6 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1375
1379
  inactivityTimeout: number;
1376
1380
  };
1377
1381
  modals: {
1378
- hasOpenedByModule: boolean;
1379
1382
  hasOpened: boolean;
1380
1383
  current: import("../shared/model/modals").TModalName[];
1381
1384
  configs: {
@@ -1570,7 +1573,8 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1570
1573
  };
1571
1574
  gameInfo: {
1572
1575
  deferredConfig: import("../index").TGameInfoConfig;
1573
- containers: import("../shared/ui/InfoConstructor").TInfoContainer[];
1576
+ containers: import("../entities/gameInfo").TGameInfoContainer[];
1577
+ symbolsGridV1Gap: import("../entities/payTable").TSymbolsGridV1Gap;
1574
1578
  background?: string | {
1575
1579
  portrait?: string;
1576
1580
  landscape?: string;
@@ -1597,10 +1601,6 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1597
1601
  apiRoundReplay: import("./config/types/apiRoundReplay").TApiRoundReplayState;
1598
1602
  gameSettings: import("../shared/api/config").TGameSettings;
1599
1603
  complianceSettings: import("../shared/api/config").TComplianceSettings;
1600
- fullScreen: {
1601
- isFullScreenSupported: boolean;
1602
- isFullScreenEnabled: boolean;
1603
- };
1604
1604
  topLine: {
1605
1605
  config: import("../index").TTopLineConfig;
1606
1606
  };
@@ -1630,6 +1630,11 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
1630
1630
  };
1631
1631
  showed?: boolean;
1632
1632
  };
1633
+ menu: {
1634
+ activeTab: import("../entities/menu").TMenuTab;
1635
+ isTabBarHidden: boolean;
1636
+ entry: import("../entities/menu").TMenuEntry;
1637
+ };
1633
1638
  } & import("redux-persist/es/persistReducer").PersistPartial, undefined, import("redux").UnknownAction>;
1634
1639
  }>, import("redux").StoreEnhancer]>>;
1635
1640
  export declare const persistor: import("redux-persist").Persistor;
@@ -65,7 +65,6 @@ export declare const getAutoPlayIsSupported: ((state: {
65
65
  inactivityTimeout: number;
66
66
  };
67
67
  modals: {
68
- hasOpenedByModule: boolean;
69
68
  hasOpened: boolean;
70
69
  current: import("../../../shared/model/modals").TModalName[];
71
70
  configs: {
@@ -260,7 +259,8 @@ export declare const getAutoPlayIsSupported: ((state: {
260
259
  };
261
260
  gameInfo: {
262
261
  deferredConfig: import("../../../index").TGameInfoConfig;
263
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
262
+ containers: import("../../gameInfo").TGameInfoContainer[];
263
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
264
264
  background?: string | {
265
265
  portrait?: string;
266
266
  landscape?: string;
@@ -287,10 +287,6 @@ export declare const getAutoPlayIsSupported: ((state: {
287
287
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
288
288
  gameSettings: import("../../../shared/api/config").TGameSettings;
289
289
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
290
- fullScreen: {
291
- isFullScreenSupported: boolean;
292
- isFullScreenEnabled: boolean;
293
- };
294
290
  topLine: {
295
291
  config: import("../../../index").TTopLineConfig;
296
292
  };
@@ -320,6 +316,11 @@ export declare const getAutoPlayIsSupported: ((state: {
320
316
  };
321
317
  showed?: boolean;
322
318
  };
319
+ menu: {
320
+ activeTab: import("../../menu").TMenuTab;
321
+ isTabBarHidden: boolean;
322
+ entry: import("../../menu").TMenuEntry;
323
+ };
323
324
  } & import("redux-persist/es/persistReducer").PersistPartial) => boolean) & {
324
325
  clearCache: () => void;
325
326
  resultsCount: () => number;
@@ -77,7 +77,6 @@ export declare const getBonusIsConfirmDisabled: ((state: {
77
77
  inactivityTimeout: number;
78
78
  };
79
79
  modals: {
80
- hasOpenedByModule: boolean;
81
80
  hasOpened: boolean;
82
81
  current: import("../../../shared/model/modals").TModalName[];
83
82
  configs: {
@@ -272,7 +271,8 @@ export declare const getBonusIsConfirmDisabled: ((state: {
272
271
  };
273
272
  gameInfo: {
274
273
  deferredConfig: import("../../../index").TGameInfoConfig;
275
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
274
+ containers: import("../../gameInfo").TGameInfoContainer[];
275
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
276
276
  background?: string | {
277
277
  portrait?: string;
278
278
  landscape?: string;
@@ -299,10 +299,6 @@ export declare const getBonusIsConfirmDisabled: ((state: {
299
299
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
300
300
  gameSettings: import("../../../shared/api/config").TGameSettings;
301
301
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
302
- fullScreen: {
303
- isFullScreenSupported: boolean;
304
- isFullScreenEnabled: boolean;
305
- };
306
302
  topLine: {
307
303
  config: import("../../../index").TTopLineConfig;
308
304
  };
@@ -332,6 +328,11 @@ export declare const getBonusIsConfirmDisabled: ((state: {
332
328
  };
333
329
  showed?: boolean;
334
330
  };
331
+ menu: {
332
+ activeTab: import("../../menu").TMenuTab;
333
+ isTabBarHidden: boolean;
334
+ entry: import("../../menu").TMenuEntry;
335
+ };
335
336
  } & import("redux-persist/es/persistReducer").PersistPartial) => boolean) & {
336
337
  clearCache: () => void;
337
338
  resultsCount: () => number;
@@ -420,7 +421,6 @@ export declare const getBonusCashPrice: ((state: {
420
421
  inactivityTimeout: number;
421
422
  };
422
423
  modals: {
423
- hasOpenedByModule: boolean;
424
424
  hasOpened: boolean;
425
425
  current: import("../../../shared/model/modals").TModalName[];
426
426
  configs: {
@@ -615,7 +615,8 @@ export declare const getBonusCashPrice: ((state: {
615
615
  };
616
616
  gameInfo: {
617
617
  deferredConfig: import("../../../index").TGameInfoConfig;
618
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
618
+ containers: import("../../gameInfo").TGameInfoContainer[];
619
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
619
620
  background?: string | {
620
621
  portrait?: string;
621
622
  landscape?: string;
@@ -642,10 +643,6 @@ export declare const getBonusCashPrice: ((state: {
642
643
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
643
644
  gameSettings: import("../../../shared/api/config").TGameSettings;
644
645
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
645
- fullScreen: {
646
- isFullScreenSupported: boolean;
647
- isFullScreenEnabled: boolean;
648
- };
649
646
  topLine: {
650
647
  config: import("../../../index").TTopLineConfig;
651
648
  };
@@ -675,6 +672,11 @@ export declare const getBonusCashPrice: ((state: {
675
672
  };
676
673
  showed?: boolean;
677
674
  };
675
+ menu: {
676
+ activeTab: import("../../menu").TMenuTab;
677
+ isTabBarHidden: boolean;
678
+ entry: import("../../menu").TMenuEntry;
679
+ };
678
680
  } & import("redux-persist/es/persistReducer").PersistPartial) => number) & {
679
681
  clearCache: () => void;
680
682
  resultsCount: () => number;
@@ -763,7 +765,6 @@ export declare const getBonusIsBuyFeatureSupported: ((state: {
763
765
  inactivityTimeout: number;
764
766
  };
765
767
  modals: {
766
- hasOpenedByModule: boolean;
767
768
  hasOpened: boolean;
768
769
  current: import("../../../shared/model/modals").TModalName[];
769
770
  configs: {
@@ -958,7 +959,8 @@ export declare const getBonusIsBuyFeatureSupported: ((state: {
958
959
  };
959
960
  gameInfo: {
960
961
  deferredConfig: import("../../../index").TGameInfoConfig;
961
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
962
+ containers: import("../../gameInfo").TGameInfoContainer[];
963
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
962
964
  background?: string | {
963
965
  portrait?: string;
964
966
  landscape?: string;
@@ -985,10 +987,6 @@ export declare const getBonusIsBuyFeatureSupported: ((state: {
985
987
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
986
988
  gameSettings: import("../../../shared/api/config").TGameSettings;
987
989
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
988
- fullScreen: {
989
- isFullScreenSupported: boolean;
990
- isFullScreenEnabled: boolean;
991
- };
992
990
  topLine: {
993
991
  config: import("../../../index").TTopLineConfig;
994
992
  };
@@ -1018,6 +1016,11 @@ export declare const getBonusIsBuyFeatureSupported: ((state: {
1018
1016
  };
1019
1017
  showed?: boolean;
1020
1018
  };
1019
+ menu: {
1020
+ activeTab: import("../../menu").TMenuTab;
1021
+ isTabBarHidden: boolean;
1022
+ entry: import("../../menu").TMenuEntry;
1023
+ };
1021
1024
  } & import("redux-persist/es/persistReducer").PersistPartial) => boolean) & {
1022
1025
  clearCache: () => void;
1023
1026
  resultsCount: () => number;
@@ -1106,7 +1109,6 @@ export declare const getCurrentBonusBetCards: ((state: {
1106
1109
  inactivityTimeout: number;
1107
1110
  };
1108
1111
  modals: {
1109
- hasOpenedByModule: boolean;
1110
1112
  hasOpened: boolean;
1111
1113
  current: import("../../../shared/model/modals").TModalName[];
1112
1114
  configs: {
@@ -1301,7 +1303,8 @@ export declare const getCurrentBonusBetCards: ((state: {
1301
1303
  };
1302
1304
  gameInfo: {
1303
1305
  deferredConfig: import("../../../index").TGameInfoConfig;
1304
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
1306
+ containers: import("../../gameInfo").TGameInfoContainer[];
1307
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
1305
1308
  background?: string | {
1306
1309
  portrait?: string;
1307
1310
  landscape?: string;
@@ -1328,10 +1331,6 @@ export declare const getCurrentBonusBetCards: ((state: {
1328
1331
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
1329
1332
  gameSettings: import("../../../shared/api/config").TGameSettings;
1330
1333
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
1331
- fullScreen: {
1332
- isFullScreenSupported: boolean;
1333
- isFullScreenEnabled: boolean;
1334
- };
1335
1334
  topLine: {
1336
1335
  config: import("../../../index").TTopLineConfig;
1337
1336
  };
@@ -1361,6 +1360,11 @@ export declare const getCurrentBonusBetCards: ((state: {
1361
1360
  };
1362
1361
  showed?: boolean;
1363
1362
  };
1363
+ menu: {
1364
+ activeTab: import("../../menu").TMenuTab;
1365
+ isTabBarHidden: boolean;
1366
+ entry: import("../../menu").TMenuEntry;
1367
+ };
1364
1368
  } & import("redux-persist/es/persistReducer").PersistPartial) => TBonusWithStakeType[]) & {
1365
1369
  clearCache: () => void;
1366
1370
  resultsCount: () => number;
@@ -1449,7 +1453,6 @@ export declare const getCurrentBuyCards: ((state: {
1449
1453
  inactivityTimeout: number;
1450
1454
  };
1451
1455
  modals: {
1452
- hasOpenedByModule: boolean;
1453
1456
  hasOpened: boolean;
1454
1457
  current: import("../../../shared/model/modals").TModalName[];
1455
1458
  configs: {
@@ -1644,7 +1647,8 @@ export declare const getCurrentBuyCards: ((state: {
1644
1647
  };
1645
1648
  gameInfo: {
1646
1649
  deferredConfig: import("../../../index").TGameInfoConfig;
1647
- containers: import("../../../shared/ui/InfoConstructor").TInfoContainer[];
1650
+ containers: import("../../gameInfo").TGameInfoContainer[];
1651
+ symbolsGridV1Gap: import("../../payTable").TSymbolsGridV1Gap;
1648
1652
  background?: string | {
1649
1653
  portrait?: string;
1650
1654
  landscape?: string;
@@ -1671,10 +1675,6 @@ export declare const getCurrentBuyCards: ((state: {
1671
1675
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
1672
1676
  gameSettings: import("../../../shared/api/config").TGameSettings;
1673
1677
  complianceSettings: import("../../../shared/api/config").TComplianceSettings;
1674
- fullScreen: {
1675
- isFullScreenSupported: boolean;
1676
- isFullScreenEnabled: boolean;
1677
- };
1678
1678
  topLine: {
1679
1679
  config: import("../../../index").TTopLineConfig;
1680
1680
  };
@@ -1704,6 +1704,11 @@ export declare const getCurrentBuyCards: ((state: {
1704
1704
  };
1705
1705
  showed?: boolean;
1706
1706
  };
1707
+ menu: {
1708
+ activeTab: import("../../menu").TMenuTab;
1709
+ isTabBarHidden: boolean;
1710
+ entry: import("../../menu").TMenuEntry;
1711
+ };
1707
1712
  } & import("redux-persist/es/persistReducer").PersistPartial) => TBonusWithStakeType[]) & {
1708
1713
  clearCache: () => void;
1709
1714
  resultsCount: () => number;
@@ -1,2 +1,4 @@
1
+ export type { TGameInfoSection, TGameInfoSectionFamily } from './lib/getGameInfoSections';
2
+ export { getGameInfoHasPayTableContent, getGameInfoSections } from './lib/getGameInfoSections';
1
3
  export { gameInfoReducer, saveGameInfoConfig, setGameInfoConfig } from './model/gameInfoSlice';
2
- export type { TGameInfoConfig, TGameInfoPreset } from './model/types';
4
+ export type { TGameInfoConfig, TGameInfoContainer, TGameInfoItem, TGameInfoPreset } from './model/types';
@@ -0,0 +1,24 @@
1
+ import { TPayTableContainer } from '../../../entities/payTable';
2
+ import { TInfoContainer } from '../../../shared/ui/InfoConstructor';
3
+ import { TGameInfoContainer } from '../model/types';
4
+ /** Which constructor renders a section of the Game Info page. */
5
+ export type TGameInfoSectionFamily = 'payTable' | 'info';
6
+ export type TGameInfoSection = {
7
+ family: 'payTable';
8
+ containers: TPayTableContainer[];
9
+ } | {
10
+ family: 'info';
11
+ containers: TInfoContainer[];
12
+ };
13
+ /** True while the page holds blocks the paytable owns — the legacy `payTable` config aside. */
14
+ export declare const getGameInfoHasPayTableContent: (containers: TGameInfoContainer[]) => boolean;
15
+ /**
16
+ * Splits the ordered blocks of the unified `gameInfo` config into sections, each rendered by the
17
+ * constructor that owns its block types. The order of the config is kept as is — the page has to
18
+ * come out exactly as the legacy pair of configs rendered one after the other.
19
+ *
20
+ * `title` and `separator` exist in both block sets. Such a block introduces what comes after it
21
+ * (a title heads a section, a separator opens the next one), so it joins the section of the next
22
+ * typed block, falling back to the previous one when nothing follows.
23
+ */
24
+ export declare const getGameInfoSections: (containers: TGameInfoContainer[]) => TGameInfoSection[];
@@ -1,9 +1,10 @@
1
+ import { TSymbolsGridV1Gap } from '../../../entities/payTable';
1
2
  import { TAppThunkAction } from '../../../shared/lib/store';
2
- import { TInfoContainer } from '../../../shared/ui/InfoConstructor';
3
- import { TGameInfoConfig, TGameInfoPreset } from './types';
3
+ import { TGameInfoConfig, TGameInfoContainer, TGameInfoPreset } from './types';
4
4
  type TGameInfoState = {
5
5
  deferredConfig: TGameInfoConfig;
6
- containers: TInfoContainer[];
6
+ containers: TGameInfoContainer[];
7
+ symbolsGridV1Gap: TSymbolsGridV1Gap;
7
8
  background?: string | {
8
9
  portrait?: string;
9
10
  landscape?: string;
@@ -1,16 +1,37 @@
1
+ import { TPayTableContainer, TPayTableItem, TSymbolsGridV1Gap } from '../../../entities/payTable';
1
2
  import { TAdaptiveImage } from '../../../shared/lib/types/image';
2
- import { TInfoItem } from '../../../shared/ui/InfoConstructor';
3
+ import { TInfoContainer, TInfoItem } from '../../../shared/ui/InfoConstructor';
3
4
  export type TGameInfoPreset = {
4
5
  name: 'truelab-game';
5
6
  version: string;
6
7
  lastUpdate: string;
7
8
  };
9
+ /**
10
+ * A block of the Game Info page. Game information blocks are always allowed; paytable blocks
11
+ * appear when the integrator describes the whole page with one `gameInfo` config — the recommended
12
+ * form for new games. The pair of `gameInfo` + `payTable` configs is deprecated: it keeps working
13
+ * unchanged for the whole life of the major version, and the divider between the two sections is
14
+ * added by the system rather than by the integrator.
15
+ */
16
+ export type TGameInfoItem = TInfoItem | TPayTableItem;
17
+ /** Same-type items of the page, grouped in config order. */
18
+ export type TGameInfoContainer = TInfoContainer | TPayTableContainer;
8
19
  export type TGameInfoConfig = {
9
- items: TInfoItem[];
20
+ items: TGameInfoItem[];
10
21
  /** @deprecated */
11
22
  version?: string;
12
23
  /** @deprecated */
13
24
  lastUpdate?: string;
25
+ /**
26
+ * @deprecated Accepted and ignored. The Game Info page always renders on black — the redesign
27
+ * dropped the page background image, so nothing is drawn from this field and the image is not
28
+ * preloaded either.
29
+ */
14
30
  background?: string | TAdaptiveImage;
15
31
  preset?: TGameInfoPreset;
32
+ /**
33
+ * Gap between `symbol-grid-v1` blocks of the unified config form. With the deprecated pair of
34
+ * configs the value comes from `payTable` instead.
35
+ */
36
+ symbolsGridV1Gap?: TSymbolsGridV1Gap;
16
37
  };
@@ -1 +1,2 @@
1
- export { MenuSwitchItem } from './ui/MenuSwitchItem';
1
+ export type { TMenuEntry, TMenuTab } from './model/menuSlice';
2
+ export { getMenuIsPromoLobbyTabOpen, menuReducer, openMenu, openMenuTab, setMenuActiveTab, setMenuEntry, setMenuTabBarHidden, } from './model/menuSlice';
@@ -0,0 +1,34 @@
1
+ import { TAppThunkAction } from '../../../shared/lib/store';
2
+ export type TMenuTab = 'promoLobby' | 'gameInfo' | 'activity' | 'settings';
3
+ /** Which button opened the menu. */
4
+ export type TMenuEntry = 'lobby' | 'info';
5
+ type TMenuState = {
6
+ activeTab: TMenuTab;
7
+ /** Inner pages (round details, promo event page) take over the screen and hide the bar */
8
+ isTabBarHidden: boolean;
9
+ entry: TMenuEntry;
10
+ };
11
+ export declare const setMenuActiveTab: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TMenuTab, "menu/setMenuActiveTab">, setMenuEntry: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TMenuEntry, "menu/setMenuEntry">, setMenuTabBarHidden: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "menu/setMenuTabBarHidden">;
12
+ export declare const menuReducer: import("redux").Reducer<TMenuState>;
13
+ /**
14
+ * The promo lobby is a menu tab, not a modal of its own: it is on screen only while the menu
15
+ * modal is open and that tab is the active one. The promoLobby module reads this through
16
+ * `mainGetState` / the core selector hook.
17
+ */
18
+ export declare const getMenuIsPromoLobbyTabOpen: (state: TRootState) => boolean;
19
+ /**
20
+ * Single entry point for both menu buttons: remembers which one was pressed and lands
21
+ * the menu on its tab. The modal name is the pre-existing `menu`, so the deferred-open
22
+ * handshake and the `modal:opened('menu')` analytics stay as they were.
23
+ */
24
+ export declare const openMenu: TAppThunkAction<TMenuEntry>;
25
+ /**
26
+ * Opens the menu straight on one tab, optionally without the tab bar. The reality check
27
+ * reminder uses the second form: it sends the player to a single page (settings or the rounds
28
+ * feed) and the rest of the menu must stay out of reach until the player is back in the game.
29
+ */
30
+ export declare const openMenuTab: TAppThunkAction<{
31
+ tab: TMenuTab;
32
+ withoutTabBar?: boolean;
33
+ }>;
34
+ export {};
@@ -2,4 +2,3 @@ export { ModalBase } from './ui/ModalBase';
2
2
  export { ModalBaseBody } from './ui/ModalBaseBody';
3
3
  export { ModalBaseFooter } from './ui/ModalBaseFooter';
4
4
  export { ModalBaseHeader } from './ui/ModalBaseHeader';
5
- export { ModalMenuItemCard } from './ui/ModalMenuItemCard';
@@ -32,5 +32,10 @@ export type TSymbolsGridV1Gap = 10 | 30 | 40;
32
32
  export type TPayTableConfig = {
33
33
  items: TPayTableItem[];
34
34
  symbolsGridV1Gap?: TSymbolsGridV1Gap;
35
+ /**
36
+ * @deprecated Accepted and ignored. The Game Info page always renders on black — the redesign
37
+ * dropped the page background image, so nothing is drawn from this field and the image is not
38
+ * preloaded either.
39
+ */
35
40
  background?: string | TAdaptiveImage;
36
41
  };
@@ -1 +1,13 @@
1
- export declare const PayTableConstructor: () => import("react/jsx-runtime").JSX.Element;
1
+ import { FC } from 'react';
2
+ import { TPayTableContainer, TSymbolsGridV1Gap } from '../../model/types';
3
+ type TProps = {
4
+ containers: TPayTableContainer[];
5
+ symbolsGridV1Gap?: TSymbolsGridV1Gap;
6
+ };
7
+ /**
8
+ * Symbols and lines of the paytable. The blocks come from the caller, because the page they are
9
+ * part of can be described either by the legacy `payTable` config or, together with the game
10
+ * information blocks, by a single `gameInfo` config.
11
+ */
12
+ export declare const PayTableConstructor: FC<TProps>;
13
+ export {};
@@ -1,11 +1,18 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  parameters: {
7
11
  imagesToLoad: string[];
8
12
  };
13
+ args: {
14
+ containers: TPayTableContainer[];
15
+ };
9
16
  };
10
17
  export default meta;
11
18
  type TStory = StoryObj<typeof meta>;