@truelab/truelogic 3.15.0 → 3.16.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 (46) hide show
  1. package/dist/487.min.js +1 -1
  2. package/dist/80.cb1ec166.css +3 -0
  3. package/dist/80.min.js +1 -1
  4. package/dist/preloader.html +1 -1
  5. package/dist/truelogic.min.css +1 -1
  6. package/dist/truelogic.min.js +1 -1
  7. package/dist/types/src/app/lib/singletones/publicEmitter.d.ts +2 -0
  8. package/dist/types/src/app/store.d.ts +15 -0
  9. package/dist/types/src/entities/appearance/index.d.ts +1 -0
  10. package/dist/types/src/entities/appearance/model/appearanceSlice.d.ts +5 -0
  11. package/dist/types/src/entities/appearance/model/appearanceSlice.test.d.ts +1 -0
  12. package/dist/types/src/entities/autoplay/model/autoPlaySlice.d.ts +3 -0
  13. package/dist/types/src/entities/bonus/model/bonusSlice.d.ts +15 -0
  14. package/dist/types/src/entities/loading/index.d.ts +1 -0
  15. package/dist/types/src/entities/loading/ui/default/GameLoader.d.ts +2 -2
  16. package/dist/types/src/entities/loading/ui/default/GameLoaderWithCustomLogo.d.ts +8 -0
  17. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.d.ts +1 -2
  18. package/dist/types/src/modules/promoLobby/app/store/index.d.ts +1 -0
  19. package/dist/types/src/modules/promoLobby/app/store/promoLobbyStore.d.ts +41 -596
  20. package/dist/types/src/modules/promoLobby/app/store/reduxContext.d.ts +9 -363
  21. package/dist/types/src/modules/promoLobby/app/store/rootStateTypes.d.ts +18 -0
  22. package/dist/types/src/modules/promoLobby/entities/convert/model/convertSlice.d.ts +1 -1
  23. package/dist/types/src/modules/promoLobby/entities/notification/model/notificationSlice.d.ts +1 -2
  24. package/dist/types/src/modules/promoLobby/entities/prizeDrop/model/prizeDropSlice.d.ts +16 -43
  25. package/dist/types/src/modules/promoLobby/entities/prizeDrop/model/types.d.ts +31 -0
  26. package/dist/types/src/modules/promoLobby/entities/rewardsHub/model/rewardsSlice.d.ts +1 -1
  27. package/dist/types/src/modules/promoLobby/entities/transaction/model/transactionSlice.d.ts +1 -1
  28. package/dist/types/src/modules/promoLobby/shared/lib/tests/utils/getPreloadedState.d.ts +1 -122
  29. package/dist/types/src/modules/promoLobby/shared/lib/tests/utils/setupTestStore.d.ts +14 -238
  30. package/dist/types/src/modules/promoLobby/shared/modals/modalsSlice.d.ts +1 -2
  31. package/dist/types/src/sandbox/config.d.ts +8 -0
  32. package/dist/types/src/sandbox/gui/sections/configuration/appearance.d.ts +2 -0
  33. package/dist/types/src/shared/lib/store/redux.d.ts +6 -0
  34. package/dist/types/src/shared/lib/tests/utils/getPreloadedState.d.ts +3 -0
  35. package/dist/types/src/shared/lib/tests/utils/setupTestStore.d.ts +6 -0
  36. package/dist/types/src/shared/model/appearance/index.d.ts +1 -0
  37. package/dist/types/src/shared/model/appearance/types.d.ts +4 -0
  38. package/dist/types/src/shared/model/loading/types.d.ts +2 -0
  39. package/dist/types/src/shared/model/topLine/types.d.ts +1 -0
  40. package/dist/types/src/shared/ui/CustomLogoBlock/CustomLogoBlock.d.ts +7 -0
  41. package/dist/types/src/shared/ui/CustomLogoBlock/index.d.ts +1 -0
  42. package/dist/types/src/shared/ui/LoadingButton/LoadingButton.stories.d.ts +1 -0
  43. package/dist/types/src/shared/ui/ProgressBar/pro/ProgressBarPro.d.ts +4 -1
  44. package/dist/types/src/shared/ui/ProgressBar/pro/ProgressBarPro.stories.d.ts +3 -1
  45. package/package.json +3 -3
  46. package/dist/80.3e7f3592.css +0 -3
