{"version":3,"file":"static/chunks/40634-8bf6fcb95905206c.js","sources":["webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdown.jsx","webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdown.container.js","webpack://_N_E/./src/LegacyApp/client/components/dropdown/dropdown.style.js","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/implementation/implementation.style.js","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/serverSeedInput/serverSeedInput.jsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/serverSeedInput/serverSeedInput.container.js","webpack://_N_E/./src/LegacyApp/client/components/settingsLayout/SettingsLayout.context.ts","webpack://_N_E/./src/LegacyApp/client/components/settingsLayout/SettingsLayout.desktop.tsx","webpack://_N_E/./src/LegacyApp/client/components/settingsLayout/SettingsLayout.mobile.tsx","webpack://_N_E/./src/LegacyApp/client/components/settingsLayout/settingsLayout.tsx","webpack://_N_E/./src/LegacyApp/client/components/slideDownBox/slideDownBox.style.ts","webpack://_N_E/./src/LegacyApp/client/components/slideDownBox/slideDownBox.tsx","webpack://_N_E/./src/LegacyApp/client/modules/app/checkHotkeysAllowed.ts","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/implementation/config.ts","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/implementation/GAMES_LIST.tsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/implementation/implementation.container.js","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/implementation/implementation.tsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/clientSeedInput/clientSeedInput.jsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/clientSeedInput/clientSeedInput.container.js","webpack://_N_E/./src/LegacyApp/client/pages/provablyFair.page/provablyFair.page.tsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/session/session.jsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/session/session.container.js","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/verification/verification.container.ts","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/verification/verification.tsx","webpack://_N_E/./src/LegacyApp/client/components/provablyFair/overview/index.tsx","webpack://_N_E/./src/LegacyApp/client/pages/provablyFair.page/ProvablyFair.global.styled.ts","webpack://_N_E/./src/LegacyApp/client/store.async/seed/seed.actions.js","webpack://_N_E/./src/LegacyApp/client/store.async/seed/seed.constants.js","webpack://_N_E/./src/LegacyApp/client/store/dropdown/dropdown.actions.js","webpack://_N_E/./src/common/components/storeControllers/GamesStoreController.tsx","webpack://_N_E/./src/common/components/storeControllers/SeedStoreController.tsx","webpack://_N_E/./src/common/controllers/subjectController.ts","webpack://_N_E/./src/common/methods/pageScrollTo.ts","webpack://_N_E/./src/modules/games/Game/store/gameAutobet/gameAutobet.actions.ts","webpack://_N_E/./src/modules/games/Game/store/gameAutobet/gameAutobet.selectors.ts","webpack://_N_E/./src/modules/games/Game/store/gameValidation/gameValidation.selectors.ts","webpack://_N_E/./src/modules/games/LimboGame/LimboCounter/LimboCounter.jsx","webpack://_N_E/./src/modules/games/PlinkoGame/components/MuliplierBoxes/MultiplierBox.tsx","webpack://_N_E/./src/modules/games/PlinkoGame/components/MuliplierBoxes/MultiplierBoxes.tsx","webpack://_N_E/./src/modules/games/PlinkoGame/components/MuliplierBoxes/multipliers.ts","webpack://_N_E/./src/modules/games/PlinkoGame/components/PlinkoResult/index.tsx","webpack://_N_E/./src/modules/games/PlinkoGame/components/playground/PixiJS/methods/getBallColor.ts","webpack://_N_E/./src/modules/games/PlinkoGame/components/playground/config/constants.ts","webpack://_N_E/./src/modules/games/PlinkoGame/components/playground/config/index.ts","webpack://_N_E/./src/modules/games/PlinkoGame/constants.ts"],"sourceRoot":"","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@ui/button';\nimport { DropdownArrow } from '@ui/dropdown/DropdownArrow';\nimport { InputStyleType } from '@uiTypes/InputStyleType';\nimport { ButtonStyleType } from '@uiTypes/ButtonStyleType';\nimport { jsonToString } from '@common/methods/jsonToString';\nimport { trans } from '../../modules/translation/translate';\nimport { enhanceComponent } from '../../wrappers/enhanceComponent';\nimport transactionService from '../../../../modules/transactions/transactionsService';\nimport { DropdownStyle } from './dropdown.style';\n\nclass Dropdown extends React.PureComponent {\n\tstatic propTypes = {\n\t\ttitle: PropTypes.any,\n\t\tclassName: PropTypes.string,\n\t\tlist: PropTypes.array,\n\t\tactive: PropTypes.any.isRequired,\n\t\tonClick: PropTypes.func,\n\t\twidth: PropTypes.any,\n\t\tclose: PropTypes.func,\n\t\tadd: PropTypes.func,\n\t\tshow: PropTypes.func,\n\t\tid: PropTypes.string.isRequired,\n\t\tget: PropTypes.func,\n\t\ttrans: PropTypes.bool,\n\t\thelp: PropTypes.any,\n\t\tlocalTheme: PropTypes.any,\n\t\tscrollElement: PropTypes.any,\n\t\tcssProp: PropTypes.any,\n\t\tisContent: PropTypes.bool,\n\t\tnamespace: PropTypes.string,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.addContent();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (\n\t\t\ttransactionService.isListDifferent(\n\t\t\t\tthis.props.list,\n\t\t\t\tprevProps.list,\n\t\t\t\tthis.props.list?.[0]?.id ? ['id'] : undefined,\n\t\t\t) ||\n\t\t\t(this.props.isContent !== prevProps.isContent && !this.props.isContent)\n\t\t) {\n\t\t\tthis.addContent();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.props.list) {\n\t\t\tthis.props.close(this.props.id);\n\t\t}\n\t}\n\n\taddContent = () => {\n\t\tif (!this.props.list) {\n\t\t\treturn;\n\t\t}\n\t\tconst lastContent = this.props.get(this.props.id);\n\t\tconst content = {\n\t\t\tscrollElement: this.props.scrollElement,\n\t\t\tcontent: this.props.list,\n\t\t\ttitle: this.props.title,\n\t\t\tonClick: this.props.onClick,\n\t\t\twidth: this.props.width,\n\t\t\tclassName: this.props.className,\n\t\t\tcss: this.props.cssProp,\n\t\t\ttrans: this.props.trans,\n\t\t};\n\t\tif (lastContent && jsonToString(content) === jsonToString(lastContent)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.props.add(this.props.id, content);\n\t};\n\n\thideList = () => {\n\t\tif (this.props.list) {\n\t\t\tthis.props.show(this.props.id, false);\n\t\t}\n\t};\n\n\tshowList = () => {\n\t\tif (this.props.list) {\n\t\t\tthis.props.show(this.props.id, true);\n\t\t}\n\t};\n\n\ttoggleList = () => {\n\t\tconsole.log('toggleList', this.props.id, {\n\t\t\tprops: this.props,\n\t\t});\n\t\tif (this.props.list) {\n\t\t\tthis.props.show(this.props.id);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst isActiveString = typeof this.props.active === 'string';\n\t\treturn (\n\t\t\t\n\t\t\t\t{isActiveString ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.list && }\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\tthis.props.active\n\t\t\t\t)}\n\t\t\t\t{this.props.help}\n\t\t\t\n\t\t);\n\t}\n}\n\nDropdown = enhanceComponent({\n\tDropdown,\n});\n\nexport { Dropdown };\n","import { connect } from 'react-redux';\nimport {\n\tdropdownAdd,\n\tdropdownDelete,\n\tdropdownGet,\n\tdropdownToggle,\n} from '../../store/dropdown/dropdown.actions';\nimport { Dropdown } from './dropdown';\n\nconst mapStateToProps = (state, props) => {\n\treturn {\n\t\tisContent: !!state.dropdown.content[props.id],\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tclose: (id) => dispatch(dropdownDelete(id)),\n\t\tadd: (id, content) =>\n\t\t\tdispatch(\n\t\t\t\tdropdownAdd({\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t}),\n\t\t\t),\n\t\tshow: (id, bool) =>\n\t\t\tdispatch(\n\t\t\t\tdropdownToggle({\n\t\t\t\t\tid,\n\t\t\t\t\tbool,\n\t\t\t\t}),\n\t\t\t),\n\t\tget: (id) => dispatch(dropdownGet(id)),\n\t};\n};\n\nconst DropdownContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(Dropdown);\n\nexport default DropdownContainer;\n","import styled, { css } from 'styled-components';\nimport { boxNoHeight } from '../../modules/style/defaults';\n\nconst getProps = (props) => {\n\tif (!props.localTheme || !Object.keys(props.localTheme).length) {\n\t\treturn '';\n\t}\n\tif (props.localTheme && props.localTheme.default) {\n\t\treturn css`\n\t\t\t.button {\n\t\t\t\tfont-family: ${(props) => props.theme.text.fonts.Bold};\n\t\t\t\theight: unset;\n\t\t\t\tmargin: 0 !important;\n\t\t\t\tpadding: 7px 15px;\n\n\t\t\t\t&.icon-wrapper {\n\t\t\t\t\tpadding-right: 30px;\n\n\t\t\t\t\ti,\n\t\t\t\t\tsvg {\n\t\t\t\t\t\tright: 10px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`;\n\t}\n};\n\nexport const DropdownStyle = styled.div.attrs(() => ({\n\tclassName: 'dropdown',\n}))`\n\t${boxNoHeight};\n\tposition: relative;\n\twidth: unset;\n\tpadding-bottom: 7px;\n\tmargin-bottom: -7px;\n\n\t* {\n\t\tcursor: pointer !important;\n\t}\n\n\t&[data-id*='when-name'] {\n\t\t* {\n\t\t\ttext-transform: capitalize;\n\t\t}\n\t}\n\n\t${(props) =>\n\t\tprops.localTheme?.error\n\t\t\t? css`\n\t\t\t\t\tbutton:first-of-type {\n\t\t\t\t\t\tborder: 1px solid red;\n\t\t\t\t\t}\n\t\t\t `\n\t\t\t: null}\n\n\t${getProps}\n`;\n","import styled from 'styled-components';\nimport { PrismLight as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { borderRadius } from '../../../modules/style/defaults';\nimport { fontSize } from '../../../modules/style/mixins/fontSize';\n\nexport const SyntaxStyle = styled(SyntaxHighlighter)`\n\tbackground: rgb(13 20 33) !important;\n\tborder: 3px solid rgb(8 35 72) !important;\n\tborder-radius: ${(props) => props.theme.layout.borderRadius}!important;\n\tbox-shadow: unset !important;\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n\t${fontSize({\n\t\timportant: true,\n\t\tsize: '10px',\n\t\tsizeDesktop: '12px',\n\t})};\n\n\tcode {\n\t\t${fontSize({\n\t\t\timportant: true,\n\t\t\tsize: '10px',\n\t\t\tsizeDesktop: '12px',\n\t\t})};\n\t\t${borderRadius};\n\t\tmargin-left: -20px;\n\t\tpadding: 10px;\n\n\t\t@media (min-width: ${(props) => props.theme.media.minWidthDesktop}) {\n\t\t\tpadding: 15px;\n\t\t}\n\t}\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@ui/button';\nimport { InputWrapperContainer } from '../../input/inputWrapper.container';\nimport { trans } from '../../../modules/translation/translate';\nimport SeedStoreController from '../../../../../common/components/storeControllers/SeedStoreController';\nimport { Loader } from '../../loader/loader';\n\nclass ServerSeedInput extends React.PureComponent {\n\tstatic propTypes = {\n\t\tvalue: PropTypes.any,\n\t\tonClick: PropTypes.func,\n\t\tchangeAsRedirect: PropTypes.bool,\n\t\tpauseAutobet: PropTypes.func,\n\t\tautobetPaused: PropTypes.bool,\n\t\tsetConfirm: PropTypes.func,\n\t\tgoTo: PropTypes.func,\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.props.pauseAutobet(true);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.props.pauseAutobet(false);\n\t}\n\n\tonClick = () => {\n\t\tif (this.props.changeAsRedirect) {\n\t\t\treturn this.props.goTo('provablyFair?tab=session');\n\t\t}\n\t\tif (this.props.autobetPaused) {\n\t\t\treturn this.props.setConfirm({\n\t\t\t\tcallback: this.props.onClick,\n\t\t\t\tquestion: trans({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'I am aware that changing my server seed hashed will affect next bets in current autobet session',\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\t\tthis.props.onClick();\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t,\n\t\t\t\t\t]}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t}\n}\n\nexport { ServerSeedInput };\n","import { connect } from 'react-redux';\nimport { autobetPause } from '@modules/games/Game/store/gameAutobet/gameAutobet.actions';\nimport { closeModal } from '@modules/modals/store/modal.actions';\nimport { setConfirm } from '../../../store/confirm/confirm.actions';\nimport { appGoTo } from '../../../store/app/app.actions';\nimport { seedRefreshServer } from '../../../store.async/seed/seed.actions';\nimport { ServerSeedInput } from './serverSeedInput';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tvalue: state.seed && state.seed.serverHashed,\n\t\tautobetPaused: state.gameAutobet?.pause,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tonClick: () => dispatch(seedRefreshServer()),\n\t\tpauseAutobet: (bool) => dispatch(autobetPause(bool)),\n\t\tsetConfirm: (data) => dispatch(setConfirm(data)),\n\t\tgoTo: (id, validUrl) => dispatch([closeModal(), appGoTo(id, validUrl)]),\n\t};\n};\n\nconst ServerSeedInputContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(ServerSeedInput);\n\nexport default ServerSeedInputContainer;\n","import { createContext } from 'react';\nimport { SettingsLayoutSection } from './settingsLayout';\n\nexport type SettingsLayoutContextGetSectionContent = (\n\tid: string,\n\tpanelName: () => string,\n\tisNarrow?: boolean,\n) => JSX.Element;\n\nexport const SettingsLayoutContext = createContext<{\n\tsections: SettingsLayoutSection[];\n\tactiveId: string;\n\tactiveTabData: SettingsLayoutSection;\n\thandleChangeSection: (section: SettingsLayoutSection) => void;\n\tgetSectionContent: SettingsLayoutContextGetSectionContent;\n}>({\n\tsections: [],\n\tactiveId: '',\n\tactiveTabData: null,\n\thandleChangeSection: null,\n\tgetSectionContent: null,\n});\n","import { FC, useContext } from 'react';\nimport { useUserIsLogged } from '@common/selectors/user.selectors';\nimport { trans } from '../../modules/translation/translate';\nimport { NotificationIcon } from '../notificationIcon/NotificationIcon';\nimport { SettingsLayoutContext } from './SettingsLayout.context';\n\nexport const SettingsLayoutDesktop: FC = () => {\n\tconst {\n\t\tsections,\n\t\tactiveId,\n\t\tactiveTabData,\n\t\tgetSectionContent,\n\t\thandleChangeSection,\n\t} = useContext(SettingsLayoutContext);\n\tconst isLogged = useUserIsLogged();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{sections.map((el) => {\n\t\t\t\t\tif ((el.isActive && !el.isActive()) || (!isLogged && el.isLogged)) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tconst className =\n\t\t\t\t\t\tactiveId === el.id ? 'active settings__button' : 'settings__button';\n\t\t\t\t\treturn (\n\t\t\t\t\t\t handleChangeSection(el)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{el.name && <>{trans({ label: el.name() })} }\n\t\t\t\t\t\t\t\t{el.nameComponent && <>{el.nameComponent()} }\n\t\t\t\t\t\t\t\t{!!el.notification && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\t{activeId &&\n\t\t\t\tgetSectionContent(\n\t\t\t\t\tactiveId,\n\t\t\t\t\tactiveTabData?.panelTitle,\n\t\t\t\t\tactiveTabData?.isNarrow,\n\t\t\t\t)}\n\t\t
\n\t);\n};\n","import { FC, useCallback, useContext } from 'react';\nimport { useUserIsLogged } from '@common/selectors/user.selectors';\nimport { SlideDownBox } from '../slideDownBox/slideDownBox';\nimport { trans } from '../../modules/translation/translate';\nimport { NotificationIcon } from '../notificationIcon/NotificationIcon';\nimport { SettingsLayoutContext } from './SettingsLayout.context';\nimport { SettingsLayoutSection } from './settingsLayout';\n\nconst SlideDownBoxElement: FC = (section) => {\n\tconst {\n\t\tid,\n\t\tname,\n\t\tnameComponent,\n\t\tnotification,\n\t\tisActive,\n\t\tisLogged,\n\t\tisNarrow,\n\t} = section;\n\n\tconst { activeId, getSectionContent, handleChangeSection } = useContext(\n\t\tSettingsLayoutContext,\n\t);\n\n\tconst isLogged_ = useUserIsLogged();\n\n\tconst content = useCallback(\n\t\t() => getSectionContent(id, undefined, isNarrow),\n\t\t[getSectionContent, id, isNarrow],\n\t);\n\n\tconst callback = useCallback(\n\t\t(isVisible) => {\n\t\t\tif (isVisible) {\n\t\t\t\thandleChangeSection(section);\n\t\t\t}\n\t\t},\n\t\t[section, handleChangeSection],\n\t);\n\n\treturn (isActive && !isActive()) || (!isLogged_ && isLogged) ? null : (\n\t\t (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{name && <>{trans({ label: name() })} }\n\t\t\t\t\t\t{nameComponent && <>{nameComponent()} }\n\t\t\t\t\t\t{!!notification && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\tContent={content}\n\t\t\tcallback={callback}\n\t\t\tisContentInitVisible={id === activeId}\n\t\t\tisContentVisible={id === activeId}\n\t\t/>\n\t);\n};\n\nexport const SettingsLayoutMobile: FC = () => {\n\tconst { sections } = useContext(SettingsLayoutContext);\n\treturn <>{sections.map(SlideDownBoxElement)};\n};\n","import { FC, useCallback, useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport { useUserIsLogged } from '@common/selectors/user.selectors';\nimport {\n\tuseAppInitialized,\n\tuseAppMobile,\n} from '@common/selectors/app.selectors';\nimport { useRouterQueryTab } from '@common/selectors/router.selectors';\nimport { openModal } from '@modules/modals/store/modal.actions';\nimport { ModalIdType } from '@common/constants/modal/ids.modal.constants';\nimport { useAppDispatch } from '../../../hooks/store/useAppDispatch';\nimport { updateUrlQuery } from '../../store/app/app.actions';\nimport { trans } from '../../modules/translation/translate';\nimport { SettingsLayoutDesktop } from './SettingsLayout.desktop';\nimport { SettingsLayoutMobile } from './SettingsLayout.mobile';\nimport { SettingsLayoutContext } from './SettingsLayout.context';\n\nexport interface SettingsLayoutSection {\n\tid: string;\n\tname?: () => string;\n\tnameComponent?: any;\n\tnotification?: string;\n\tisActive?: () => boolean;\n\tisLogged?: boolean;\n\tisNarrow?: boolean;\n\tonClick?: ({ el }: { el: SettingsLayoutSection }) => void;\n\tmodal?: boolean;\n\tpanelTitle?: () => string;\n}\n\nexport interface SettingsLayoutProps {\n\tsections: SettingsLayoutSection[];\n\tdefaultTab?: string;\n\tgetSectionContent: any;\n}\n\nexport const SettingsLayout: FC = ({\n\tsections,\n\tdefaultTab,\n\tgetSectionContent,\n}) => {\n\tconst [activeId, setActiveId] = useState('');\n\tconst [activeTabData, setActiveTabData] =\n\t\tuseState(null);\n\n\tconst dispatch = useAppDispatch();\n\n\tconst isLogged = useUserIsLogged();\n\tconst isMobile = useAppMobile();\n\tconst routerQueryTab = useRouterQueryTab();\n\tconst isInitialized = useAppInitialized();\n\n\tconst checkActiveTab_ = useCallback(() => {\n\t\tif (!sections.some((section) => section.id === routerQueryTab)) {\n\t\t\tdispatch(updateUrlQuery({ tab: defaultTab || sections?.[0]?.id }));\n\t\t}\n\t}, [defaultTab, dispatch, routerQueryTab, sections]);\n\n\tconst getSectionContent_ = useCallback(\n\t\t(id: string, panelName: () => string, isNarrow?: boolean) => {\n\t\t\tconst panelName_ = panelName ? (\n\t\t\t\t

\n\t\t\t\t\t{trans({ label: panelName() })}\n\t\t\t\t

\n\t\t\t) : null;\n\t\t\tconst content = getSectionContent(id);\n\t\t\tif (!content) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{panelName_}\n\t\t\t\t\t{content}\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[getSectionContent],\n\t);\n\n\tconst handleChangeSection_ = useCallback(\n\t\t(section: SettingsLayoutSection) => {\n\t\t\tif (section.onClick) {\n\t\t\t\treturn section.onClick({ el: section });\n\t\t\t}\n\t\t\tif (section.modal) {\n\t\t\t\tdispatch(openModal(section.id as ModalIdType, 'SettingsLayout'));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdispatch(updateUrlQuery({ tab: section.id }));\n\t\t\treturn;\n\t\t},\n\t\t[dispatch],\n\t);\n\n\tconst getSectionData_ = useCallback(\n\t\t(id) => {\n\t\t\t// console.log('settingsLayout - getSectionData_', { sections, id });\n\t\t\treturn sections.find((section) => section.id === id);\n\t\t},\n\t\t[sections],\n\t);\n\n\tconst getSections_ = useCallback(() => {\n\t\tlet activeId_ = '';\n\t\tlet activeTabData_: SettingsLayoutSection = null;\n\t\tif (isInitialized) {\n\t\t\tactiveTabData_ = getSectionData_(routerQueryTab);\n\t\t\tactiveId_ = activeTabData_?.id;\n\t\t\tif (!activeTabData_ || (activeTabData_?.isLogged && !isLogged)) {\n\t\t\t\tactiveTabData_ = getSectionData_(defaultTab || sections?.[0]?.id);\n\t\t\t\tactiveId_ = activeTabData_?.id;\n\t\t\t\tupdateUrlQuery({ tab: activeId_ });\n\t\t\t}\n\t\t\t// console.log('settingsLayout - getSections', {\n\t\t\t// \tactiveTabData_,\n\t\t\t// \tactiveTabData,\n\t\t\t// \tactiveId_,\n\t\t\t// \tdefaultTab,\n\t\t\t// \trouterQueryTab,\n\t\t\t// \tsections,\n\t\t\t// });\n\t\t}\n\t\treturn {\n\t\t\tactiveId: activeId_,\n\t\t\tactiveTabData: activeTabData_,\n\t\t};\n\t}, [\n\t\tdefaultTab,\n\t\tgetSectionData_,\n\t\tisInitialized,\n\t\tisLogged,\n\t\trouterQueryTab,\n\t\tsections,\n\t]);\n\n\tuseEffect(() => {\n\t\tcheckActiveTab_();\n\t}, [checkActiveTab_, dispatch, isInitialized]);\n\n\tuseEffect(() => {\n\t\tconst { activeId: activeId_, activeTabData: activeTabData_ } =\n\t\t\tgetSections_();\n\t\tif (activeId !== activeId_) {\n\t\t\tsetActiveId(activeId_);\n\t\t\tsetActiveTabData(activeTabData_);\n\t\t}\n\t}, [activeId, getSections_]);\n\n\t// console.log('SettingsLayout', { sections, activeId, activeTabData });\n\n\treturn (\n\t\t\n\t\t\t{isMobile ? : }\n\t\t\n\t);\n};\n","import styled, { css } from 'styled-components';\nimport classnames from 'classnames';\nimport { boxNoHeight } from '../../modules/style/defaults';\nimport { dashboard } from '../../modules/style/mixins/dashboard';\nimport { calcStyle } from '../../modules/style/methods/calcStyle';\n\nexport const SlideDownBoxStyle = styled.div.attrs((props) => ({\n\tclassName: classnames(props.className, 'slide-down__box'),\n}))<{\n\ttype?: string;\n\tnoDashboard?: boolean;\n}>`\n\t${boxNoHeight};\n\t${(props) =>\n\t\tprops.noDashboard\n\t\t\t? ''\n\t\t\t: dashboard(\n\t\t\t\t\t(padding) => css`\n\t\t\t\t\t\tmargin: 0 -${padding};\n\t\t\t\t\t\twidth: calc(100% + ${calcStyle({ a: padding, b: 2, mode: '*' })});\n\t\t\t\t\t`,\n\t\t\t )}\n\n\t&:last-of-type {\n\t\tmargin-bottom: -7px;\n\t}\n`;\n\nexport const SlideDownTitleStyle = styled.div.attrs((props) => ({\n\tclassName: classnames(props.className, 'slide-down__title'),\n}))<{\n\tisColor?: boolean;\n\tname: string;\n}>`\n\t${boxNoHeight};\n\tcursor: pointer;\n\tmargin-bottom: 0;\n\tmargin-top: 15px;\n\n\t&.icon-wrapper {\n\t\tpadding-right: 30px !important;\n\n\t\t[class*='icon'] {\n\t\t\tright: 13px;\n\t\t}\n\t}\n\n\t${(props) =>\n\t\tprops.isColor\n\t\t\t? `\n border-radius: ${props.theme.layout.borderRadius};\n background-color: ${props.theme.colors.inputButton};\n padding: 10px;\n `\n\t\t\t: ''}\n`;\n\nexport const SlideDownContentStyle = styled.div.attrs((props) => ({\n\tclassName: classnames(props.className, 'slide-down__content'),\n}))<{\n\tisActive: boolean;\n}>`\n\t${boxNoHeight};\n\tmax-height: ${(props) => (props.isActive ? '300vh' : '0')};\n\ttransition: ${(props) => (props.isActive ? '0.2s ease-in' : '0')};\n\toverflow: ${(props) => (props.isActive ? 'unset' : 'hidden')};\n\theight: auto;\n`;\n","import { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport classnames from 'classnames';\nimport { useAppMobile } from '@common/selectors/app.selectors';\nimport { pageScrollTo } from '@common/methods/pageScrollTo';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { usePrevious } from '../../../hooks/render/usePrevious';\nimport {\n\tSlideDownBoxStyle,\n\tSlideDownContentStyle,\n\tSlideDownTitleStyle,\n} from './slideDownBox.style';\n\nexport const SlideDownBox: FC<{\n\tTitle?: FC<{ active: boolean }>;\n\tContent?: FC;\n\tisColor?: boolean;\n\ttitleClasses?: string;\n\tcontentClasses?: string;\n\tisContentInitVisible?: boolean;\n\tisContentVisible?: boolean;\n\tcallback?: (isVisible: boolean) => void;\n\tnoScrollTo?: boolean;\n\tboxClasses?: string;\n\tnoDashboard?: boolean;\n\tname: string;\n}> = ({\n\tTitle,\n\tContent,\n\tisColor,\n\ttitleClasses,\n\tcontentClasses,\n\tisContentInitVisible,\n\tisContentVisible,\n\tcallback,\n\tboxClasses,\n\tnoDashboard,\n\tname,\n\tnoScrollTo,\n}) => {\n\tconst [_isVisible, setIsVisible] = useState(\n\t\tisTrueOrZero(isContentInitVisible) ? isContentInitVisible : false,\n\t);\n\tconst ref = useRef(null);\n\tconst timeoutRef = useRef(null);\n\tconst prevIsContentVisible = usePrevious(isContentVisible);\n\tconst isMobile = useAppMobile();\n\n\tconst handleClickTitle = useCallback(\n\t\t(event?: MouseEvent, isVisible?: boolean) => {\n\t\t\tif (isVisible === undefined) {\n\t\t\t\tisVisible = !_isVisible;\n\t\t\t}\n\t\t\tif (callback) {\n\t\t\t\tcallback(isVisible);\n\t\t\t}\n\t\t\tsetIsVisible(isVisible);\n\t\t\tif (isVisible && isMobile && ref?.current && !noScrollTo) {\n\t\t\t\tif (timeoutRef.current) {\n\t\t\t\t\tclearTimeout(timeoutRef.current);\n\t\t\t\t}\n\t\t\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\t\t\tpageScrollTo({ top: ref?.current?.offsetTop - 50 });\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t},\n\t\t[_isVisible, callback, isMobile, noScrollTo],\n\t);\n\n\tuseEffect(() => {\n\t\tif (isContentVisible !== prevIsContentVisible) {\n\t\t\thandleClickTitle(undefined, isContentVisible);\n\t\t}\n\t}, [isContentVisible, handleClickTitle, prevIsContentVisible]);\n\n\treturn (\n\t\t\n\t\t\t handleClickTitle()}\n\t\t\t\tisColor={isColor}\n\t\t\t\tclassName={classnames('icon-wrapper', titleClasses)}\n\t\t\t>\n\t\t\t\t{Title && }\n\t\t\t\t{Content && (\n\t\t\t\t\t<i\n\t\t\t\t\t\tclassName={classnames('icon__arrow-down', {\n\t\t\t\t\t\t\topened: _isVisible,\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</SlideDownTitleStyle>\n\t\t\t{Content && (\n\t\t\t\t<SlideDownContentStyle isActive={_isVisible} className={contentClasses}>\n\t\t\t\t\t{(_isVisible || !process.browser) && <Content />}\n\t\t\t\t</SlideDownContentStyle>\n\t\t\t)}\n\t\t</SlideDownBoxStyle>\n\t);\n};\n","export const checkHotkeysAllowed = (disableHotKeys: boolean): boolean => {\n\tif (disableHotKeys) {\n\t\treturn false;\n\t}\n\tif (!process.browser) {\n\t\treturn false;\n\t}\n\treturn !(\n\t\tdocument.activeElement &&\n\t\t['input', 'textarea'].indexOf(document.activeElement.localName) > -1\n\t);\n};\n","import { GameType } from '@modules/games/Game/constants/availableGames';\nimport { multiplyBlocksByLinesQnt } from '@modules/games/PlinkoGame/components/MuliplierBoxes/multipliers';\nimport { cardsArray } from '../../../modules/app/cardsService';\n\nexport const IMPLEMENTATION_CONFIG: Partial<\n\tRecord<\n\t\tGameType,\n\t\t{\n\t\t\tcode: string;\n\t\t\tdescription: Array<string>;\n\t\t\timplementation: string;\n\t\t}\n\t>\n> = {\n\t[GameType.DICE]: {\n\t\tcode: '5yrj0Lsw',\n\t\tdescription: [\n\t\t\t'To create a roll number, Wolfbet uses a multi-step process to create a roll number 0-99.99. Both client and server seeds and a nonce are combined with hmac-sha256(serverSeed, clientSeed_nonce) which will generate a hex string.',\n\t\t\t'The nonce is the # of rolls you made with the current seed pair. First five characters are taken from the hex string to create a roll number that is 0-1,048,575. If the roll number is over 999,999, the process is repeated with the next five characters skipping the previous set. This is done until a number less than 1,000,000 is achieved.',\n\t\t\t'In the astronomically unlikely event that all possible 5 character combinations are greater, 99.99 is used as the roll number. The resulting number 0-999,999 is applied a modulus of 10^4, to obtain a roll number 0-9999, and divided by 10^2 to result in a 0-99.99 number.',\n\t\t],\n\t\timplementation: `\n const verify = (server_seed, client_seed, nonce) => {\n const hash = CryptoJS.HmacSHA256('\n server_seed,\n \\`\\${client_seed}_\\${nonce}\\`,\n ).toString();\n let index = 0;\n let lucky = parseInt(hash.substr(index, 5), 16);\n while (lucky >= 1000000) {\n lucky = parseInt(hash.substr(index, 5), 16);\n index += 5;\n }\n return (lucky % 10000 / 100).toFixed(2);\n }\n `,\n\t},\n\t[GameType.HILO]: {\n\t\tcode: 'apmw5qkL',\n\t\tdescription: [\n\t\t\t'To generate series of cards, Wolfbet uses a multi-step process to draw randomized cards stream. Both client and server seeds with a nonce and subnonce are combined with hmac-sha256(serverSeed, clientSeed_nonce_subNonce) which will generate a hex string.',\n\t\t\t'The nonce is the # of every bet you made with the current seed pair. Subnocne is number which represents the position of the card in the stream. First eight characters are taken from the hex string to create a sum number that is 0-1. Then sum is multiplied by number of cards in tile, which is 52. Result rounded with floor function indicates card position from cards array.',\n\t\t],\n\t\timplementation: `\n const cards = [${cardsArray.map((el) => `'${el}'`).join(',')}];\n const verify = (server_seed, client_seed, nonce, sub_nonce) => {\n const betHash = CryptoJS.HmacSHA256(\n server_seed,\n \\`\\${client_seed}_\\${nonce}_\\${sub_nonce}\\`,\n ).toString();\n const floats = new Array(4).fill(0).map((el, index) => {\n return parseInt(betHash.substr(index * 2, 2), 16);\n });\n let sum = 0;\n floats.forEach((float, index) => {\n sum += round((float / Math.pow(256, index + 1)), 10);\n });\n return cards[round(sum * 52, 0, 'floor')];\n }\n `,\n\t},\n\t[GameType.LIMBO]: {\n\t\tcode: 'to75pgd9',\n\t\tdescription: [\n\t\t\t'To create a bet result, Wolfbet uses a multi-step process. Both client and server seeds and a nonce are combined with hmac-sha256(serverSeed, clientSeed_nonce_0) which will generate a hex string.',\n\t\t\t'The nonce is the # of every bet you made with the current seed pair. First eight characters are taken from the hex string to create a sum number that is 0-1. Then sum is multiplied by maximum possible multiplier to create float number which is normalized. Normalized float is multiplied by the house edge. Then, in order to generate a game event that has probability distribution, we divide the maximum possible multiplier by the result of the first step to create the crash point.',\n\t\t],\n\t\timplementation: `\n const verify = (server_seed, client_seed, nonce, sub_nonce) => {\n const betHash = CryptoJS.HmacSHA256(\n server_seed,\n \\`\\${client_seed}_\\${nonce}_0,\n ).toString();\n const floats = new Array(4).fill(0).map((el, index) => {\n return parseInt(betHash.substr(index * 2, 2), 16);\n });\n let sum = 0;\n floats.forEach((float, index) => {\n sum += round((float / Math.pow(256, index + 1)), 10);\n });\n\n // Sum multiplied by the maximum possible multiplier\n const float = sum * 1e8;\n // Make sure float is not zero\n const normalizedFloat = Math.max(float, 0.01)\n const floatPoint = 1e8 / normalizedFloat * 0.99\n // Make sure floatPoint is not higher than required\n const clampedFloatPoint = Math.min(floatPoint, 9900000)\n // Crash point rounded down to required denominator\n const crashPoint = Math.floor(clampedFloatPoint * 100) / 100;\n // Consolidate all crash points below 1\n return Math.max(crashPoint, 1);\n }\n `,\n\t},\n\t[GameType.PLINKO]: {\n\t\tcode: '3hrz4gam',\n\t\tdescription: [\n\t\t\t'To generate a plinko ball path, Wolfbet uses a multi-step process. Both client and server seeds with a nonce and subnonce are combined with hmac-sha256(serverSeed, clientSeed_nonce_subNonce) which will generate a hex string.',\n\t\t\t'The nonce is the # of every bet you made with the current seed pair. Subnocne is an index which represents the next row in plinko pyramid. First eight characters are taken from the hex string to create a sum number that is 0-1. Then sum is multiplied by number of possible directions which is 2. All row results rounded with floor function are summed and indicates payout index of box on which ball will land.',\n\t\t],\n\t\timplementation: `\n\t\tconst multipliers = {\n\t\t\t\t\t${Object.keys(multiplyBlocksByLinesQnt)\n\t\t\t\t\t\t.map((risk) => {\n\t\t\t\t\t\t\treturn `${risk}: {\n\t\t\t\t\t\t\t${Object.keys(multiplyBlocksByLinesQnt[risk]).map((lines) => {\n\t\t\t\t\t\t\t\treturn `${lines}: [${multiplyBlocksByLinesQnt[risk][lines].join(\n\t\t\t\t\t\t\t\t\t`,`,\n\t\t\t\t\t\t\t\t)}], `;\n\t\t\t\t\t\t\t}).join(`\n\t\t\t\t\t\t\t`)}\n\t\t\t\t\t},\n\t\t\t\t\t`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('')}\n\t\t}\n\n\t\t\t\tconst verify = (server_seed, client_seed, nonce, sub_nonce) => {\n const betHash = CryptoJS.HmacSHA256(\n server_seed,\n \\`\\${client_seed}_\\${nonce}_\\${sub_nonce}\\`,\n ).toString();\n const floats = new Array(4).fill(0).map((el, index) => {\n return parseInt(betHash.substr(index * 2, 2), 16);\n });\n let sum = 0;\n floats.forEach((float, index) => {\n sum += round((float / Math.pow(256, index + 1)), 10);\n });\n return round(sum * 2, 0, 'floor');\n }\n\n const generatePath = (server_seed, client_seed, nonce, rows, risk) => {\n\t\t\t\t\tconst path = [];\n\t\t\t\t\tlet outcome = rows;\n\t\t\t\t\tfor (let i = 0; i < rows; i++) {\n\t\t\t\t\t\tpath.push(verify(server_seed, client_seed, nonce, i));\n\t\t\t\t\t}\n\t\t\t\t\tconst payoutIndex = path.reduce((acc, el) => acc + el, 0);\n\t\t\t\t\treturn multipliers[risk][rows][payoutIndex];\n\t\t\t\t}\n `,\n\t},\n};\n","import { getGamesList } from '@modules/games/Game/methods/getGamesList';\n\nexport const GAMES_LIST = getGamesList().map((el) => el.toUpperCase());\n","import { connect } from 'react-redux';\nimport { formVerificationSetGame } from '../../../store/forms/forms.actions';\nimport { Implementation } from './implementation';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tgame: state.forms.bet_verification.game,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tsetGame: (game) => dispatch(formVerificationSetGame(game)),\n\t};\n};\n\nconst ImplementationContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(Implementation);\n\nexport { ImplementationContainer };\n","import React, { FC, useCallback } from 'react';\nimport { dark } from 'react-syntax-highlighter/dist/cjs/styles/prism';\nimport { Redirect } from '@common/components/default/Redirect/Redirect';\nimport { trans } from '../../../modules/translation/translate';\nimport { DropdownContainer } from '../../dropdown';\nimport { transProvablyFair } from '../../../pages/provablyFair.page/provablyFair.page';\nimport { SyntaxStyle } from './implementation.style';\nimport { IMPLEMENTATION_CONFIG } from './config';\nimport { GAMES_LIST } from './GAMES_LIST';\n\nexport const Implementation: FC<{\n\tgame: string;\n\tsetGame: (game: string) => void;\n}> = ({ game, setGame }) => {\n\tconst setGame_ = useCallback(\n\t\t(game) => setGame(game.toLowerCase()),\n\t\t[setGame],\n\t);\n\tconst { code, description, implementation } = IMPLEMENTATION_CONFIG[game] || {\n\t\tcode: null,\n\t\tdescription: null,\n\t\timplementation: null,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownContainer\n\t\t\t\tid={'provablyFairVerification'}\n\t\t\t\tlocalTheme={{\n\t\t\t\t\tdefault: true,\n\t\t\t\t}}\n\t\t\t\tlist={GAMES_LIST}\n\t\t\t\tactive={game.toUpperCase()}\n\t\t\t\tonClick={setGame_}\n\t\t\t/>\n\t\t\t{!!description?.length && (\n\t\t\t\t<div className=\"box-no-height\">\n\t\t\t\t\t{description.map((el, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tclassName=\"user-select-text margin-bottom text-style-sm-regular\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{transProvablyFair({ label: el })}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{implementation && (\n\t\t\t\t<div className=\"box-no-height user-select-text\">\n\t\t\t\t\t<SyntaxStyle language=\"javascript\" style={dark}>\n\t\t\t\t\t\t{implementation}\n\t\t\t\t\t</SyntaxStyle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"box-no-height\">\n\t\t\t\t{code && (\n\t\t\t\t\t<p className=\"user-select-text margin-top text-style-sm-regular\">\n\t\t\t\t\t\t{trans({ label: 'Example' })}:{' '}\n\t\t\t\t\t\t<Redirect\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\thref={`https://jsfiddle.net/suchijs/${code}/`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\thttps://jsfiddle.net/{game}Verify/\n\t\t\t\t\t\t</Redirect>\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t\t<p className=\"hint text-style-caption-regular\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{transProvablyFair({\n\t\t\t\t\t\t\tlabel: 'CryptoJS is a JavaScript package installed from',\n\t\t\t\t\t\t})}{' '}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Redirect\n\t\t\t\t\t\thref=\"https://npmjs.com/package/crypto-js\"\n\t\t\t\t\t\tclassName=\"text-underline\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t>\n\t\t\t\t\t\tnpmjs.com/package/crypto-js\n\t\t\t\t\t</Redirect>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputWrapperContainer } from '../../input/inputWrapper.container';\nimport { trans } from '../../../modules/translation/translate';\nimport SeedStoreController from '../../../../../common/components/storeControllers/SeedStoreController';\nimport { Loader } from '../../loader/loader';\nimport { Button } from '../../../../../ui/components/button';\n\nclass ClientSeedInput extends React.PureComponent {\n\tstatic propTypes = {\n\t\tvalue: PropTypes.any,\n\t\tonClick: PropTypes.func,\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SeedStoreController />\n\t\t\t\t<InputWrapperContainer\n\t\t\t\t\tvalue={this.props.value}\n\t\t\t\t\tname={'client-seed'}\n\t\t\t\t\tlabel={trans({ label: 'Current client seed' })}\n\t\t\t\t\tisDisabled={true}\n\t\t\t\t\tinputButtons={[\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={1}\n\t\t\t\t\t\t\tname=\"provably-fair-generate-new-client-seed\"\n\t\t\t\t\t\t\tonClick={this.props.onClick}\n\t\t\t\t\t\t\tlabel={trans({ label: 'Change' })}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Loader loader=\"reloadClientSeed\" />\n\t\t\t\t\t\t</Button>,\n\t\t\t\t\t]}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport { ClientSeedInput };\n","import { connect } from 'react-redux';\nimport { openModal } from '../../../../../modules/modals/store/modal.actions';\nimport { MODAL_ID } from '../../../../../common/constants/modal/ids.modal.constants';\nimport { ClientSeedInput } from './clientSeedInput';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tvalue: state.seed && state.seed.client,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tonClick: () => dispatch(openModal(MODAL_ID.CHANGE_CLIENT_SEED)),\n\t};\n};\n\nconst ClientSeedInputContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(ClientSeedInput);\n\nexport { ClientSeedInputContainer };\n","import React, { FC, useCallback } from 'react';\nimport {\n\tSettingsLayout,\n\tSettingsLayoutSection,\n} from '../../components/settingsLayout/settingsLayout';\nimport { createNamespaceTrans } from '../../modules/translation/translate';\nimport { ImplementationContainer } from '../../components/provablyFair/implementation';\nimport {\n\tSessionContainer,\n\tVerificationContainer,\n} from '../../components/provablyFair';\nimport { StyledMainDashboardV2 } from '../../modules/style/components/MainDashboard.styled';\nimport { TransNamespace } from '../../modules/translation/TransNamespace';\nimport { ProvableFairOverview } from '../../components/provablyFair/overview';\nimport { StyledProvablyFairGlobal } from './ProvablyFair.global.styled';\n\nexport const transProvablyFair = createNamespaceTrans(\n\tTransNamespace.PROVABLY_FAIR_PAGE,\n);\n\nenum SECTIONS {\n\tOVERVIEW = 'overview',\n\tSESSION = 'session',\n\tVERIFICATION = 'verification',\n\tIMPLEMENTATION = 'implementation',\n}\n\nconst SECTIONS_CONFIG: SettingsLayoutSection[] = [\n\t{\n\t\tid: SECTIONS.OVERVIEW,\n\t\tname: () => 'Overview',\n\t},\n\t{\n\t\tid: SECTIONS.SESSION,\n\t\tname: () => 'Session',\n\t\tisLogged: true,\n\t},\n\t{\n\t\tid: SECTIONS.VERIFICATION,\n\t\tname: () => 'Verification',\n\t},\n\t{\n\t\tid: SECTIONS.IMPLEMENTATION,\n\t\tname: () => 'Implementation',\n\t},\n];\n\nconst SECTIONS_CONTENT = {\n\t[SECTIONS.OVERVIEW]: <ProvableFairOverview />,\n\t[SECTIONS.SESSION]: <SessionContainer />,\n\t[SECTIONS.VERIFICATION]: <VerificationContainer />,\n\t[SECTIONS.IMPLEMENTATION]: <ImplementationContainer />,\n};\n\nexport const ProvablyFairPage: FC = () => {\n\tconst getSectionContent = useCallback((id) => {\n\t\treturn SECTIONS_CONTENT[id] || null;\n\t}, []);\n\n\treturn (\n\t\t<StyledMainDashboardV2>\n\t\t\t<StyledProvablyFairGlobal />\n\t\t\t<h1 className=\"page-title\">\n\t\t\t\t{transProvablyFair({ label: 'Provably fair' })}\n\t\t\t</h1>\n\t\t\t<SettingsLayout\n\t\t\t\tgetSectionContent={getSectionContent}\n\t\t\t\tsections={SECTIONS_CONFIG}\n\t\t\t\tdefaultTab={SECTIONS.OVERVIEW}\n\t\t\t/>\n\t\t</StyledMainDashboardV2>\n\t);\n};\n","import { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { InputWrapperContainer } from '../../input/inputWrapper.container';\nimport { trans } from '../../../modules/translation/translate';\nimport { ServerSeedInputContainer } from '../serverSeedInput';\nimport { ClientSeedInputContainer } from '../clientSeedInput';\nimport SeedStoreController from '../../../../../common/components/storeControllers/SeedStoreController';\nimport { transProvablyFair } from '../../../pages/provablyFair.page/provablyFair.page';\n\nclass Session extends PureComponent {\n\tstatic propTypes = {\n\t\tnonce: PropTypes.any,\n\t\tautobetPaused: PropTypes.bool,\n\t\tfetch: PropTypes.func,\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.props.fetch();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SeedStoreController />\n\t\t\t\t{this.props.autobetPaused && (\n\t\t\t\t\t<p className=\"text-style-md-medium text-negative margin-bottom\">\n\t\t\t\t\t\t{trans({\n\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t'Current autobet session is paused, changing seeds will affect your next bets',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t\t<ClientSeedInputContainer />\n\t\t\t\t<ServerSeedInputContainer />\n\t\t\t\t<InputWrapperContainer\n\t\t\t\t\tname={'nonce'}\n\t\t\t\t\tvalue={this.props.nonce}\n\t\t\t\t\tlabel={transProvablyFair({ label: 'Nonce' })}\n\t\t\t\t\tisDisabled={true}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport { Session };\n","import { connect } from 'react-redux';\nimport { seedFetch } from '../../../store.async/seed/seed.actions';\nimport { Session } from './session';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tnonce: state.seed && state.seed.nonce,\n\t\tautobetPaused: state.gameAutobet?.pause,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tfetch: () => dispatch(seedFetch()),\n\t};\n};\n\nconst SessionContainer = connect(mapStateToProps, mapDispatchToProps)(Session);\n\nexport { SessionContainer };\n","import { connect } from 'react-redux';\nimport {\n\tformVerificationSetGame,\n\tresetVerificationForm,\n\tsetClientSeed,\n\tsetNonce,\n\tsetServerSeed,\n} from '../../../store/forms/forms.actions';\nimport { RootState } from '../../../store/configure.store';\nimport { Verification } from './verification';\n\nconst mapStateToProps = (state: RootState) => {\n\treturn {\n\t\tbet_verification: state.forms.bet_verification,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tsetClientSeed: (payload) => dispatch(setClientSeed(payload)),\n\t\tsetServerSeed: (payload) => dispatch(setServerSeed(payload)),\n\t\tsetNonce: (payload) => dispatch(setNonce(payload)),\n\t\tresetVerificationForm: () => dispatch(resetVerificationForm()),\n\t\tsetGame: (game) => dispatch(formVerificationSetGame(game)),\n\t};\n};\n\nconst VerificationContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(Verification);\n\nexport { VerificationContainer };\n","import React, { FC, useCallback, useEffect } from 'react';\nimport { GameSlider } from 'src/modules/games/DiceGame/components/GameSlider';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\nimport { useStateEffect } from '@common/hooks/useStateEffect';\nimport { LinesSwitch } from '@modules/games/PlinkoGame/components/LinesSwitch/LinesSwitch';\nimport { LinesType, Risk } from '@modules/games/PlinkoGame/types';\nimport { RiskSwitch } from '@modules/games/PlinkoGame/components/playground/components/RiskSwitch/RiskSwitch';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { InputWrapperContainer } from '../../input/inputWrapper.container';\nimport { trans } from '../../../modules/translation/translate';\nimport {\n\tdiceVerification,\n\tgameVerification,\n\thiloFullTailVerification,\n\thiloResult,\n\tlimboResult,\n\tplinkoResult,\n\tsha256,\n} from '../../../modules/app/verificationServcie';\nimport { HiloSession } from '../../../../../modules/games/HiloGame/HiloSession';\nimport { DropdownContainer } from '../../dropdown';\nimport { LimboCounter } from '../../../../../modules/games/LimboGame/LimboCounter';\nimport { transProvablyFair } from '../../../pages/provablyFair.page/provablyFair.page';\nimport GamesStoreController from '../../../../../common/components/storeControllers/GamesStoreController';\nimport { GAMES_LIST } from '../implementation/GAMES_LIST';\nimport transactionService from '../../../../../modules/transactions/transactionsService';\nimport PlinkoResult from '../../../../../modules/games/PlinkoGame/components/PlinkoResult';\nimport { formsReducer } from '../../../store/forms/forms.reducer';\nimport { updateForm } from '../../../store/forms/forms.actions';\n\ntype ResultFunction = (\n\tclient_seed: any,\n\tserver_seed: any,\n\tnonce: any,\n) => {\n\tdata: string;\n\thash: string;\n};\n\nconst getResultFunction = (game: GameType): ResultFunction => {\n\t// TODO: NEW GAME FLAG\n\tswitch (game) {\n\t\tcase GameType.DICE: {\n\t\t\treturn diceVerification;\n\t\t}\n\t\tcase GameType.HILO: {\n\t\t\treturn (client_seed, server_seed, nonce) => {\n\t\t\t\thiloFullTailVerification(client_seed, server_seed, nonce);\n\t\t\t\treturn gameVerification(client_seed, server_seed, nonce, 52, 100);\n\t\t\t};\n\t\t}\n\t\tcase GameType.LIMBO: {\n\t\t\treturn (client_seed, server_seed, nonce) => {\n\t\t\t\treturn gameVerification(client_seed, server_seed, nonce, 100000000);\n\t\t\t};\n\t\t}\n\t\tcase GameType.PLINKO: {\n\t\t\treturn (client_seed, server_seed, nonce) => {\n\t\t\t\treturn gameVerification(client_seed, server_seed, nonce, 2, 16);\n\t\t\t};\n\t\t}\n\t\tdefault: {\n\t\t\treturn null;\n\t\t}\n\t}\n};\n\nexport const Verification: FC<{\n\tbet_verification: ReturnType<typeof formsReducer>['bet_verification'];\n\tsetClientSeed: (value: any) => void;\n\tsetServerSeed: (value: any) => void;\n\tsetNonce: (value: any) => void;\n\tsetGame: (value: GameType) => void;\n\tresetVerificationForm: () => void;\n}> = ({\n\tbet_verification,\n\tsetClientSeed,\n\tsetServerSeed,\n\tsetNonce,\n\tsetGame,\n\tresetVerificationForm,\n}) => {\n\tconst {\n\t\tclient_seed,\n\t\tserver_seed,\n\t\tnonce,\n\t\tgame,\n\t\trows: rows_,\n\t\trisk,\n\t} = bet_verification;\n\tconst rows = rows_ as LinesType;\n\tconst dispatch = useAppDispatch();\n\n\tconst setRows = useCallback(\n\t\t(value: LinesType) => {\n\t\t\tdispatch(\n\t\t\t\tupdateForm({ section: 'bet_verification', field: 'rows', value }),\n\t\t\t);\n\t\t},\n\t\t[dispatch],\n\t);\n\n\tconst setRisk = useCallback(\n\t\t(value: Risk) => {\n\t\t\tdispatch(\n\t\t\t\tupdateForm({ section: 'bet_verification', field: 'risk', value }),\n\t\t\t);\n\t\t},\n\t\t[dispatch],\n\t);\n\n\tconst result = useStateEffect(\n\t\tuseCallback(() => {\n\t\t\tconst callback = getResultFunction(game);\n\t\t\tif (!callback) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn callback(client_seed, server_seed, nonce);\n\t\t}, [game, client_seed, server_seed, nonce]),\n\t\ttransactionService.isDataDifferent,\n\t);\n\n\tconst setGame_ = useCallback(\n\t\t(game: GameType) => setGame(game.toLowerCase() as GameType),\n\t\t[setGame],\n\t);\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tresetVerificationForm();\n\t\t},\n\t\t[resetVerificationForm],\n\t);\n\n\tconst server_seed_hashed = server_seed?.length ? sha256(server_seed) : '';\n\treturn (\n\t\t<>\n\t\t\t<GamesStoreController />\n\t\t\t<DropdownContainer\n\t\t\t\tlocalTheme={{\n\t\t\t\t\tdefault: true,\n\t\t\t\t}}\n\t\t\t\tid={'provablyFairVerification'}\n\t\t\t\tclassName=\"margin-bottom\"\n\t\t\t\tlist={GAMES_LIST}\n\t\t\t\tactive={game.toUpperCase()}\n\t\t\t\tonClick={setGame_}\n\t\t\t/>\n\t\t\t<InputWrapperContainer\n\t\t\t\tname={'client-seed'}\n\t\t\t\tvalue={client_seed}\n\t\t\t\tlabel={transProvablyFair({ label: 'Client seed' })}\n\t\t\t\tonChange={setClientSeed}\n\t\t\t\tplaceholder={'Type client seed'}\n\t\t\t/>\n\t\t\t<InputWrapperContainer\n\t\t\t\tname={'nonce'}\n\t\t\t\tvalue={nonce}\n\t\t\t\tlabel={transProvablyFair({ label: 'Nonce' })}\n\t\t\t\tonChange={setNonce}\n\t\t\t\tplaceholder={'Type nonce'}\n\t\t\t/>\n\t\t\t<InputWrapperContainer\n\t\t\t\tname={'server-seed'}\n\t\t\t\tvalue={server_seed}\n\t\t\t\tlabel={transProvablyFair({ label: 'Server seed' })}\n\t\t\t\tonChange={setServerSeed}\n\t\t\t\tplaceholder={'Type server seed'}\n\t\t\t/>\n\t\t\t{server_seed && typeof server_seed_hashed === 'string' && (\n\t\t\t\t<InputWrapperContainer\n\t\t\t\t\tname={'server-seed-hashed'}\n\t\t\t\t\tvalue={server_seed_hashed}\n\t\t\t\t\tlabel={trans({ label: 'Server seed (hashed)' })}\n\t\t\t\t\tplaceholder={''}\n\t\t\t\t\tisDisabled={true}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{game === GameType.PLINKO && (\n\t\t\t\t<div className=\"box-no-height\">\n\t\t\t\t\t<LinesSwitch compactView value={rows} update={setRows} />\n\t\t\t\t\t<RiskSwitch compactView value={risk} update={setRisk} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{result && typeof result.data !== 'object' && game === GameType.DICE && (\n\t\t\t\t<div className=\"box-no-height margin-top\">\n\t\t\t\t\t<GameSlider\n\t\t\t\t\t\trule={null}\n\t\t\t\t\t\tgame={game}\n\t\t\t\t\t\tdisable\n\t\t\t\t\t\tbetValues={[]}\n\t\t\t\t\t\tclassName=\"width-100 no-padding no-margin small-margin-bottom\"\n\t\t\t\t\t\tresult={{\n\t\t\t\t\t\t\tvalue: result.data,\n\t\t\t\t\t\t\tstate: 'win',\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{result &&\n\t\t\t\tresult.data.length &&\n\t\t\t\ttypeof result.data === 'object' &&\n\t\t\t\tgame &&\n\t\t\t\tgame.indexOf(GameType.HILO) > -1 && (\n\t\t\t\t\t<div className=\"game--hilo box-no-height no-padding margin-top\">\n\t\t\t\t\t\t<HiloSession\n\t\t\t\t\t\t\tclassName=\"width-100 no-margin\"\n\t\t\t\t\t\t\tstatic={true}\n\t\t\t\t\t\t\tnoScroll={true}\n\t\t\t\t\t\t\tsession={result.data.map((el, index) => ({\n\t\t\t\t\t\t\t\tresult_value: hiloResult(el),\n\t\t\t\t\t\t\t\tsub_nonce: index,\n\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t{result && typeof result.data !== 'object' && game === GameType.LIMBO && (\n\t\t\t\t<div className=\"game--limbo box-no-height no-padding margin-top\">\n\t\t\t\t\t<LimboCounter result={limboResult(result.data)} animation={true} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{result &&\n\t\t\t\tresult.data.length &&\n\t\t\t\ttypeof result.data === 'object' &&\n\t\t\t\tgame === GameType.PLINKO && (\n\t\t\t\t\t<div className=\"box-no-height no-padding margin-top\">\n\t\t\t\t\t\t<span className=\"text-style-sm-medium\">\n\t\t\t\t\t\t\tPayout index:{' '}\n\t\t\t\t\t\t\t{plinkoResult(result.data, risk, rows).path.join('+')}={''}\n\t\t\t\t\t\t\t{plinkoResult(result.data, risk, rows).result}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<PlinkoResult\n\t\t\t\t\t\t\tresult={plinkoResult(result.data, risk, rows).result}\n\t\t\t\t\t\t\trisk={risk}\n\t\t\t\t\t\t\trows={rows}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t</>\n\t);\n};\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\nimport { transProvablyFair } from '../../../pages/provablyFair.page/provablyFair.page';\n\nexport const ProvableFairOverview: FC = () => {\n\treturn (\n\t\t<>\n\t\t\t<ProvableFairOverviewTitleStyled>\n\t\t\t\t{transProvablyFair({ label: 'Fairness' })}\n\t\t\t</ProvableFairOverviewTitleStyled>\n\t\t\t<ProvableFairOverviewParagraphStyled>\n\t\t\t\t{transProvablyFair({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'Wolfbet uses a cryptographic provably fair algorithm which allows users to check and analyze the legitimacy of every bet and confirm they are not manipulated. Our random numbers are generated through the use of two seeds (a server seed and a client seed) and nonce number.',\n\t\t\t\t})}\n\t\t\t</ProvableFairOverviewParagraphStyled>\n\t\t\t<ProvableFairOverviewTitleStyled>\n\t\t\t\t{transProvablyFair({ label: 'Server seed' })}\n\t\t\t</ProvableFairOverviewTitleStyled>\n\t\t\t<ProvableFairOverviewParagraphStyled>\n\t\t\t\t{transProvablyFair({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'After registration user is provided with an encrypted hash of that generated server seed. We provide you the hashed server seed to ensure that it cannot be changed by casino provider and that the player cannot calculate result beforehand. To verify your previous bets you have to reveal the server seed from its hashed version by generating new server seed in \"Session\" menu.',\n\t\t\t\t})}\n\t\t\t</ProvableFairOverviewParagraphStyled>\n\t\t\t<ProvableFairOverviewTitleStyled>\n\t\t\t\t{transProvablyFair({ label: 'Client seed' })}\n\t\t\t</ProvableFairOverviewTitleStyled>\n\t\t\t<ProvableFairOverviewParagraphStyled>\n\t\t\t\t{transProvablyFair({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'The client seed is used to ensure the player also has influence on the randomness of the bets results. Player is free to change their client seed anytime to create a new chain of random upcoming results. This ensures the player has absolute control over the generation of the result.',\n\t\t\t\t})}\n\t\t\t</ProvableFairOverviewParagraphStyled>\n\t\t\t<ProvableFairOverviewTitleStyled>\n\t\t\t\t{transProvablyFair({ label: 'Nonce' })}\n\t\t\t</ProvableFairOverviewTitleStyled>\n\t\t\t<ProvableFairOverviewParagraphStyled>\n\t\t\t\t{transProvablyFair({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'The nonce is simply a number that increments every new bet and it is reset back while the server seed is changed. This value allows to create a completely new result each time, without having to generate a new client seed and server seed.',\n\t\t\t\t})}\n\t\t\t</ProvableFairOverviewParagraphStyled>\n\t\t</>\n\t);\n};\n\nexport const ProvableFairOverviewTitleStyled = styled.h4.attrs({\n\tclassName: 'user-select-text text-style-md-medium',\n})``;\nexport const ProvableFairOverviewParagraphStyled = styled.p.attrs({\n\tclassName: 'user-select-text text-style-md-regular',\n})``;\n","import { createGlobalStyle } from 'styled-components';\nimport { ThemeType } from '../../modules/style/theme';\n\nexport const StyledProvablyFairGlobal = createGlobalStyle<{ theme: ThemeType }>`\n\t.page-provablyFair {\n\t\t.settings__panel {\n\t\t\t&--overview,\n\t\t\t&--implementation {\n\t\t\t\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\t\t\t\tline-height: ${(props) => props.theme.text.height.regular};\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { actionSimple } from '../../modules/app/actionService';\nimport {\n\tSEED_FETCH,\n\tSEED_REFRESH_CLIENT,\n\tSEED_REFRESH_SERVER,\n\tSEED_SET_CLIENT,\n\tSEED_SET_NONCE,\n\tSEED_SET_SERVER_HASHED,\n} from './seed.constants';\n\nexport const seedSetServerHashed = actionSimple(SEED_SET_SERVER_HASHED);\nexport const seedSetClient = actionSimple(SEED_SET_CLIENT);\nexport const seedSetNonce = actionSimple(SEED_SET_NONCE);\nexport const seedFetch = actionSimple(SEED_FETCH);\nexport const seedRefreshClient = actionSimple(SEED_REFRESH_CLIENT);\nexport const seedRefreshServer = actionSimple(SEED_REFRESH_SERVER);\n","export const SEED_SET_SERVER_HASHED = 'SEED_SET_SERVER_HASHED';\nexport const SEED_SET_CLIENT = 'SEED_SET_CLIENT';\nexport const SEED_SET_NONCE = 'SEED_SET_NONCE';\nexport const SEED_FETCH = 'SEED_FETCH';\nexport const SEED_REFRESH_CLIENT = 'SEED_REFRESH_CLIENT';\nexport const SEED_REFRESH_SERVER = 'SEED_REFRESH_SERVER';\n","import { actionSimple } from '../../modules/app/actionService';\nimport {\n\tDROPDOWN_ADD,\n\tDROPDOWN_DELETE,\n\tDROPDOWN_SET_ACTIVE,\n\tDROPDOWN_SET_CONTENT,\n\tDROPDOWN_TOGGLE,\n} from './dropdown.constants';\n\nexport const dropdownSetActive = actionSimple(DROPDOWN_SET_ACTIVE);\nexport const dropdownSetContent = actionSimple(DROPDOWN_SET_CONTENT);\nexport const dropdownDelete = actionSimple(DROPDOWN_DELETE);\nexport const dropdownAdd = actionSimple(DROPDOWN_ADD);\nexport const dropdownToggle = actionSimple(DROPDOWN_TOGGLE);\n\n// export const dropdownToggle = (payload) => {\n// \treturn (dispatch, getState) => {\n// \t\tconst state = getState();\n// \t\tif (!state.dropdown.content[payload.id]) return of();\n// \t\tconst active = {\n// \t\t\t...state.dropdown.active\n// \t\t};\n// \t\tconst bool =\n// \t\t\tpayload.bool === undefined\n// \t\t\t\t? !active[payload.id]\n// \t\t\t\t: payload.bool;\n// \t\tif (active[payload.id] === bool) return of();\n// \t\tif (!bool) {\n// \t\t\tdelete active[payload.id];\n// \t\t} else {\n// \t\t\tactive[payload.id] = bool;\n// \t\t}\n// \t\treturn dispatch(dropdownSetActive(active));\n// \t};\n// };\n\nexport const dropdownGet = (id) => {\n\treturn (dispatch, getState) => {\n\t\tconst state = getState();\n\t\treturn state.dropdown.content[id];\n\t};\n};\n","import { FC } from 'react';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { PackageType } from '@legacyApp/client/store/registry/registry.constants';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\n\nconst GamesStoreController: FC = () => null;\n\nexport const gamesStoreProps = {\n\tasyncReducers: [\n\t\t{\n\t\t\tid: 'game',\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/game/game.reducer'),\n\t\t},\n\t\t{\n\t\t\tid: 'gameSession',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameSession/gameSession.reducer'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: 'gameAutobet',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameAutobet/gameAutobet.reducer'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: 'gameValidation',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameValidation/gameValidation.reducer'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: GameType.DICE,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/dice/dice.reducer'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.HILO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/hilo/hilo.reducer'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.LIMBO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/limbo/limbo.reducer'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.PLINKO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/plinko/plinko.reducer'),\n\t\t},\n\t],\n\tasyncEpics: [\n\t\t{\n\t\t\tid: 'game',\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/game/game.epic'),\n\t\t},\n\t\t{\n\t\t\tid: 'gameSession',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameSession/gameSession.epic'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: 'gameAutobet',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameAutobet/gameAutobet.epic'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: 'gameValidation',\n\t\t\tcallback: () =>\n\t\t\t\timport(\n\t\t\t\t\t'../../../modules/games/Game/store/gameValidation/gameValidation.epic'\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: GameType.DICE,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/dice/dice.epic'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.HILO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/hilo/hilo.epic'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.LIMBO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/limbo/limbo.epic'),\n\t\t},\n\t\t{\n\t\t\tid: GameType.PLINKO,\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../modules/games/Game/store/plinko/plinko.epic'),\n\t\t},\n\t\t{\n\t\t\tid: 'flash',\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../LegacyApp/client/store/flash/flash.epic'),\n\t\t},\n\t],\n\tasyncDoNotReject: true,\n\tasyncPackage: PackageType.GAME,\n};\n\nexport default enhanceComponent({\n\tGamesStoreController,\n\tprops: gamesStoreProps,\n});\n","import { FC } from 'react';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { PackageType } from '@legacyApp/client/store/registry/registry.constants';\n\nconst SeedStoreController: FC = () => {\n\treturn null;\n};\n\nexport const seedStoreProps = {\n\tasyncReducers: [\n\t\t{\n\t\t\tid: 'seed',\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../LegacyApp/client/store.async/seed/seed.reducer'),\n\t\t},\n\t],\n\tasyncEpics: [\n\t\t{\n\t\t\tid: 'seed',\n\t\t\tcallback: () =>\n\t\t\t\timport('../../../LegacyApp/client/store.async/seed/seed.epic'),\n\t\t},\n\t],\n\tasyncPackage: PackageType.SEED,\n};\n\nexport default enhanceComponent({\n\tSeedStoreController,\n\tprops: seedStoreProps,\n});\n","import { Subject } from 'rxjs';\n\nclass SubjectControllerClass {\n\tprivate subjects = {};\n\n\tconstructor() {\n\t\t// this.subject = new Subject();\n\t}\n\n\tpublic subscribe(id, callback) {\n\t\tif (!this.subjects[id]) {\n\t\t\tthis.subjects[id] = new Subject();\n\t\t}\n\n\t\treturn this.subjects[id].subscribe(callback);\n\t}\n\n\tpublic emit(id, message) {\n\t\tthis.subjects[id].next(message);\n\t}\n}\n\nexport const SubjectController = new SubjectControllerClass();\n","import { isFunction } from './isFunction';\nimport { isTrueOrZero } from './isTrueOrZero';\n\nexport interface PageScrollToProps {\n\ttop?: number;\n\tleft?: number;\n}\n\nexport const pageScrollTo = ({ top, left }: PageScrollToProps) => {\n\tconst element = document.body.parentElement;\n\n\tif (\n\t\telement &&\n\t\tisFunction(element.scrollTo) &&\n\t\t(isTrueOrZero(top) || isTrueOrZero(left))\n\t) {\n\t\telement.scrollTo({\n\t\t\tbehavior: 'smooth',\n\t\t\ttop: isTrueOrZero(top) ? top : 0,\n\t\t\tleft: isTrueOrZero(left) ? left : 0,\n\t\t});\n\t}\n};\n","import { actionSimple } from '@legacyApp/client/modules/app/actionService';\nimport { CurrencyType } from '@legacyApp/types/wallet/CurrencyType';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { LocalStorageKeys } from '@modules/localStorage/types/localStorageKeys.type';\nimport { GameType } from '../../constants/availableGames';\nimport { RollRule } from '../../types/RollRule';\nimport { AutoBetMode } from '../game/thunks/handleBet.thunk';\nimport {\n\tAUTOBET,\n\tAUTOBET_CLEAR,\n\tAUTOBET_PAUSE,\n\tAUTOBET_PLAY,\n\tAUTOBET_RESET_TO_DEFAULT,\n\tAUTOBET_ROLLING,\n\tAUTOBET_SET_ACTIVE,\n\tAUTOBET_SET_AUTO_STATS,\n\tAUTOBET_SET_CONFIG,\n\tAUTOBET_SET_CONFIG_EASY,\n\tAUTOBET_SET_CURRENCY,\n\tAUTOBET_SET_DEFAULTS,\n\tAUTOBET_SET_EDIT_MODAL,\n\tAUTOBET_SET_ID,\n\tAUTOBET_SET_MANUAL,\n\tAUTOBET_SET_MODE,\n\tAUTOBET_SET_PAUSE,\n\tAUTOBET_SET_PAUSE_DATA,\n\tAUTOBET_SET_ROLLS,\n\tAUTOBET_SET_ROLLS_COUNTER,\n\tAUTOBET_STOP,\n\tAUTOBET_STOPPED,\n\tAUTOBET_SUMMARY_CONNECTION_ERROR,\n\tAUTOBET_UPDATE_CONFIG_EASY,\n\tDELETE_AUTOBET_STRATEGY,\n\tDISABLE_CHECK_AUTOBET_STRATEGY,\n\tEDIT_AUTOBET_STRATEGY,\n\tGET_AUTOBET_STRATEGIES,\n\tSAVE_AUTOBET_STRATEGY,\n\tSET_ACTIVE_AUTOBET_STRATEGY,\n\tSET_AUTOBET_STRATEGIES,\n} from './gameAutobet.constants';\n\nexport const autobet = actionSimple(AUTOBET);\n\nexport const autobetPause = actionSimple(AUTOBET_PAUSE);\n\nexport const autobetSetPause = actionSimple(AUTOBET_SET_PAUSE);\n\nexport const autobetSetPauseData = actionSimple(AUTOBET_SET_PAUSE_DATA);\n\nexport const saveAutobetStrategy = (payload, setActive) => ({\n\ttype: SAVE_AUTOBET_STRATEGY,\n\tpayload,\n\tsetActive,\n});\n\nexport const editAutobetStrategy = actionSimple(EDIT_AUTOBET_STRATEGY);\n\nexport const setAutobetStrategies = actionSimple(SET_AUTOBET_STRATEGIES);\n\nexport const getAutobetStrategies = actionSimple(GET_AUTOBET_STRATEGIES);\n\nexport const deleteAutobetStrategy = actionSimple(DELETE_AUTOBET_STRATEGY);\n\nexport const setActiveAutobetStrategy = actionSimple(\n\tSET_ACTIVE_AUTOBET_STRATEGY,\n);\n\nexport const disableCheckAutobetStrategy = actionSimple(\n\tDISABLE_CHECK_AUTOBET_STRATEGY,\n);\n\nexport const getAutobetSessionLength = (game) => {\n\treturn (dispatch, getState) => {\n\t\tconst gameSession = getState().gameSession;\n\t\treturn roundNumber(\n\t\t\tparseFloat(gameSession.lostAuto[game]) +\n\t\t\t\tparseFloat(gameSession.wonAuto[game]),\n\t\t\t0,\n\t\t);\n\t};\n};\n\nexport const autobetSummaryConnectionError = (\n\tbet,\n\tdata = null,\n\tonlyAlert = false,\n) => ({\n\ttype: AUTOBET_SUMMARY_CONNECTION_ERROR,\n\tbet,\n\tdata,\n\tonlyAlert,\n});\n\nexport const autobetSetRolls = actionSimple(AUTOBET_SET_ROLLS);\n\nexport const autobetSetRollsCounter = actionSimple(AUTOBET_SET_ROLLS_COUNTER);\n\nexport const autobetSetActive = actionSimple<{\n\tgame: GameType;\n\tvalue: AutoBetMode | boolean;\n}>(AUTOBET_SET_ACTIVE);\n\nexport const autoBetRolling = actionSimple(AUTOBET_ROLLING);\n\nexport interface AutobetPlayProps {\n\tgame: GameType;\n\tcurrency: CurrencyType;\n\trule?: RollRule;\n\tstopped?: boolean;\n\tmanualConfirmed?: boolean;\n}\n\nexport const autobetPlay = actionSimple<AutobetPlayProps>(AUTOBET_PLAY);\n\nexport const autobetStop = actionSimple(AUTOBET_STOP);\n\nexport const autobetStopped = actionSimple(AUTOBET_STOPPED);\n\nexport const autobetClear = actionSimple(AUTOBET_CLEAR);\n\nexport const autobetSetMode = actionSimple(AUTOBET_SET_MODE, {\n\tlsKey: LocalStorageKeys.AUTOBET_MODE,\n});\n\nexport const autobetSetConfig = actionSimple(AUTOBET_SET_CONFIG);\n\nexport const autobetSetEditModal = actionSimple(AUTOBET_SET_EDIT_MODAL);\n\nexport const autobetSetConfigEasy = actionSimple(AUTOBET_SET_CONFIG_EASY);\n\nexport const autobetUpdateConfigEasy = actionSimple(AUTOBET_UPDATE_CONFIG_EASY);\n\nexport const autobetSetAutoStats = actionSimple(AUTOBET_SET_AUTO_STATS);\n\nexport const autobetSetId = (game, id) => ({\n\ttype: AUTOBET_SET_ID,\n\tgame,\n\tid,\n});\n\nexport const autobetSetCurrency = (game, payload) => ({\n\ttype: AUTOBET_SET_CURRENCY,\n\tgame,\n\tpayload,\n});\n\nexport const autobetSetManual = actionSimple(AUTOBET_SET_MANUAL);\n\nexport const autobetResetToDefault = actionSimple(AUTOBET_RESET_TO_DEFAULT);\nexport const autobetSetDefaults = actionSimple(AUTOBET_SET_DEFAULTS);\n","import { shallowEqual } from 'react-redux';\nimport { useAppSelector } from '@legacyApp/hooks/store/useAppSelector';\nimport { CurrencyType } from '@legacyApp/types/wallet/CurrencyType';\nimport transactionService from '../../../../transactions/transactionsService';\nimport { GameType } from '../../constants/availableGames';\nimport { GameStrategy } from '../../types/GameStrategy';\nimport { AutoBetMode } from '../game/thunks/handleBet.thunk';\n\nexport const useGameAutoBetIsRolling = (game: GameType) =>\n\tuseAppSelector<boolean>(\n\t\t(state) => state.gameAutobet?.autoBetRolling[game],\n\t\tshallowEqual,\n\t);\nexport const useGameAutoBetActive = (game: GameType) =>\n\tuseAppSelector<AutoBetMode | boolean>(\n\t\t(state) => state.gameAutobet?.active[game],\n\t\tshallowEqual,\n\t);\nexport const useGameAutoBetMode = () =>\n\tuseAppSelector<string>((state) => state.gameAutobet?.mode, shallowEqual);\n\nexport const useGameAutoBetCurrency = (game: GameType) =>\n\tuseAppSelector<CurrencyType>(\n\t\t(state) => state.gameAutobet?.currency[game],\n\t\tshallowEqual,\n\t);\n\nexport const useGameAutoBetStats = () =>\n\tuseAppSelector<boolean>(\n\t\t(state) => state.gameAutobet?.autoStats,\n\t\tshallowEqual,\n\t);\n\nexport const useGameAutoBetRollsCounter = (game: GameType) =>\n\tuseAppSelector<number>(\n\t\t(state) => state.gameAutobet?.rollsCounter[game],\n\t\tshallowEqual,\n\t);\n\nexport const useGameAutoBetConfigEasy = (game?: GameType) =>\n\tuseAppSelector(\n\t\t(state) => state.gameAutobet?.configEasy[game || state.game?.activeGame],\n\t\t(previous, next) => !transactionService.isDataDifferent(previous, next),\n\t);\n\nexport const useGameAutoBetPaused = () =>\n\tuseAppSelector<boolean>((state) => state.gameAutobet?.pause, shallowEqual);\n\nexport const useGameAutoBetStrategies = () =>\n\tuseAppSelector<GameStrategy[]>(\n\t\t(state) => state.gameAutobet?.strategies,\n\t\t(previous, next) => !transactionService.isListDifferent(previous, next),\n\t);\n\nexport const useGameAutoBetActiveStrategy = (game?: GameType) =>\n\tuseAppSelector<string>(\n\t\t(state) =>\n\t\t\tstate.gameAutobet?.activeStrategy[game || state.game?.activeGame],\n\t\t(previous, next) => !transactionService.isDataDifferent(previous, next),\n\t);\n","import { shallowEqual } from 'react-redux';\nimport { useAppSelector } from '@legacyApp/hooks/store/useAppSelector';\nimport { GameType } from '../../constants/availableGames';\n\nexport const useGameValidationFormError = (game: GameType) =>\n\tuseAppSelector(\n\t\t(state) => state.gameValidation?.formError?.[game],\n\t\tshallowEqual,\n\t);\nexport const useGameValidationProfitError = (game: GameType) =>\n\tuseAppSelector(\n\t\t(state) => state.gameValidation?.profitError?.[game],\n\t\tshallowEqual,\n\t);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport CountUp from 'react-countup';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { checkHotkeysAllowed } from '@legacyApp/client/modules/app/checkHotkeysAllowed';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { StyledLimboCounter } from './LimboCounter.styled';\n\nclass LimboCounter extends React.PureComponent {\n\tstatic propTypes = {\n\t\tresult: PropTypes.any,\n\t\ttarget: PropTypes.any,\n\t\tanimation: PropTypes.bool,\n\t\tset: PropTypes.func,\n\t\tsmall: PropTypes.bool,\n\t\thotkeys: PropTypes.bool,\n\t\tclassName: PropTypes.any,\n\t\tupdateTarget: PropTypes.func,\n\t\tgetHotkey: PropTypes.func,\n\t\tdisableHotkeys: PropTypes.bool,\n\t\tscreenWidth: PropTypes.number,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: '',\n\t\t};\n\t\tthis.timeout = null;\n\t\tthis.el = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.hotkeys) {\n\t\t\twindow.addEventListener('keydown', this.handleKeyboard);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (this.props.result !== prevProps.result) {\n\t\t\tthis.onStart();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.props.hotkeys) {\n\t\t\twindow.removeEventListener('keydown', this.handleKeyboard);\n\t\t}\n\t\tif (this.timeout) {\n\t\t\tclearTimeout(this.timeout);\n\t\t}\n\t\tif (this.props.set) {\n\t\t\tthis.props.set(false);\n\t\t}\n\t}\n\n\thandleKeyboard = (obj) => {\n\t\tif (!this.el || !checkHotkeysAllowed(this.props.disableHotkeys)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (obj.keyCode === this.props.getHotkey('lower_target', 'limbo').keyCode) {\n\t\t\tobj.preventDefault();\n\t\t\tthis.props.updateTarget(\n\t\t\t\troundNumber(parseFloat(this.props.target) - 1, 0),\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tobj.keyCode === this.props.getHotkey('higher_target', 'limbo').keyCode\n\t\t) {\n\t\t\tobj.preventDefault();\n\t\t\tthis.props.updateTarget(\n\t\t\t\troundNumber(parseFloat(this.props.target) + 1, 0),\n\t\t\t);\n\t\t}\n\t};\n\n\tonEnd = () => {\n\t\tif (!this.props.result) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setState({\n\t\t\tclassName: this.props.target\n\t\t\t\t? parseFloat(this.props.result) >= parseFloat(this.props.target)\n\t\t\t\t\t? 'text-positive'\n\t\t\t\t\t: 'text-negative'\n\t\t\t\t: '',\n\t\t});\n\t};\n\n\tonStart = () => {\n\t\tif (!this.props.animation) {\n\t\t\treturn this.onEnd();\n\t\t}\n\t\tthis.setState({\n\t\t\tclassName: '',\n\t\t});\n\t\tif (this.props.result) {\n\t\t\tthis.timeout = setTimeout(() => this.onEnd(), 400);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst result = parseFloat(this.props.result || 1);\n\t\treturn (\n\t\t\t<StyledLimboCounter\n\t\t\t\t$length={`${result.toFixed(2) || ''}`.length}\n\t\t\t\t$screenWidth={this.props.screenWidth}\n\t\t\t\t$noTarget={!isTrueOrZero(this.props.target) || this.props.small}\n\t\t\t\tref={this.el}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\tthis.state.className,\n\t\t\t\t\tthis.props.className,\n\t\t\t\t\t'text-style-md-semibold',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{this.props.animation ? (\n\t\t\t\t\t<CountUp\n\t\t\t\t\t\tend={result}\n\t\t\t\t\t\tstart={1}\n\t\t\t\t\t\tduration={0.5}\n\t\t\t\t\t\tdecimals={2}\n\t\t\t\t\t\tseparator={' '}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<span>{result.toFixed(2)}</span>\n\t\t\t\t)}\n\t\t\t\t<AwesomeIcon icon={faTimes} />\n\t\t\t</StyledLimboCounter>\n\t\t);\n\t}\n}\n\nLimboCounter = enhanceComponent({\n\tLimboCounter,\n});\n\nexport default LimboCounter;\n","import { FC, useRef, useEffect } from 'react';\nimport { Sounds } from '@common/constants/config/sounds';\nimport { SubjectController } from '@common/controllers/subjectController';\nimport audioService from '@legacyApp/client/modules/app/audioService';\nimport { MultiplierType } from '@modules/games/PlinkoGame/types/index';\nimport { PlinkoResultEventDetails } from '@modules/games/PlinkoGame/methods/plinkoTriggerEvents';\nimport { getBallColor } from '@modules/games/PlinkoGame/components/playground/PixiJS/methods/getBallColor';\nimport { MultiplierColorCombinations } from '@modules/games/PlinkoGame/components/MuliplierBoxes/multipliers';\nimport { PLINKO_RESULT_EVENT } from '@modules/games/PlinkoGame/constants';\n\nexport interface MultiplierBoxProps {\n\tmultiplier: MultiplierType;\n\tindex: number;\n\tcount: number;\n\tenableAnimation?: boolean;\n\tmarked?: boolean;\n}\n\nconst getMarkedBallStyle = (risk) => {\n\tconst colors = getBallColor(risk);\n\n\treturn {\n\t\tbackgroundColor: colors.fill,\n\t\tborder: `1px solid ${colors.line}`,\n\t};\n};\n\nexport const MultiplierBox: FC<MultiplierBoxProps> = ({\n\tmultiplier,\n\tindex,\n\tcount,\n\tenableAnimation,\n\tmarked,\n}) => {\n\tconst { value, risk, lines } = multiplier;\n\n\tconst boxEl = useRef(null);\n\tconst timeoutRef = useRef(null);\n\n\tconst boxColorClassName =\n\t\tMultiplierColorCombinations?.[String(count)]?.[index];\n\n\tconst onResult = (details: PlinkoResultEventDetails) => {\n\t\tif (!enableAnimation) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { payoutIndex } = details;\n\t\tconst isActivated = payoutIndex === index;\n\n\t\tif (!isActivated) {\n\t\t\treturn;\n\t\t}\n\n\t\taudioService.play(Sounds.won, undefined);\n\n\t\tboxEl.current.classList.add('multiplier-box-animation');\n\n\t\tif (timeoutRef.current) {\n\t\t\tclearTimeout(timeoutRef.current);\n\t\t}\n\n\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\tboxEl.current.classList.remove('multiplier-box-animation');\n\t\t}, 500);\n\t};\n\n\tuseEffect(() => {\n\t\tconst handler = SubjectController.subscribe(PLINKO_RESULT_EVENT, onResult);\n\n\t\treturn () => {\n\t\t\thandler.unsubscribe();\n\n\t\t\tif (timeoutRef.current) {\n\t\t\t\tclearTimeout(timeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`multiplier-box flex items-center justify-center rounded text-color-dark-900 text-[10px] font-bold h-[30px] leading-[30px] ${boxColorClassName} ${\n\t\t\t\tmarked ? '!opacity-100 relative' : ''\n\t\t\t}`}\n\t\t\tref={boxEl}\n\t\t\tkey={`${risk}${lines}${value}${index}`}\n\t\t\tdata-value={value}\n\t\t>\n\t\t\t{marked && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"multiplier-box-marked absolute w-[15px] h-[15px] top-[-15px] rounded-full max_mobile_large:border-2 max_mobile_large:h-2.5 max_mobile_large:w-2.5 max_mobile_large:top-[-10px]\"\n\t\t\t\t\tstyle={getMarkedBallStyle(risk)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{value < 10 && value >= 1 ? value.toFixed(1) : value}\n\n\t\t\t{Number(value) < 1000 && 'x'}\n\t\t</div>\n\t);\n};\n","import { FC, useCallback } from 'react';\nimport { useStateEffect } from '@common/hooks/useStateEffect';\nimport { Tooltip } from '@legacyApp/client/components/tooltip';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { usePlinkoLinesSelector } from '../../../Game/store/plinko/selectors/usePlinkoLinesSelector';\nimport { usePlinkoRiskSelector } from '../../../Game/store/plinko/selectors/usePlinkoRiskSelector';\nimport transactionService from '../../../../transactions/transactionsService';\nimport { LinesType, MultiplierType, Risk } from '../../types';\nimport { useGameValidationProfitError } from '../../../Game/store/gameValidation/gameValidation.selectors';\nimport { GameType } from '../../../Game/constants/availableGames';\nimport { getMultiplierByLinesQnt } from './multipliers';\nimport { MultiplierBox } from './MultiplierBox';\n\nexport const MultiplierBoxes: FC<{\n\tlines?: LinesType;\n\trisk?: Risk;\n\tenableAnimation?: boolean;\n\tonModal?: boolean;\n\tprofitError?: string | boolean;\n\tclassName?: string;\n\tstyle?: object;\n\tmarkedBoxIndex?: number;\n\tstyleGrid?: object;\n\tcompactView?: boolean;\n}> = ({\n\tlines,\n\trisk,\n\tenableAnimation,\n\tonModal,\n\tprofitError,\n\tclassName,\n\tstyle,\n\tmarkedBoxIndex,\n\tstyleGrid,\n\tcompactView,\n}) => {\n\tconst stateLines = usePlinkoLinesSelector();\n\tconst lines_ = lines || stateLines;\n\tconst stateRisk = usePlinkoRiskSelector();\n\tconst risk_ = risk || stateRisk;\n\tconst profitErrorState = useGameValidationProfitError(GameType.PLINKO);\n\tconst profitError_ =\n\t\tprofitError !== undefined ? profitError : profitErrorState;\n\n\tconst compactViewClassNames =\n\t\t'[&_.grid]:gap-px [&_.grid]:min_tablet_small:gap-1 [&_.multiplier-box]:h-[unset] [&_.multiplier-box]:min_tablet_small:min-h-[30px] [&_.multiplier-box]:text-[6px] [&_.multiplier-box]:min_mobile_large:text-[0.5rem] [&_.multiplier-box]:min_tablet_medium:text-xs [&_.multiplier-box]:leading-none [&_.multiplier-box]:rounded-[0.15rem] [&_.multiplier-box]:min_mobile_large:rounded';\n\n\tconst multipliers = useStateEffect<MultiplierType[]>(\n\t\tuseCallback(() => getMultiplierByLinesQnt(lines_, risk_), [lines_, risk_]),\n\t\t(a, b) => transactionService.isListDifferent(a, b, ['label', 'value']),\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`multiplier-boxes w-full text-style-sm-regular ${\n\t\t\t\tcompactView ? compactViewClassNames : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<Tooltip\n\t\t\t\tonModal={onModal}\n\t\t\t\tlocalTheme=\"error\"\n\t\t\t\tnamespace={TransNamespace.COMMON}\n\t\t\t\tcontent={profitError_}\n\t\t\t\tisVisible={!!profitError_ && typeof profitError_ !== 'boolean'}\n\t\t\t\thideOnClick={false}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"w-full grid\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgridTemplateColumns: `repeat(${multipliers.length}, minmax(15px, 1fr))`,\n\t\t\t\t\t\tgridTemplateRows: 'minmax(20px, 1fr)',\n\t\t\t\t\t\t...styleGrid,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{multipliers.map((multiplier, index) => (\n\t\t\t\t\t\t<MultiplierBox\n\t\t\t\t\t\t\tenableAnimation={enableAnimation}\n\t\t\t\t\t\t\tkey={`${risk}${lines}${multiplier.value}${index}`}\n\t\t\t\t\t\t\tmultiplier={multiplier}\n\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\tcount={multipliers?.length}\n\t\t\t\t\t\t\tmarked={index === markedBoxIndex}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</Tooltip>\n\t\t</div>\n\t);\n};\n","import { LinesType, MultiplierType, MultiplierValues, Risk } from '../../types';\nimport { config } from '../playground/config';\n\nexport enum MultiplierColors {\n\tRED_DARKER = 'bg-color-red-darker',\n\tRED_DARK = 'bg-color-red-dark',\n\tRED = 'bg-color-red',\n\tORANGE_DARK = 'bg-color-orange-dark',\n\tORANGE = 'bg-color-orange',\n\tORANGE_LIGHT = 'bg-color-orange-light',\n\tYELLOW_DARK = 'bg-color-yellow-dark',\n\tYELLOW = 'bg-color-yellow',\n\tYELLOW_LIGHT = 'bg-color-yellow-light',\n}\n\nexport const MultiplierColorCombinations: Record<number, Array<string>> = {\n\t'9': [\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t],\n\t'10': [\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t],\n\t'11': [\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t],\n\t'12': [\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t],\n\t'13': [\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.RED,\n\t],\n\t'14': [\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.RED,\n\t],\n\t'15': [\n\t\tMultiplierColors.RED_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.RED_DARK,\n\t],\n\t'16': [\n\t\tMultiplierColors.RED_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.RED_DARK,\n\t],\n\t'17': [\n\t\tMultiplierColors.RED_DARKER,\n\t\tMultiplierColors.RED_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_LIGHT,\n\t\tMultiplierColors.YELLOW,\n\t\tMultiplierColors.YELLOW_DARK,\n\t\tMultiplierColors.ORANGE_LIGHT,\n\t\tMultiplierColors.ORANGE,\n\t\tMultiplierColors.ORANGE_DARK,\n\t\tMultiplierColors.RED,\n\t\tMultiplierColors.RED_DARK,\n\t\tMultiplierColors.RED_DARKER,\n\t],\n};\n\nexport const getMultiplier = (\n\tvalue: MultiplierValues,\n\tlines: LinesType,\n\trisk: Risk,\n\tpayoutIndex: number,\n): MultiplierType => {\n\treturn {\n\t\tlabel: `${config.labels.floor}||${value}||${0}||${payoutIndex}`,\n\t\timg: `multiplier${value}`,\n\t\tvalue,\n\t\tlines,\n\t\trisk,\n\t\tpayoutIndex,\n\t};\n};\n\nexport const multiplyBlocksByLinesQnt: Record<\n\tRisk,\n\tRecord<LinesType, Array<number>>\n> = {\n\t[Risk.LOW]: {\n\t\t8: [5.6, 2.1, 1.1, 1, 0.5, 1, 1.1, 2.1, 5.6],\n\t\t9: [5.6, 2, 1.6, 1, 0.7, 0.7, 1, 1.6, 2, 5.6],\n\t\t10: [8.9, 3, 1.4, 1.1, 1, 0.5, 1, 1.1, 1.4, 3, 8.9],\n\t\t11: [8.4, 3, 1.9, 1.3, 1, 0.7, 0.7, 1, 1.3, 1.9, 3, 8.4],\n\t\t12: [10, 3, 1.6, 1.4, 1.1, 1, 0.5, 1, 1.1, 1.4, 1.6, 3, 10],\n\t\t13: [8.1, 4, 3, 1.9, 1.2, 0.9, 0.7, 0.7, 0.9, 1.2, 1.9, 3, 4, 8.1],\n\t\t14: [7.1, 4, 1.9, 1.4, 1.3, 1.1, 1, 0.5, 1, 1.1, 1.3, 1.4, 1.9, 4, 7.1],\n\t\t15: [15, 8, 3, 2, 1.5, 1.1, 1, 0.7, 0.7, 1, 1.1, 1.5, 2, 3, 8, 15],\n\t\t16: [16, 9, 2, 1.4, 1.4, 1.2, 1.1, 1, 0.5, 1, 1.1, 1.2, 1.4, 1.4, 2, 9, 16],\n\t},\n\t[Risk.MEDIUM]: {\n\t\t8: [13, 3, 1.3, 0.7, 0.4, 0.7, 1.3, 3, 13],\n\t\t9: [18, 4, 1.7, 0.9, 0.5, 0.5, 0.9, 1.7, 4, 18],\n\t\t10: [22, 5, 2, 1.4, 0.6, 0.4, 0.6, 1.4, 2, 5, 22],\n\t\t11: [24, 6, 3, 1.8, 0.7, 0.5, 0.5, 0.7, 1.8, 3, 6, 24],\n\t\t12: [33, 11, 4, 2, 1.1, 0.6, 0.3, 0.6, 1.1, 2, 4, 11, 33],\n\t\t13: [43, 13, 6, 3, 1.3, 0.7, 0.4, 0.4, 0.7, 1.3, 3, 6, 13, 43],\n\t\t14: [58, 15, 7, 4, 1.9, 1, 0.5, 0.2, 0.5, 1, 1.9, 4, 7, 15, 58],\n\t\t15: [88, 18, 11, 5, 3, 1.3, 0.5, 0.3, 0.3, 0.5, 1.3, 3, 5, 11, 18, 88],\n\t\t16: [110, 41, 10, 5, 3, 1.5, 1, 0.5, 0.3, 0.5, 1, 1.5, 3, 5, 10, 41, 110],\n\t},\n\t[Risk.HIGH]: {\n\t\t8: [29, 4, 1.5, 0.3, 0.2, 0.3, 1.5, 4, 29],\n\t\t9: [43, 7, 2, 0.6, 0.2, 0.2, 0.6, 2, 7, 43],\n\t\t10: [76, 10, 3, 0.9, 0.3, 0.2, 0.3, 0.9, 3, 10, 76],\n\t\t11: [120, 14, 5.2, 1.4, 0.4, 0.2, 0.2, 0.4, 1.4, 5.2, 14, 120],\n\t\t12: [170, 24, 8.1, 2, 0.7, 0.2, 0.2, 0.2, 0.7, 2, 8.1, 24, 170],\n\t\t13: [260, 37, 11, 4, 1, 0.2, 0.2, 0.2, 0.2, 1, 4, 11, 37, 260],\n\t\t14: [420, 56, 18, 5, 1.9, 0.3, 0.2, 0.2, 0.2, 0.3, 1.9, 5, 18, 56, 420],\n\t\t15: [620, 83, 27, 8, 3, 0.5, 0.2, 0.2, 0.2, 0.2, 0.5, 3, 8, 27, 83, 620],\n\t\t16: [\n\t\t\t1000, 130, 26, 9, 4, 2, 0.2, 0.2, 0.2, 0.2, 0.2, 2, 4, 9, 26, 130, 1000,\n\t\t],\n\t},\n};\n\nexport function getMultiplierByLinesQnt(\n\tlines: LinesType,\n\trisk: Risk,\n): MultiplierType[] {\n\treturn multiplyBlocksByLinesQnt[risk][lines].map(\n\t\t(value: MultiplierValues, index) =>\n\t\t\tgetMultiplier(value, lines, risk, index),\n\t);\n}\n","import { FC } from 'react';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { MultiplierBoxes } from '../MuliplierBoxes/MultiplierBoxes';\nimport { LinesType, Risk } from '../../types';\nimport { PlinkoResultStyled } from './PlinkoResult.styled';\n\nconst PlinkoResult: FC<{\n\tresult: number;\n\trows: LinesType;\n\trisk: Risk;\n}> = ({ result, risk, rows }) => {\n\tif (!isTrueOrZero(result) || !rows || !risk) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<PlinkoResultStyled $resultIndex={result} $risk={risk}>\n\t\t\t<MultiplierBoxes\n\t\t\t\tlines={rows}\n\t\t\t\trisk={risk}\n\t\t\t\tprofitError={null}\n\t\t\t\tmarkedBoxIndex={result}\n\t\t\t\tcompactView\n\t\t\t/>\n\t\t</PlinkoResultStyled>\n\t);\n};\n\nexport default PlinkoResult;\n","import { Risk } from '../../../../types';\n\nexport const getBallColor = (risk: Risk) => {\n\tswitch (risk) {\n\t\tcase Risk.LOW:\n\t\t\treturn {\n\t\t\t\tfill: '#0D6EFF',\n\t\t\t\tline: '#408BFC',\n\t\t\t};\n\t\tcase Risk.MEDIUM:\n\t\t\treturn {\n\t\t\t\tfill: '#c1a73d',\n\t\t\t\tline: '#c7ab7a',\n\t\t\t};\n\t\tcase Risk.HIGH:\n\t\t\treturn {\n\t\t\t\tfill: '#8548b2',\n\t\t\t\tline: '#7c5596',\n\t\t\t};\n\t}\n};\n","export const EMPTY_PATH = '&';\n\nexport enum Mode {\n\tPIXI = 'PIXI',\n\tMATTER = 'MATTER',\n}\n","import { IRendererOptions } from 'matter-js';\nimport { Mode } from './constants';\n\nconst labels = {\n\tball: 'ball',\n\tfloor: 'floor',\n\tpin: 'pin',\n\twall: 'wall',\n} as const;\nexport const colors = {\n\tbackground: 'transparent',\n\tpin: '#ffffff',\n} as const;\nconst scale = 1;\nconst pins = {\n\tstartPins: 3,\n\tpinSize: 2 * scale,\n\tpinGap: 20 * scale,\n\tstartToPinsSpace: 50 * scale,\n};\nconst world = {\n\twidth: 450 * scale,\n\theight: 450 * scale,\n\telement: 450,\n};\nconst ball = {\n\tballSize: 4.5 * scale,\n\ty: 2,\n\tmaxX: world.width / 2 + pins.pinSize * (4 * scale) + pins.pinGap,\n\tminX: world.width / 2 - pins.pinSize * (4 * scale) - pins.pinGap,\n};\nconst engine = {\n\tengineGravity: 2,\n};\nconst renderer: {\n\tbounds: {\n\t\tmax: {\n\t\t\ty: number;\n\t\t\tx: number;\n\t\t};\n\t\tmin: {\n\t\t\ty: number;\n\t\t\tx: number;\n\t\t};\n\t};\n\toptions: IRendererOptions;\n} = {\n\tbounds: {\n\t\tmax: {\n\t\t\ty: world.height,\n\t\t\tx: world.width,\n\t\t},\n\t\tmin: {\n\t\t\ty: 0,\n\t\t\tx: 0,\n\t\t},\n\t},\n\toptions: {\n\t\tshowPositions: false,\n\t\tshowPerformance: false,\n\t\tpixelRatio: 1,\n\t\tbackground: colors.background,\n\t\thasBounds: true,\n\t\twidth: world.width,\n\t\theight: world.height,\n\t\twireframes: false,\n\t},\n};\n\nexport const config = {\n\tmode: Mode.PIXI,\n\tpins,\n\tball,\n\tengine,\n\tworld,\n\tcolors,\n\tscale,\n\trenderer,\n\tlabels,\n};\n","import { GameType } from '@modules/games/Game/constants/availableGames';\n\nexport const PLINKO_PIN_COLLISION_EVENT = `${GameType.PLINKO}:event:pin-collision`;\nexport const PLINKO_RESULT_EVENT = `${GameType.PLINKO}:event:result`;\nexport const PLINKO_BET_ERROR_EVENT = `${GameType.PLINKO}:event:bet-error`;\n"],"names":["Dropdown","props","list","lastContent","get","id","content","scrollElement","title","onClick","width","className","css","cssProp","trans","jsonToString","add","show","addContent","prevProps","transactionService","this","undefined","isContent","close","isActiveString","active","localTheme","toggleList","name","styleType","ButtonStyleType","borderType","InputStyleType","label","namespace","DropdownArrow","help","React","enhanceComponent","connect","state","dropdown","dispatch","dropdownDelete","dropdownAdd","bool","dropdownToggle","dropdownGet","DropdownStyle","styled","boxNoHeight","error","Object","keys","length","theme","text","fonts","Bold","SyntaxStyle","SyntaxHighlighter","layout","borderRadius","fontSize","important","size","sizeDesktop","media","minWidthDesktop","ServerSeedInput","changeAsRedirect","goTo","autobetPaused","setConfirm","callback","question","pauseAutobet","SeedStoreController","value","isDisabled","inputButtons","loader","seed","serverHashed","gameAutobet","pause","seedRefreshServer","autobetPause","data","validUrl","closeModal","appGoTo","SettingsLayoutContext","createContext","sections","activeId","activeTabData","handleChangeSection","getSectionContent","SettingsLayoutDesktop","useContext","isLogged","useUserIsLogged","map","el","isActive","nameComponent","notification","NotificationIcon","panelTitle","isNarrow","SlideDownBoxElement","section","isLogged_","useCallback","isVisible","Title","Content","isContentInitVisible","isContentVisible","SettingsLayoutMobile","SettingsLayout","defaultTab","useState","setActiveId","setActiveTabData","useAppDispatch","isMobile","useAppMobile","routerQueryTab","useRouterQueryTab","isInitialized","useAppInitialized","checkActiveTab_","some","updateUrlQuery","tab","getSectionContent_","panelName","panelName_","classnames","handleChangeSection_","modal","openModal","getSectionData_","find","getSections_","activeId_","activeTabData_","useEffect","Provider","SlideDownBoxStyle","noDashboard","dashboard","padding","calcStyle","a","b","mode","SlideDownTitleStyle","isColor","colors","inputButton","SlideDownContentStyle","SlideDownBox","titleClasses","contentClasses","boxClasses","noScrollTo","isTrueOrZero","_isVisible","setIsVisible","ref","useRef","timeoutRef","prevIsContentVisible","usePrevious","handleClickTitle","event","current","clearTimeout","setTimeout","pageScrollTo","top","offsetTop","opened","checkHotkeysAllowed","disableHotKeys","document","activeElement","indexOf","localName","IMPLEMENTATION_CONFIG","GameType","code","description","implementation","cardsArray","join","multiplyBlocksByLinesQnt","risk","lines","GAMES_LIST","getGamesList","toUpperCase","ImplementationContainer","game","forms","bet_verification","setGame","formVerificationSetGame","setGame_","toLowerCase","default","index","transProvablyFair","language","style","dark","Redirect","target","rel","href","ClientSeedInput","ClientSeedInputContainer","client","MODAL_ID","SECTIONS","Session","fetch","nonce","PureComponent","SessionContainer","seedFetch","VerificationContainer","setClientSeed","payload","setServerSeed","setNonce","resetVerificationForm","client_seed","server_seed","rows_","rows","setRows","updateForm","field","setRisk","result","useStateEffect","diceVerification","hiloFullTailVerification","gameVerification","getResultFunction","server_seed_hashed","sha256","GamesStoreController","onChange","placeholder","LinesSwitch","compactView","update","RiskSwitch","GameSlider","rule","disable","betValues","static","noScroll","session","result_value","hiloResult","sub_nonce","LimboCounter","limboResult","animation","plinkoResult","path","PlinkoResult","ProvableFairOverview","ProvableFairOverviewTitleStyled","ProvableFairOverviewParagraphStyled","StyledProvablyFairGlobal","createGlobalStyle","Regular","height","regular","createNamespaceTrans","TransNamespace","SECTIONS_CONFIG","OVERVIEW","SESSION","VERIFICATION","IMPLEMENTATION","SECTIONS_CONTENT","ProvablyFairPage","seedSetServerHashed","actionSimple","SEED_SET_SERVER_HASHED","seedSetClient","SEED_SET_CLIENT","seedSetNonce","SEED_SET_NONCE","SEED_FETCH","seedRefreshClient","SEED_REFRESH_CLIENT","SEED_REFRESH_SERVER","DROPDOWN_SET_ACTIVE","DROPDOWN_SET_CONTENT","DROPDOWN_DELETE","DROPDOWN_ADD","DROPDOWN_TOGGLE","getState","gamesStoreProps","asyncReducers","asyncEpics","asyncDoNotReject","asyncPackage","PackageType","seedStoreProps","SubjectController","SubjectControllerClass","subjects","Subject","subscribe","message","next","left","element","body","parentElement","isFunction","scrollTo","behavior","autobet","AUTOBET","AUTOBET_PAUSE","autobetSetPause","AUTOBET_SET_PAUSE","autobetSetPauseData","AUTOBET_SET_PAUSE_DATA","saveAutobetStrategy","setActive","type","SAVE_AUTOBET_STRATEGY","editAutobetStrategy","EDIT_AUTOBET_STRATEGY","setAutobetStrategies","SET_AUTOBET_STRATEGIES","getAutobetStrategies","GET_AUTOBET_STRATEGIES","deleteAutobetStrategy","DELETE_AUTOBET_STRATEGY","setActiveAutobetStrategy","SET_ACTIVE_AUTOBET_STRATEGY","disableCheckAutobetStrategy","DISABLE_CHECK_AUTOBET_STRATEGY","autobetSummaryConnectionError","bet","onlyAlert","AUTOBET_SUMMARY_CONNECTION_ERROR","autobetSetRolls","AUTOBET_SET_ROLLS","autobetSetRollsCounter","AUTOBET_SET_ROLLS_COUNTER","autobetSetActive","AUTOBET_SET_ACTIVE","autoBetRolling","AUTOBET_ROLLING","autobetPlay","AUTOBET_PLAY","autobetStop","AUTOBET_STOP","autobetStopped","AUTOBET_STOPPED","autobetClear","AUTOBET_CLEAR","autobetSetMode","AUTOBET_SET_MODE","lsKey","LocalStorageKeys","autobetSetConfig","AUTOBET_SET_CONFIG","autobetSetEditModal","AUTOBET_SET_EDIT_MODAL","autobetSetConfigEasy","AUTOBET_SET_CONFIG_EASY","autobetUpdateConfigEasy","AUTOBET_UPDATE_CONFIG_EASY","autobetSetAutoStats","AUTOBET_SET_AUTO_STATS","autobetSetId","AUTOBET_SET_ID","autobetSetCurrency","AUTOBET_SET_CURRENCY","autobetSetManual","AUTOBET_SET_MANUAL","autobetResetToDefault","AUTOBET_RESET_TO_DEFAULT","autobetSetDefaults","AUTOBET_SET_DEFAULTS","useGameAutoBetIsRolling","useAppSelector","shallowEqual","useGameAutoBetActive","useGameAutoBetMode","useGameAutoBetCurrency","currency","useGameAutoBetStats","autoStats","useGameAutoBetRollsCounter","rollsCounter","useGameAutoBetConfigEasy","configEasy","activeGame","previous","useGameAutoBetPaused","useGameAutoBetStrategies","strategies","useGameAutoBetActiveStrategy","activeStrategy","useGameValidationFormError","gameValidation","formError","useGameValidationProfitError","profitError","obj","disableHotkeys","keyCode","getHotkey","preventDefault","updateTarget","roundNumber","parseFloat","setState","onEnd","timeout","hotkeys","window","addEventListener","handleKeyboard","onStart","removeEventListener","set","$length","toFixed","$screenWidth","screenWidth","$noTarget","small","end","start","duration","decimals","separator","icon","faTimes","getMarkedBallStyle","getBallColor","backgroundColor","fill","border","line","MultiplierBox","multiplier","count","enableAnimation","marked","boxEl","boxColorClassName","MultiplierColorCombinations","String","onResult","details","payoutIndex","audioService","Sounds","classList","remove","handler","PLINKO_RESULT_EVENT","unsubscribe","Number","MultiplierBoxes","onModal","markedBoxIndex","styleGrid","stateLines","usePlinkoLinesSelector","lines_","stateRisk","usePlinkoRiskSelector","risk_","profitErrorState","profitError_","multipliers","getMultiplierByLinesQnt","hideOnClick","gridTemplateColumns","gridTemplateRows","MultiplierColors","ORANGE","ORANGE_LIGHT","YELLOW_DARK","YELLOW","YELLOW_LIGHT","ORANGE_DARK","RED","RED_DARK","RED_DARKER","Risk","config","img","getMultiplier","$resultIndex","$risk","Mode","background","pin","pins","startPins","pinSize","pinGap","startToPinsSpace","world","ball","ballSize","y","maxX","minX","renderer","bounds","max","x","min","options","showPositions","showPerformance","pixelRatio","hasBounds","wireframes","engine","engineGravity","scale","labels","floor","wall","PLINKO_PIN_COLLISION_EVENT","PLINKO_BET_ERROR_EVENT"],"mappings":"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","debug_id":"dbbfa7f2-a3dd-5354-b879-46ce1b7de5b5"}