@truelab/truelogic 0.1.21 → 0.1.22

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.
@@ -1,3 +1,4 @@
1
+ import { TAppThunkAction } from "../../../shared/lib/store";
1
2
  type TAutoPlayLimit = {
2
3
  active: boolean;
3
4
  value: number;
@@ -24,13 +25,14 @@ type TAutoPlayState = {
24
25
  fastPlay?: number;
25
26
  };
26
27
  };
27
- export declare const setAutoPlayVisibleDropdown: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayVisibleDropdown">, setAutoPlayStart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"autoPlay/setAutoPlayStart">, setAutoPlayActiveIndex: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "autoPlay/setAutoPlayActiveIndex">, setAutoPlayActiveNumber: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "autoPlay/setAutoPlayActiveNumber">, setAutoPlayProgress: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayProgress">, setAutoPlayStopInBonusGame: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayStopInBonusGame">, setAutoPlayLossLimit: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlayLossLimit">, setAutoPlaySingleWin: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlaySingleWin">, setAutoPlayEnd: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"autoPlay/setAutoPlayEnd">, calcAutoPlayLossLimit: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
28
+ export declare const setAutoPlayVisibleDropdown: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayVisibleDropdown">, setAutoPlayIsActive: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayIsActive">, setAutoPlayActiveIndex: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "autoPlay/setAutoPlayActiveIndex">, setAutoPlayActiveNumber: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "autoPlay/setAutoPlayActiveNumber">, setAutoPlayProgress: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayProgress">, setAutoPlayStopInBonusGame: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayStopInBonusGame">, setAutoPlayLossLimit: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlayLossLimit">, setAutoPlaySingleWin: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlaySingleWin">, setAutoPlayEnd: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"autoPlay/setAutoPlayEnd">, calcAutoPlayLossLimit: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
28
29
  lossLimitValue: number;
29
- }, "autoPlay/calcAutoPlayLossLimit">, setAutoPlayConfig: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlayConfig">, decreaseAutoPlayNumber: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"autoPlay/decreaseAutoPlayNumber">;
30
+ }, "autoPlay/calcAutoPlayLossLimit">, setAutoPlayConfig: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"autoPlay/setAutoPlayConfig">, decreaseAutoPlayNumber: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"autoPlay/decreaseAutoPlayNumber">, setAutoPlayIsVisibleDropdown: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayIsVisibleDropdown">, setAutoPlayLossLimitTotal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "autoPlay/setAutoPlayLossLimitTotal">, setAutoPlayInProgress: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "autoPlay/setAutoPlayInProgress">;
30
31
  export declare const getAutoPlayIsReadyForStart: import("reselect").Selector<{
31
32
  autoPlay: TAutoPlayState;
32
33
  }, string | number | boolean, []> & {
33
34
  unwrapped: (state: TAutoPlayState) => string | number | boolean;
34
35
  };
35
36
  export declare const autoPlayReducer: import("redux").Reducer<TAutoPlayState>;
37
+ export declare const setAutoPlayStart: TAppThunkAction;
36
38
  export {};
@@ -1,7 +1,8 @@
1
+ /// <reference types="react" />
1
2
  type TAutoPlayCounterProps = {
2
3
  loaderColor: string;
3
4
  className?: string;
4
5
  text?: string;
5
6
  };