@@ -1,123 +1,2 @@
1
1
  import type { TPromoLobbyRootStateBase } from '../../../../../../modules/promoLobby/app/store';
2
- export declare const getPreloadedState: (storePartial?: DeepPartial<TPromoLobbyRootStateBase>) => {
3
- convert: {
4
- amount: string;
5
- lastResultCash: string | null;
6
- apiConvert: {
7
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertResponse;
8
- isPending: boolean;
9
- error: {
10
- name: string;
11
- message: string;
12
- code?: string;
13
- languageKey?: string | null;
14
- } | null;
15
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertFake;
16
- };
17
- };
18
- modals: {
19
- hasOpened: boolean;
20
- current: import("../../../modals").TModalName[];
21
- isModalReady: boolean;
22
- };
23
- notification: {
24
- viewedRewardDropIds: string[];
25
- viewedCampaignIds: string[];
26
- };
27
- prizeDrop: {
28
- campaigns: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
29
- activeCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
30
- displayedCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
31
- campaignsQueue: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
32
- prizeDropLiveShownCampaignIds: string[];
33
- apiLobbyInit: {
34
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitResponse;
35
- isPending: boolean;
36
- error: {
37
- name: string;
38
- message: string;
39
- code?: string;
40
- languageKey?: string;
41
- };
42
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitFake;
43
- };
44
- apiJoinCampaign: {
45
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignResponse;
46
- isPending: boolean;
47
- error: {
48
- name: string;
49
- message: string;
50
- code?: string;
51
- languageKey?: string;
52
- };
53
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignFake;
54
- };
55
- socketConnection?: {
56
- data: null;
57
- isPending: boolean;
58
- error: {
59
- name: string;
60
- message: string;
61
- code?: string;
62
- languageKey?: string;
63
- };
64
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TSocketPrizeDropFake;
65
- } & {
66
- isSuccess: boolean;
67
- };
68
- restData?: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TPrizeDropApiData;
69
- defferedCampaign?: import("../../../sockets").TPrizeDropSocketEventPayloadCampaignUpdated;
70
- };
71
- promoLobby: {
72
- activeScreen: import("../../../../app/model").TPromoLobbyScreen;
73
- topBarScreen: import("../../../../app/model/types").TPromoLobbyTopBarScreen | null;
74
- screenHistory: import("../../../../app/model/types").TPromoLobbyScreenHistoryEntry[];
75
- uiBlockers: import("../../../../app/model/types").TPromoLobbyUIBlocker[];
76
- lang: string | null;
77
- };
78
- rewards: {
79
- rewards: import("../../../../../../shared/model/prizeDrop").TReward[];
80
- rewardsQueue: import("../../../../entities/rewardsHub").TRewardQueueEntry[];
81
- winReward: import("../../../../../../shared/model/prizeDrop").TReward | null;
82
- hasDefferedRewardModal: boolean;
83
- apiRewardsList: {
84
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListResponse;
85
- isPending: boolean;
86
- error: {
87
- name: string;
88
- message: string;
89
- code?: string;
90
- languageKey?: string;
91
- } | null;
92
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListFake;
93
- };
94
- apiClaim: {
95
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimResponse;
96
- isPending: boolean;
97
- error: {
98
- name: string;
99
- message: string;
100
- code?: string;
101
- languageKey?: string;
102
- } | null;
103
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimFake;
104
- };
105
- };
106
- transaction: {
107
- transactions: import("../../../../entities/transaction").TTransaction[];
108
- hasMore: boolean;
109
- currentPage: number;
110
- apiTransactions: {
111
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsResponse;
112
- isPending: boolean;
113
- error: {
114
- name: string;
115
- message: string;
116
- code?: string;
117
- languageKey?: string | null;
118
- } | null;
119
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsFake;
120
- };
121
- };
122
- wallet: import("../../../../entities/wallet/model/walletSlice").TWalletState;
123
- };
2
+ export declare const getPreloadedState: (storePartial?: DeepPartial<TPromoLobbyRootStateBase>) => import("../../../../../../modules/promoLobby/app/store").TPromoLobbyRootState;
@@ -1,246 +1,22 @@
1
1
  import { TPromoLobbyRootStateBase } from '../../../../../../modules/promoLobby/app/store';
2
2
  export declare const setupTestStore: (storePartial?: DeepPartial<TPromoLobbyRootStateBase>) => import("@reduxjs/toolkit").EnhancedStore<{
3
- convert: {
4
- amount: string;
5
- lastResultCash: string | null;
6
- apiConvert: {
7
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertResponse;
8
- isPending: boolean;
9
- error: {
10
- name: string;
11
- message: string;
12
- code?: string;
13
- languageKey?: string | null;
14
- } | null;
15
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertFake;
16
- };
17
- };
18
- modals: {
19
- hasOpened: boolean;
20
- current: import("../../../modals").TModalName[];
21
- isModalReady: boolean;
22
- };
23
- notification: {
24
- viewedRewardDropIds: string[];
25
- viewedCampaignIds: string[];
26
- };
27
- prizeDrop: {
28
- campaigns: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
29
- activeCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
30
- displayedCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
31
- campaignsQueue: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
32
- prizeDropLiveShownCampaignIds: string[];
33
- apiLobbyInit: {
34
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitResponse;
35
- isPending: boolean;
36
- error: {
37
- name: string;
38
- message: string;
39
- code?: string;
40
- languageKey?: string;
41
- };
42
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitFake;
43
- };
44
- apiJoinCampaign: {
45
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignResponse;
46
- isPending: boolean;
47
- error: {
48
- name: string;
49
- message: string;
50
- code?: string;
51
- languageKey?: string;
52
- };
53
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignFake;
54
- };
55
- socketConnection?: {
56
- data: null;
57
- isPending: boolean;
58
- error: {
59
- name: string;
60
- message: string;
61
- code?: string;
62
- languageKey?: string;
63
- };
64
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TSocketPrizeDropFake;
65
- } & {
66
- isSuccess: boolean;
67
- };
68
- restData?: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TPrizeDropApiData;
69
- defferedCampaign?: import("../../../sockets").TPrizeDropSocketEventPayloadCampaignUpdated;
70
- };
71
- promoLobby: {
72
- activeScreen: import("../../../../app/model").TPromoLobbyScreen;
73
- topBarScreen: import("../../../../app/model/types").TPromoLobbyTopBarScreen | null;
74
- screenHistory: import("../../../../app/model/types").TPromoLobbyScreenHistoryEntry[];
75
- uiBlockers: import("../../../../app/model/types").TPromoLobbyUIBlocker[];
76
- lang: string | null;
77
- };
78
- rewards: {
79
- rewards: import("../../../../../../shared/model/prizeDrop").TReward[];
80
- rewardsQueue: import("../../../../entities/rewardsHub").TRewardQueueEntry[];
81
- winReward: import("../../../../../../shared/model/prizeDrop").TReward | null;
82
- hasDefferedRewardModal: boolean;
83
- apiRewardsList: {
84
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListResponse;
85
- isPending: boolean;
86
- error: {
87
- name: string;
88
- message: string;
89
- code?: string;
90
- languageKey?: string;
91
- } | null;
92
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListFake;
93
- };
94
- apiClaim: {
95
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimResponse;
96
- isPending: boolean;
97
- error: {
98
- name: string;
99
- message: string;
100
- code?: string;
101
- languageKey?: string;
102
- } | null;
103
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimFake;
104
- };
105
- };
106
- transaction: {
107
- transactions: import("../../../../entities/transaction").TTransaction[];
108
- hasMore: boolean;
109
- currentPage: number;
110
- apiTransactions: {
111
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsResponse;
112
- isPending: boolean;
113
- error: {
114
- name: string;
115
- message: string;
116
- code?: string;
117
- languageKey?: string | null;
118
- } | null;
119
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsFake;
120
- };
121
- };
3
+ convert: import("../../../../entities/convert/model/convertSlice").TConvertState;
4
+ modals: import("../../../modals/modalsSlice").TModalsState;
5
+ notification: import("../../../../entities/notification/model/notificationSlice").TNotificationState;
6
+ prizeDrop: import("../../../../entities/prizeDrop/model/types").TPrizeDropState;
7
+ promoLobby: import("../../../../app/model/promoLobbySlice").TPromoLobbyState;
8
+ rewards: import("../../../../entities/rewardsHub/model/rewardsSlice").TRewardsState;
9
+ transaction: import("../../../../entities/transaction/model/transactionSlice").TTransactionState;
122
10
  wallet: import("../../../../entities/wallet/model/walletSlice").TWalletState;
123
11
  }, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