6
- export declare const AutoPlayCounter: ({ loaderColor, className, text }: TAutoPlayCounterProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const AutoPlayCounter: import("react").ForwardRefExoticComponent<TAutoPlayCounterProps & import("react").RefAttributes<HTMLButtonElement>>;
7
8
  export {};
@@ -24,7 +24,10 @@ export declare const getStakeType: import("reselect").Selector<{
24
24
  }, number[], []> & {
25
25
  unwrapped: (state: TStakeState) => number[];
26
26
  };
27
- export declare const setStake: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<"stake/setStake">, setStakeAmountsMapByLevels: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeAmountsMapByLevels, "stake/setStakeAmountsMapByLevels">, setStakeAmountsMap: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeAmountsMap, "stake/setStakeAmountsMap">, setStakeDefault: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStake, "stake/setStakeDefault">, setStakeModes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeMode[], "stake/setStakeModes">, setStakeLevels: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[], "stake/setStakeLevels">, setStakeIsVisibleDropdown: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "stake/setStakeIsVisibleDropdown">;
27
+ export declare const setStakeCurrent: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStake, "stake/setStakeCurrent">, setAmountIndex: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "stake/setAmountIndex">, setStakeAmountsMapByLevels: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeAmountsMapByLevels, "stake/setStakeAmountsMapByLevels">, setStakeAmountsMap: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeAmountsMap, "stake/setStakeAmountsMap">, setStakeDefault: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStake, "stake/setStakeDefault">, setStakeModes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TStakeMode[], "stake/setStakeModes">, setStakeLevels: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[], "stake/setStakeLevels">, setStakeIsVisibleDropdown: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "stake/setStakeIsVisibleDropdown">;
28
+ export declare const setStake: TAppThunkAction<Partial<TStake> & {
29
+ amountIndex?: number;
30
+ }>;
28
31
  export declare const setStakeNextLevel: TAppThunkAction;
29
32
  export declare const setStakePreviousLevel: TAppThunkAction;
30
33
  export declare const setStakeNextAmount: TAppThunkAction;
@@ -58,6 +58,7 @@ export type TSessionSettings = {
58
58
  mode: TSessionMode;
59
59
  partner: string;
60
60
  brand: string;
61
+ theme: string;
61
62
  user: string;
62
63
  bets: TBets;
63
64
  stakeModes: TStakeMode[];
@@ -0,0 +1,42 @@
1
+ export declare enum EAnalyticsEvents {
2
+ modeReal = "mode_real",
3
+ modeDemo = "mode_demo",
4
+ win = "win",
5
+ lost = "lost",
6
+ replay = "replay",
7
+ pageview = "page_view",
8
+ leaveTheGame = "leave_the_game",
9
+ soundSetup = "sound_setup",
10
+ betsizeIncreased = "betsize_increased",
11
+ betsizeReduced = "betsize_reduced",
12
+ autoplayStarts = "autoplay_starts",
13
+ modeSkip = "mode_skip",
14
+ realityCheck = "reality_check",
15
+ volumeSetup = "volume_setup",
16
+ fastPlay = "fast_play",
17
+ isPortrait = "portrait",
18
+ isLandscape = "landscape",
19
+ setUserId = "userIdSet",
20
+ setOperator = "operatorIdSet",
21
+ setBrand = "brandIdSet",
22
+ setSession = "setSession",
23
+ setCurrency = "currency"
24
+ }
25
+ export declare enum EAnalyticsCategories {
26
+ settings = "settings_changes",
27
+ ui = "ui_interaction",
28
+ gameplay = "gameplay_events",
29
+ mode = "game_mode",
30
+ config = "session_config"
31
+ }
32
+ export type TEventOptions = {
33
+ value?: number;
34
+ betType?: string;
35
+ currency?: string;
36
+ };
37
+ export declare class AnalyticsService {
38
+ available: boolean;
39
+ setSessionParameters(event: EAnalyticsEvents, name: string, value: string): void;
40
+ view(title: string, location: string, path: string): void;
41
+ event(event: EAnalyticsEvents, category: EAnalyticsCategories, options?: TEventOptions): void;
42
+ }
@@ -6,6 +6,7 @@ export declare class Logger {
6
6
  log(partials: TLoggerOutput[]): void;
7
7
  publicEvent(eventName: string, ...args: unknown[]): void;
8
8
  gameEvent(eventName: string, ...args: unknown[]): void;
9
+ analyticsEvent(eventName: string, ...args: unknown[]): void;
9
10
  error(...args: unknown[]): void;
10
11
  hello(): void;
11
12
  }
@@ -11,4 +11,5 @@ export { keys } from './keys';
11
11
  export { preloadImage } from './preloadImage';
12
12
  export { roundFixed } from './roundFixed';
13
13
  export { saveToClipboard } from './saveToClipboard';
14
+ export { setupGoogleAnalytics } from './setupGoogleAnalytics';
14
15
  export { sleep } from './sleep';
@@ -0,0 +1,5 @@
1
+ export type TGoogleAnlyticsConfig = {
2
+ enabled: boolean;
3
+ key?: string;
4
+ };
5
+ export declare const setupGoogleAnalytics: (config?: TGoogleAnlyticsConfig) => Promise<string>;
@@ -1,3 +1,4 @@
1
+ export { useAnalyticsEvents } from './useAnalyticsEvents';
1
2
  export { useClickOutside } from './useClickOutside';
2
3
  export { useDebounce } from './useDebounce';
3
4
  export { useElementInViewPort } from './useElementInViewPort';
@@ -0,0 +1 @@
1
+ export declare const useAnalyticsEvents: () => void;
@@ -1,2 +1,2 @@
1
1
  import { ForwardedRef, RefObject } from 'react';
2
- export declare const useClickOutside: <T extends HTMLElement = HTMLElement, E extends HTMLElement = HTMLElement>(ref: RefObject<T>, onClick: (event: MouseEvent | TouchEvent) => void, excludeRef?: ForwardedRef<E>) => void;
2
+ export declare const useClickOutside: (refs: (RefObject<HTMLElement> | ForwardedRef<HTMLElement>)[], onClick: (event: MouseEvent | TouchEvent) => void) => void;
@@ -0,0 +1,34 @@
1
+ import { TSessionMode } from "../../api/config";
2
+ import { Emitter } from '../classes';
3
+ import { TOrientation } from '../types/viewPort';
4
+ type TEventOptions = {
5
+ value?: number;
6
+ betType?: string;
7
+ currency?: string;
8
+ };
9
+ export type TAnalyticsEvents = {
10
+ ['modal:opened']: (modalName: string) => void;
11
+ ['round:won']: (options: TEventOptions) => void;
12
+ ['round:lost']: (options: TEventOptions) => void;
13
+ ['autoplay:started']: (options: TEventOptions) => void;
14
+ ['bet:increased']: (amountIndex: number) => void;
15
+ ['bet:decreased']: (amountIndex: number) => void;
16
+ ['game:left']: () => void;
17
+ ['gameMode:set']: (gameMode: TSessionMode) => void;
18
+ ['skip:started']: () => void;
19
+ ['reality:started']: () => void;
20
+ ['sounds:changed']: (on: boolean) => void;
21
+ ['volume:changed']: (volume: number) => void;
22
+ ['fastplay:changed']: (on: boolean) => void;
23
+ ['orientation:changed']: (orientation: TOrientation) => void;
24
+ ['userId:set']: (userId: string) => void;
25
+ ['operator:set']: (operator: string) => void;
26
+ ['brand:set']: (brand: string) => void;
27
+ ['session:set']: (session: string) => void;
28
+ ['currency:set']: (currency: string) => void;
29
+ };
30
+ export declare class AnalyticsEmitter extends Emitter<TAnalyticsEvents> {
31
+ log(event: string, ...args: unknown[]): void;
32
+ }
33
+ export declare const analyticsEmitter: AnalyticsEmitter;
34
+ export {};
@@ -0,0 +1,2 @@
1
+ import { AnalyticsService } from '../classes/analyticsService';
2
+ export declare const analyticsService: AnalyticsService;
@@ -8,6 +8,7 @@ export type TInitResponse = {
8
8
  client: unknown;
9
9
  translations: TTranslations;
10
10
  test: boolean;
11
+ theme: string;
11
12
  };
12
13
  export type TGameReadyResponse = {
13
14
  sound: TSoundResponse;
@@ -1,3 +1,5 @@
1
+ export { analyticsEmitter } from './analyticsEmitter';
2
+ export { analyticsService } from './analyticsService';
1
3
  export { api } from './api';
2
4
  export { cashService } from './cashService';
3
5
  export { gameEmitter } from './gameEmitter';
@@ -12,6 +12,7 @@ import { TMenuConfig } from '../../modals';
12
12
  import { TColorThemeState } from '../../model/colorTheme';
13
13
  import { EVolatility } from '../../volatility';
14
14
  import { Emitter } from '../classes';
15
+ import { TGoogleAnlyticsConfig } from '../functions/setupGoogleAnalytics';
15
16
  export type TAdaptiveImage = {
16
17
  portrait: string;
17
18
  landscape: string;
@@ -124,6 +125,9 @@ export type TInitConfig = {
124
125
  roundsHistory?: TApiRoundsHistoryFake;
125
126
  roundReplay?: TApiRoundReplayFake;
126
127
  };
128
+ analytics?: {
129
+ google?: TGoogleAnlyticsConfig;
130
+ };
127
131
  };
128
132
  export type TConfiguration = {
129
133
  loading: TUILoading;
@@ -1,4 +1,5 @@
1
1
  import { TConfiguration } from "../../lib/singletones/publicEmitter";
2
+ import { TAppThunkAction } from "../../lib/store";
2
3
  import { TMenuConfig } from "../../modals";
3
4
  export type TAutoplayServiceModalType = 'numSpins' | 'lossLimit' | 'singleWinLimit' | 'bonusReached';
4
5
  export type TModalName = 'menu' | 'bonusFeature' | 'autoplay' | 'bonusConfirm' | 'realityCheck' | 'settings' | 'payTable' | 'roundsHistory' | 'roundDetails' | 'replay' | 'serviceMaxBet' | 'serviceInsufficientFunds' | 'serviceRestore' | 'serviceMaxWin' | 'serviceQuitTheGame' | 'serviceConnectionLost' | 'serviceError' | 'serviceAutoplay' | 'gameInfo' | 'freeRounds' | 'freeRoundsResult';
@@ -14,14 +15,15 @@ type TModalsState = {
14
15
  serviceErrorMessage: string;
15
16
  serviceAutoplayType: TAutoplayServiceModalType;
16
17
  };
17
- export declare const openModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/openModal">, closeModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/closeModal">, setModalConfigs: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TConfiguration, "modals/setModalConfigs">, setModalReady: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"modals/setModalReady">, setModalsServiceErrorData: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
18
+ export declare const closeModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/closeModal">, setModalConfigs: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TConfiguration, "modals/setModalConfigs">, setModalReady: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"modals/setModalReady">, setModalsServiceErrorData: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
18
19
  name: string;
19
20
  message: string;
20
- }, "modals/setModalsServiceErrorData">, setModalsServiceAutoplayType: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TAutoplayServiceModalType, "modals/setModalsServiceAutoplayType">;
21
+ }, "modals/setModalsServiceErrorData">, setModalsServiceAutoplayType: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TAutoplayServiceModalType, "modals/setModalsServiceAutoplayType">, setIsModalReady: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setIsModalReady">, setHasOpened: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setHasOpened">, addCurrent: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/addCurrent">;
21
22
  export declare const getModalsIsModalMode: import("reselect").Selector<{
22
23
  modals: TModalsState;
23
24
  }, boolean, []> & {
24
25
  unwrapped: (state: TModalsState) => boolean;
25
26
  };
26
27
  export declare const modalsReducer: import("redux").Reducer<TModalsState>;
28
+ export declare const openModal: TAppThunkAction<TModalName>;
27
29
  export {};
@@ -3,13 +3,18 @@ import { TInitResponse } from './shared/lib/singletones/gameEmitter';
3
3
  import { TConfiguration, TInitConfig, TSpinEndedOptions, TStepEndedOptions } from './shared/lib/singletones/publicEmitter';
4
4
  declare class TrueLogic {
5
5
  emitter: {
6
- on: <K extends keyof import("./shared/lib/singletones/gameEmitter").TGameEvents>(event: K, listener: import("./shared/lib/singletones/gameEmitter").TGameEvents[K]) => import("./shared/lib/singletones/gameEmitter").GameEmitter;
6
+ game: {
7
+ on: <K extends keyof import("./shared/lib/singletones/gameEmitter").TGameEvents>(event: K, listener: import("./shared/lib/singletones/gameEmitter").TGameEvents[K]) => import("./shared/lib/singletones/gameEmitter").GameEmitter;
8
+ };
9
+ analytics: {
10
+ on: <K_1 extends keyof import("./shared/lib/singletones/analyticsEmitter").TAnalyticsEvents>(event: K_1, listener: import("./shared/lib/singletones/analyticsEmitter").TAnalyticsEvents[K_1]) => import("./shared/lib/singletones/analyticsEmitter").AnalyticsEmitter;
11
+ };
7
12
  };
8
13
  cashFormatter: {
9
14
  coinsToCash: (coins: number) => number;
10
15
  formatCoins: (coins: number, options?: import("./shared/lib/classes/cashService").TFormatCoinsOptions) => string;
11
16
  };
12
- init(initConfig: TInitConfig): Promise<TInitResponse>;
17
+ init(initConfig?: TInitConfig): Promise<TInitResponse>;
13
18
  configure(configuration: TConfiguration): Promise<unknown>;
14
19
  loadingStart(): void;
15
20
  loadingProgress(progress: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truelab/truelogic",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "",
5
5
  "main": "./dist/truelogic.min.js",
6
6
  "types": "./dist/types/src/truelogic.d.ts",