124
12
  dispatch: import("redux-thunk").ThunkDispatch<{
125
- convert: {
126
- amount: string;
127
- lastResultCash: string | null;
128
- apiConvert: {
129
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertResponse;
130
- isPending: boolean;
131
- error: {
132
- name: string;
133
- message: string;
134
- code?: string;
135
- languageKey?: string | null;
136
- } | null;
137
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiWalletConvertFake;
138
- };
139
- };
140
- modals: {
141
- hasOpened: boolean;
142
- current: import("../../../modals").TModalName[];
143
- isModalReady: boolean;
144
- };
145
- notification: {
146
- viewedRewardDropIds: string[];
147
- viewedCampaignIds: string[];
148
- };
149
- prizeDrop: {
150
- campaigns: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
151
- activeCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
152
- displayedCampaign?: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign;
153
- campaignsQueue: import("../../../../../../shared/model/prizeDrop").TPrizeDropCampaign[];
154
- prizeDropLiveShownCampaignIds: string[];
155
- apiLobbyInit: {
156
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitResponse;
157
- isPending: boolean;
158
- error: {
159
- name: string;
160
- message: string;
161
- code?: string;
162
- languageKey?: string;
163
- };
164
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropLobbyInitFake;
165
- };
166
- apiJoinCampaign: {
167
- data: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignResponse;
168
- isPending: boolean;
169
- error: {
170
- name: string;
171
- message: string;
172
- code?: string;
173
- languageKey?: string;
174
- };
175
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TApiPrizeDropJoinCampaignFake;
176
- };
177
- socketConnection?: {
178
- data: null;
179
- isPending: boolean;
180
- error: {
181
- name: string;
182
- message: string;
183
- code?: string;
184
- languageKey?: string;
185
- };
186
- fake: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TSocketPrizeDropFake;
187
- } & {
188
- isSuccess: boolean;
189
- };
190
- restData?: import("../../../../../../shared/api/modules/promoLobby/prizeDrop").TPrizeDropApiData;
191
- defferedCampaign?: import("../../../sockets").TPrizeDropSocketEventPayloadCampaignUpdated;
192
- };
193
- promoLobby: {
194
- activeScreen: import("../../../../app/model").TPromoLobbyScreen;
195
- topBarScreen: import("../../../../app/model/types").TPromoLobbyTopBarScreen | null;
196
- screenHistory: import("../../../../app/model/types").TPromoLobbyScreenHistoryEntry[];
197
- uiBlockers: import("../../../../app/model/types").TPromoLobbyUIBlocker[];
198
- lang: string | null;
199
- };
200
- rewards: {
201
- rewards: import("../../../../../../shared/model/prizeDrop").TReward[];
202
- rewardsQueue: import("../../../../entities/rewardsHub").TRewardQueueEntry[];
203
- winReward: import("../../../../../../shared/model/prizeDrop").TReward | null;
204
- hasDefferedRewardModal: boolean;
205
- apiRewardsList: {
206
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListResponse;
207
- isPending: boolean;
208
- error: {
209
- name: string;
210
- message: string;
211
- code?: string;
212
- languageKey?: string;
213
- } | null;
214
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsListFake;
215
- };
216
- apiClaim: {
217
- data: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimResponse;
218
- isPending: boolean;
219
- error: {
220
- name: string;
221
- message: string;
222
- code?: string;
223
- languageKey?: string;
224
- } | null;
225
- fake: import("../../../../../../shared/api/modules/promoLobby/rewards").TApiRewardsClaimFake;
226
- };
227
- };
228
- transaction: {
229
- transactions: import("../../../../entities/transaction").TTransaction[];
230
- hasMore: boolean;
231
- currentPage: number;
232
- apiTransactions: {
233
- data: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsResponse;
234
- isPending: boolean;
235
- error: {
236
- name: string;
237
- message: string;
238
- code?: string;
239
- languageKey?: string | null;
240
- } | null;
241
- fake: import("../../../../../../shared/api/modules/promoLobby/wallet").TApiTransactionsFake;
242
- };
243
- };
13
+ convert: import("../../../../entities/convert/model/convertSlice").TConvertState;
14
+ modals: import("../../../modals/modalsSlice").TModalsState;
15
+ notification: import("../../../../entities/notification/model/notificationSlice").TNotificationState;
16
+ prizeDrop: import("../../../../entities/prizeDrop/model/types").TPrizeDropState;
17
+ promoLobby: import("../../../../app/model/promoLobbySlice").TPromoLobbyState;
18
+ rewards: import("../../../../entities/rewardsHub/model/rewardsSlice").TRewardsState;
19
+ transaction: import("../../../../entities/transaction/model/transactionSlice").TTransactionState;
244
20
  wallet: import("../../../../entities/wallet/model/walletSlice").TWalletState;
245
21
  }, undefined, import("redux").UnknownAction>;
246
22
  }>, import("redux").StoreEnhancer]>>;
@@ -1,6 +1,6 @@
1
1
  import { TPromoLobbyThunkAction } from '../lib/types';
2
2
  export type TModalName = 'promoLobby' | 'prizeDropCongratulation' | 'prizeDropClaimed' | 'prizeDropClaimedSuccess' | 'prizeDropClaimedFailed' | 'prizeDropClaimedExpired' | 'prizeDropSuccess' | 'prizeDropResultFinished' | 'prizeDropResultCancelled' | 'prizeDropLive' | 'prizeDropJoinError' | 'walletConvertSuccess';
3
- type TModalsState = {
3
+ export type TModalsState = {
4
4
  hasOpened: boolean;
5
5
  current: TModalName[];
6
6
  isModalReady: boolean;
@@ -18,4 +18,3 @@ export declare const getModalsIsModalMode: import("reselect").Selector<{
18
18
  export declare const modalsReducer: import("redux").Reducer<TModalsState>;
19
19
  export declare const openModal: TPromoLobbyThunkAction<TModalName>;
20
20
  export declare const closeModal: TPromoLobbyThunkAction<TModalName>;
21
- export {};
@@ -18,6 +18,7 @@ import { TApiRoundPlayFake } from '../shared/api/round/play';
18
18
  import { TApiRoundReplayFake } from '../shared/api/round/replay';
19
19
  import { TApiRoundsHistoryFake } from '../shared/api/roundsHistory';
20
20
  import { TLoggerConfig } from '../shared/lib/classes';
21
+ import { TAppearanceConfig, TLoadingSpinner } from '../shared/model/appearance';
21
22
  import { TAutoPlayConfig } from '../shared/model/autoplay';
22
23
  import { TBonusConfig } from '../shared/model/bonus';
23
24
  import { TFastPlayConfig } from '../shared/model/fastplay';
@@ -60,6 +61,10 @@ export type TSandboxConfig = {
60
61
  stepProgress: number;
61
62
  stepDuration: number;
62
63
  };
64
+ preloader: {
65
+ customLogoUrl?: string;
66
+ loadingSpinner?: TLoadingSpinner;
67
+ };
63
68
  steps: string;
64
69
  };
65
70
  export type TModulesConfig = TInitConfig['modules'];
@@ -129,6 +134,7 @@ export type TStoredConfigs = {
129
134
  autoPlay: TAutoPlayConfig;
130
135
  fastPlay: TFastPlayConfig;
131
136
  topLine: TTopLineConfig;
137
+ appearance: TAppearanceConfig;
132
138
  payTable: TPayTableConfig;
133
139
  payTableBackground: string;
134
140
  gameInfo: TGameInfoConfig;
@@ -183,6 +189,7 @@ declare class ConfigManager {
183
189
  getSkip(): TSkipConfig;
184
190
  getAutoPlay(): TAutoPlayConfig;
185
191
  getTopLine(): TTopLineConfig;
192
+ getAppearance(): TAppearanceConfig;
186
193
  getSounds(): TSoundsConfig;
187
194
  getPayTable(): TPayTableConfig;
188
195
  getPayTableBackground(): string;
@@ -227,6 +234,7 @@ declare class ConfigManager {
227
234
  saveSkip(config?: TSkipConfig): void;
228
235
  saveAutoPlay(config?: TAutoPlayConfig): void;
229
236
  saveTopLine(config?: TTopLineConfig): void;
237
+ saveAppearance(config?: TAppearanceConfig): void;
230
238
  savePayTable(config?: TStoredPayTableConfig | TPayTableConfig, forceUpdate?: boolean): void;
231
239
  savePayTableBackground(config: string): void;
232
240
  saveGameInfo(config?: TGameInfoConfig): void;
@@ -0,0 +1,2 @@
1
+ import type { GUI } from '../../../../sandbox/gui/gui';
2
+ export declare function setupAppearance(gui: GUI): void;
@@ -302,6 +302,9 @@ export declare const useAppDispatch: import("react-redux").UseDispatch<import("r
302
302
  topLine: {
303
303
  config: import("../../../index").TTopLineConfig;
304
304
  };
305
+ appearance: {
306
+ loadingSpinner: import("../../model/appearance").TLoadingSpinner;
307
+ };
305
308
  fillFrame: {
306
309
  config: {
307
310
  enabled: boolean;
@@ -630,6 +633,9 @@ export declare const useAppSelector: import("react-redux").UseSelector<{
630
633
  topLine: {
631
634
  config: import("../../../index").TTopLineConfig;
632
635
  };
636
+ appearance: {
637
+ loadingSpinner: import("../../model/appearance").TLoadingSpinner;
638
+ };
633
639
  fillFrame: {
634
640
  config: {
635
641
  enabled: boolean;
@@ -302,6 +302,9 @@ export declare const getPreloadedState: (storePartial?: DeepPartial<TRootState>)
302
302
  topLine: {
303
303
  config: import("../../../../index").TTopLineConfig;
304
304
  };
305
+ appearance: {
306
+ loadingSpinner: import("../../../model/appearance").TLoadingSpinner;
307
+ };
305
308
  fillFrame: {
306
309
  config: {
307
310
  enabled: boolean;
@@ -302,6 +302,9 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
302
302
  topLine: {
303
303
  config: import("../../../../index").TTopLineConfig;
304
304
  };
305
+ appearance: {
306
+ loadingSpinner: import("../../../model/appearance").TLoadingSpinner;
307
+ };
305
308
  fillFrame: {
306
309
  config: {
307
310
  enabled: boolean;
@@ -630,6 +633,9 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
630
633
  topLine: {
631
634
  config: import("../../../../index").TTopLineConfig;
632
635
  };
636
+ appearance: {
637
+ loadingSpinner: import("../../../model/appearance").TLoadingSpinner;
638
+ };
633
639
  fillFrame: {
634
640
  config: {
635
641
  enabled: boolean;
@@ -0,0 +1 @@
1
+ export type { TAppearanceConfig, TLoadingSpinner } from './types';
@@ -0,0 +1,4 @@
1
+ export type TLoadingSpinner = 'circle' | 'square';
2
+ export type TAppearanceConfig = {
3
+ loadingSpinner?: TLoadingSpinner;
4
+ };
@@ -2,6 +2,7 @@ import { TAdaptiveImage } from '../../../shared/lib/types/image';
2
2
  import { EVersion } from '../../../shared/lib/types/theme';
3
3
  export type TLoadingDefaultConfig = {
4
4
  version: `${EVersion.default}`;
5
+ customLogo?: string;
5
6
  };
6
7
  export type TLoadingProConfig = {
7
8
  version: `${EVersion.pro}`;
@@ -10,5 +11,6 @@ export type TLoadingProConfig = {
10
11
  progressBarFilling: string;
11
12
  progressBarMask?: string;
12
13
  background?: string | TAdaptiveImage;
14
+ customLogo?: string;
13
15
  };
14
16
  export type TLoadingConfig = TLoadingDefaultConfig | TLoadingProConfig;
@@ -26,4 +26,5 @@ export type TTopLineConfig = {
26
26
  count: number;
27
27
  };
28
28
  showRTP?: boolean;
29
+ customLogo?: string;
29
30
  };
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ type TProps = {
3
+ customLogo: string;
4
+ className?: string;
5
+ };
6
+ export declare const CustomLogoBlock: FC<TProps>;
7
+ export {};
@@ -0,0 +1 @@
1
+ export { CustomLogoBlock } from './CustomLogoBlock';
@@ -25,3 +25,4 @@ declare const meta: {
25
25
  export default meta;
26
26
  type TStory = StoryObj<typeof meta>;
27
27
  export declare const Default: TStory;
28
+ export declare const CircleSpinner: TStory;
@@ -1,6 +1,9 @@
1
1
  type TProgressBarProProps = {
2
2
  progress: number;
3
3
  onTransitionEnd: () => void;
4
+ /** Bar size in design-grid px — both images and the mask follow it. */
5
+ width?: number;
6
+ height?: number;
4
7
  };
5
- export declare const ProgressBarPro: ({ progress, onTransitionEnd }: TProgressBarProProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const ProgressBarPro: ({ progress, onTransitionEnd, width, height }: TProgressBarProProps) => import("react/jsx-runtime").JSX.Element;
6
9
  export {};
@@ -1,9 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react';
2
2
  declare const meta: {
3
3
  title: string;
4
- component: ({ progress, onTransitionEnd }: {
4
+ component: ({ progress, onTransitionEnd, width, height }: {
5
5
  progress: number;
6
6
  onTransitionEnd: () => void;
7
+ width?: number;
8
+ height?: number;
7
9
  }) => import("react/jsx-runtime").JSX.Element;
8
10
  decorators: (((Story: import("@storybook/core/csf").PartialStoryFn<import("@storybook/react").ReactRenderer>, { parameters }: {
9
11
  parameters: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truelab/truelogic",
3
- "version": "3.15.0",
3
+ "version": "3.16.0",
4
4
  "description": "",
5
5
  "main": "./dist/truelogic.min.js",
6
6
  "types": "./dist/types/src/index.d.ts",
@@ -70,7 +70,7 @@
70
70
  "@kitschpatrol/tweakpane-image-plugin": "^2.0.0",
71
71
  "@pangenerator/tweakpane-textarea-plugin": "^2.0.0",
72
72
  "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
73
- "@reduxjs/toolkit": "^2.5.0",
73
+ "@reduxjs/toolkit": "^2.12.0",
74
74
  "@storybook/addon-essentials": "^8.4.7",
75
75
  "@storybook/addon-interactions": "^8.4.7",
76
76
  "@storybook/addon-onboarding": "^8.4.7",
@@ -127,7 +127,7 @@
127
127
  "prettier": "^3.2.5",
128
128
  "prettier-plugin-tailwindcss": "^0.5.13",
129
129
  "raw-loader": "^4.0.2",
130
- "react-redux": "^9.2.0",
130
+ "react-redux": "^9.3.0",
131
131
  "react-refresh": "^0.14.0",
132
132
  "resolve-url-loader": "^5.0.0",
133
133
  "sass": "^1.100.0",