{"version":3,"file":"static/js/91877.c9a10ff2.chunk.js","mappings":"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","sources":["components/Shared/ConfirmationPopover/ConfirmationPopover.styled.ts","components/Shared/ConfirmationPopover/ConfirmationPopover.tsx","deviceactionmanager/DeviceActionManager.ts","newelements/_Betslip/utils/constants/doBet.ts","hooks/betslip/useDoBet.ts","hooks/betslip/useSuperBetAvailable.ts","hooks/useOddChange.tsx","hooks/usePredefinedStakes.ts","newcomponents/Shared/account/PlayerActivityChecker/types.ts","newelements/_Betslip/layouts/Basic/managers/EditBetManager/editBetActions.ts","newelements/_Betslip/types/edit-bet.ts","newelements/_Betslip/utils/generic/getAdvancedMultipleGeneralField.ts","newhooks/account/useCheckGeoComply.ts","newhooks/sportsbook/useOddButtonPosition.ts","services/bet-slip.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const ConfirmationPopoverStyled = styled.div`\n width: ${isMobile() ? '264px' : '328px'};\n padding: 4px 0;\n`;\n\nexport const MainSectionStyled = styled.div`\n display: flex;\n align-items: center;\n padding-bottom: 16px;\n`;\n\nexport const MainSectionIconStyled = styled.div`\n width: 68px;\n min-width: 68px;\n height: 68px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--v3-black-4);\n & > div {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--v3-black-6);\n & path {\n fill: var(--v3-primary-6);\n }\n }\n`;\n\nexport const MainSectionWrapperStyled = styled.div`\n width: 100%;\n padding-left: 8px;\n`;\n\nexport const MainSectionTitleStyled = styled.div`\n font-weight: 600;\n font-size: 16px;\n line-height: 24px;\n color: var(--v3-text-color);\n padding-bottom: 4px;\n`;\n\nexport const MainSectionMessageStyled = styled.div`\n font-weight: normal;\n font-size: 14px;\n line-height: 20px;\n color: var(--v3-text-color-secondary);\n`;\n\nexport const CheckboxSectionWrapperStyled = styled.div`\n padding: 16px 0;\n border-top: 1px solid var(--v3-black-6);\n`;\n\nexport const CheckboxSectionStyled = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n cursor: pointer;\n`;\n\nexport const ButtonsSectionStyled = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const ButtonWrapperStyled = styled.div`\n width: calc(50% - 4px);\n`;\n","import {\n memo,\n ReactElement,\n Suspense,\n SyntheticEvent,\n useCallback,\n useEffect,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { lazy as lazyimport } from 'utils/generic/lazy';\nimport {\n ButtonsSectionStyled,\n ButtonWrapperStyled,\n CheckboxSectionStyled,\n CheckboxSectionWrapperStyled,\n ConfirmationPopoverStyled,\n MainSectionIconStyled,\n MainSectionMessageStyled,\n MainSectionStyled,\n MainSectionTitleStyled,\n MainSectionWrapperStyled\n} from './ConfirmationPopover.styled';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Button } from 'newcomponents/UI/Button';\nimport { Checkbox } from 'newcomponents/UI/Checkbox';\nimport { toggleQuickBetPopup } from 'store/actions/betslip';\nimport { getRecaptchaEnabled } from 'store/selectors/app-data';\nimport { getShouldShowQuickBetInfoPopover } from 'store/selectors/betslip';\n\nconst { Recaptcha } = lazyimport(\n () => import(/* webpackChunkName: \"recaptcha\" */ 'components/Recaptcha')\n);\n\ntype TProps = {\n onCancel?: (event: SyntheticEvent) => void | null;\n onConfirm?: (event?: MouseEvent) => void;\n validateRecaptcha?: boolean;\n selectedEvents?: string[];\n};\n\nexport const ConfirmationPopover = memo(\n ({\n onCancel,\n onConfirm,\n validateRecaptcha,\n selectedEvents\n }: TProps): ReactElement => {\n const dispatch = useDispatch();\n const shouldShowQuickBetInfoPopover = useSelector(\n getShouldShowQuickBetInfoPopover\n );\n\n const recaptchaEnabled = useSelector(getRecaptchaEnabled);\n const [shouldValidateRecaptchaV3, setShouldValidateRecaptchaV3] =\n useState(false);\n\n const { t } = useTranslation();\n\n const onPlaceBet = useCallback(\n (event: SyntheticEvent) => {\n event?.stopPropagation();\n\n recaptchaEnabled ? setShouldValidateRecaptchaV3(true) : onConfirm?.();\n },\n [recaptchaEnabled]\n );\n\n useEffect(() => {\n validateRecaptcha && setShouldValidateRecaptchaV3(true);\n }, [validateRecaptcha, selectedEvents]);\n\n return (\n <>\n {!validateRecaptcha && (\n \n \n \n \n \n
\n \n \n \n {t('betslip.howToBet')}\n \n \n {t('betslip.howToBetMessage')}\n \n \n \n \n {\n event.stopPropagation();\n\n dispatch(toggleQuickBetPopup());\n }}\n >\n \n {t('betslip.dontShowMessage')}\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {recaptchaEnabled && (\n \n {\n onConfirm?.();\n setShouldValidateRecaptchaV3(false);\n }}\n shouldValidate={shouldValidateRecaptchaV3}\n />\n \n )}\n >\n );\n }\n);\n","import { iOSWrapperApp } from 'utils/constants/swarm/spring-configs';\n\nexport const deviceActionManager = {\n vibrate: handleHapticFeedback\n //Can add more managers here\n};\n\nfunction handleHapticFeedback(\n message: 'impactLight' | 'impactMedium' | 'impactHeavy'\n) {\n const hapticMessage = { type: message };\n\n if (iOSWrapperApp) {\n window?.webkit?.messageHandlers?.triggerHaptic.postMessage(hapticMessage);\n } else {\n if (window.triggerHaptic) {\n window.triggerHaptic.postMessage(JSON.stringify(hapticMessage));\n }\n }\n}\n","export const BETSLIP_DO_BET_CONSTANTS = {\n ukBetSource: '136132'\n};\n","import { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { message as antMessage } from 'antd';\nimport {\n getBetSlipFromLs,\n getType,\n removeAllBetSlipEvent,\n removeBetSlipEvent\n} from 'utils/betslip/betslip';\nimport LS from 'utils/bom-dom-manipulation/local-storage';\nimport {\n BET_SP_COEFICIENT,\n COUNTER_OFFER_ACTIVE_TYPE,\n SUPER_BET_ACTIVE_TYPE\n} from 'utils/constants/app/magic-numbers-app';\nimport {\n BET_TYPE_NAMES_KEYS,\n BET_TYPES,\n EDIT_BET_STATUSES_TO_REMOVE_EVENT_FROM_BETSLIP\n} from 'utils/constants/betslip/bet-types';\nimport { ERROR_CODE_TIMEOUT_1800 } from 'utils/constants/dateInfo/time-numbers';\nimport { backendErrorCodes } from 'utils/constants/swarm/backend-error-codes';\nimport { BackendStatusCodes } from 'utils/constants/swarm/backend-status-codes';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { showToastError } from 'utils/generic/show-toast-error';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\nimport { customizeMessage } from 'utils/swarm/swarm-error-handler';\nimport {\n BetSlipEventObj,\n EAdvancedSelectedTabs,\n UkBets\n} from 'interfaces/bet-data';\nimport {\n doBetProps,\n EAfterSuccessfulBet,\n EBetslipBetType,\n EBetslipType,\n TSuperBetEventType\n} from 'interfaces/betslip';\nimport { doBet } from 'services/bet-slip';\nimport { clearEditBet } from 'newelements/_Betslip/layouts/Basic/managers/EditBetManager/editBetActions';\nimport {\n calculateAndDispatchSingleBetsUpdates,\n calculateAndDispatchUpdates\n} from 'newelements/_Betslip/utils/action-middlewares/store-actions-middlewares/calculateAndDispatchUpdates';\nimport { BETSLIP_DO_BET_CONSTANTS } from 'newelements/_Betslip/utils/constants/doBet';\nimport { GENERAL_FIELD_KEY } from 'newelements/_Betslip/utils/constants/shared';\nimport { getIsMultipleGeneralField } from 'newelements/_Betslip/utils/generic/getAdvancedMultipleGeneralField';\nimport { useSuperBetAvailable } from 'hooks/betslip/useSuperBetAvailable';\nimport { usePredefinedStakes } from 'hooks/usePredefinedStakes';\nimport { UseCheckGeoComply } from 'newhooks/account/useCheckGeoComply';\nimport { batchActions, setCounterOffersUnderReviewModal } from 'store/actions';\nimport {\n removeFreeBetItem,\n removeProfitBoostItem,\n setBetslipOpen,\n setBetUkType,\n setIsBetInProgress,\n setOpenBetsLoading,\n setSelectedProfitBoostEventId,\n setSentCounterOffersCount,\n setSentSuperBetCount,\n triggerBetted\n} from 'store/actions/betslip';\nimport {\n getAdvancedSelectedTab,\n getAllLsBets,\n getAllStakes,\n getBetsCalculations,\n getBetslipType,\n getBetTypesConf,\n getBookBetId,\n getComputedBetType,\n getCounterOfferActiveEventIds,\n getEditBet,\n getIsFreeBetEnabled,\n getOddsCounterOffers,\n getSelectedFreeBetAmount,\n getSelectedProfitBoostItem,\n getSelectedSystem,\n getSentCounterOffersCount,\n getSentSuperBetCount,\n getSuperBetActiveEventIds\n} from 'store/selectors/betslip';\nimport { getFreeBets } from 'store/selectors/betslip/freeBet';\nimport { getPartnerConfigs } from 'store/selectors/socket';\n/* eslint-disable no-magic-numbers */\n\n// @Todo betslip-types move into betslip types\ntype TBetObject = {\n amount: number;\n bets: Array<{\n event_id: number;\n price: number;\n }>;\n type: number;\n mode: number;\n source: string;\n bonus_id?: number;\n sys_bet?: number;\n booking_id?: number;\n each_way?: boolean;\n};\n\ntype Props = {\n currentType: EBetslipBetType;\n setAcceptBet: (value: ((prevState: boolean) => boolean) | boolean) => void;\n setSelected: (data: string) => void;\n toggleBetslipView: (open: boolean) => void;\n betslipRef: { current: HTMLElement | null | undefined };\n totalSingleWin: number;\n totalStake: number;\n setShouldValidateRecaptchaV3: (\n value: ((prevState: boolean) => boolean) | boolean\n ) => void;\n};\n\ntype UseDoBetType = {\n clearUkTypes: () => void;\n onPlaceBet: () => void;\n};\n\ntype TSuperBetError = {\n result?: number;\n result_text?: string;\n StatusCode?: string;\n};\n\ntype TDoBetErrorCallback = {\n data: {\n result: number;\n };\n StatusCode: string;\n details?: Record;\n result_text?: string;\n result?: number;\n};\n\nexport const useDoBet = ({\n currentType,\n setAcceptBet,\n setSelected,\n toggleBetslipView,\n betslipRef,\n totalSingleWin,\n totalStake,\n setShouldValidateRecaptchaV3\n}: Props): UseDoBetType => {\n const { predefinedStakes } = usePredefinedStakes();\n const stakes = useSelector(getAllStakes);\n const selectedProfitBoostItem = useSelector(getSelectedProfitBoostItem);\n\n const dispatch = useDispatch();\n\n const partnerConfigs = useSelector(getPartnerConfigs);\n const system = useSelector(getSelectedSystem);\n const allLsBets = useSelector(getAllLsBets);\n const editBet = useSelector(getEditBet);\n const betTypesConf = useSelector(getBetTypesConf);\n const betslipType = useSelector(getBetslipType);\n const sentCounterOffersCount = useSelector(getSentCounterOffersCount);\n const sentSuperBetCount = useSelector(getSentSuperBetCount);\n const oddsOffers = useSelector(getOddsCounterOffers);\n const bookBetId = useSelector(getBookBetId);\n const advancedSelectedTab = useSelector(getAdvancedSelectedTab);\n const betslipBetType = useSelector(getComputedBetType);\n\n const { singleEventsCalculations, general } =\n useSelector(getBetsCalculations);\n\n const superBetActiveEventIds = useSelector(getSuperBetActiveEventIds);\n const counterOfferActiveEventIds = useSelector(getCounterOfferActiveEventIds);\n const { selectedFreeBetEventId, selectedFreeBetId } =\n useSelector(getFreeBets);\n\n const isFreeBetEnabled = useSelector(getIsFreeBetEnabled);\n const selectedFreeBetAmount = useSelector(getSelectedFreeBetAmount);\n\n const { t } = useTranslation();\n\n const isSuperBetAvailable = useSuperBetAvailable();\n const { doBetHandler } = useDoBetHandler();\n\n const setInProgress = (data: boolean) => {\n dispatch(setIsBetInProgress(data));\n };\n\n const removeActiveTabLoading = () => {\n dispatch(setOpenBetsLoading(true));\n };\n\n const handleSuperBetError = (\n eventId: TSuperBetEventType,\n error: TSuperBetError\n ) => {\n if (error.result === BackendStatusCodes.betslip.useSuperBet) {\n const errorMessage = backendErrorCodes[error.result]\n ? t(backendErrorCodes[error.result])\n : error.result_text || error.StatusCode || '';\n\n const message = customizeMessage(errorMessage, error);\n\n if (message) {\n const content = `${message} ${\n isSuperBetAvailable\n ? `${t(\n 'swarm.useSuperBet'\n )}`\n : ''\n }`;\n\n showToastError(\n content,\n null,\n null,\n () => {\n antMessage.destroy(content);\n\n if (!superBetActiveEventIds.some(id => id == eventId)) {\n calculateAndDispatchUpdates({ id: eventId, superBet: true });\n }\n\n if (isMobile()) {\n dispatch(setBetslipOpen(true));\n }\n },\n { cursor: 'pointer' }\n );\n }\n }\n };\n\n const getBetObj = (\n bets: Array>,\n betType: number,\n each_way?: boolean\n ) => {\n const sendTag = bets.every(({ tag }) => !!tag);\n const firstEventId = bets[0].eventId;\n\n const mode = (() => {\n // this is for single do bet and it's temporary\n const isCounterOfferActive =\n counterOfferActiveEventIds.some(id => id == firstEventId) &&\n bets.length === 1;\n\n const isSuperBetActive = superBetActiveEventIds.some(\n id => firstEventId == id || id === GENERAL_FIELD_KEY\n );\n\n const isSuperBetAllowForPrematch =\n SpringConfigs.SUPER_BET_DEFAULT_ON &&\n bets.every(({ isLive }) => !isLive);\n\n const isSuperBetActiveForLive =\n SpringConfigs.SUPER_BET_DEFAULT_ON &&\n partnerConfigs?.is_superbet_on_live;\n\n const shouldBetWithSuperBet =\n isSuperBetActive ||\n isSuperBetAllowForPrematch ||\n isSuperBetActiveForLive;\n\n if (isCounterOfferActive) {\n return COUNTER_OFFER_ACTIVE_TYPE;\n }\n\n if (shouldBetWithSuperBet) {\n return SUPER_BET_ACTIVE_TYPE;\n }\n\n return Number(\n JSON.parse(LS.getItem(storageKeyName('betslip', 'ACCEPT_BET')))?.value\n );\n })();\n\n const amount = (() => {\n const isFreeBet =\n isFreeBetEnabled && selectedFreeBetId && selectedFreeBetAmount;\n\n if (isFreeBet) {\n return selectedFreeBetAmount;\n }\n\n if (currentType !== EBetslipBetType.SINGLE) {\n return general?.finalStake || 0;\n }\n\n return (\n (bets[0].eventId &&\n singleEventsCalculations[bets[0].eventId]?.finalStake) ||\n 0\n );\n })();\n\n const betEvents = bets.map(bet => ({\n event_id: Number(bet.eventId),\n price: bet.sp ? BET_SP_COEFICIENT : Number(bet.coeficient),\n ...(sendTag ? { tag: bet.tag } : {}),\n booking_id: bet.booking_id\n }));\n\n const betObj: TBetObject = {\n amount,\n bets: betEvents,\n type: betType,\n mode,\n source: String(SpringConfigs.SOURCE)\n };\n\n if (isFreeBetEnabled && selectedFreeBetId) {\n betObj.bonus_id = selectedFreeBetId;\n }\n\n if (betType === BET_TYPES.SYSTEM) {\n betObj.sys_bet = system?.value;\n }\n\n if (each_way) {\n betObj.each_way = each_way;\n }\n\n if (bookBetId) {\n betObj.booking_id = Number(bookBetId);\n }\n\n if (\n selectedProfitBoostItem &&\n (betType === BET_TYPES.SINGLE || betType === BET_TYPES.MULTIPLE)\n ) {\n betObj.bonus_id = selectedProfitBoostItem.id;\n }\n\n return betObj;\n };\n\n const singleDoBet = () => {\n allLsBets.forEach(bet => {\n if (selectedFreeBetEventId && bet.eventId !== selectedFreeBetEventId) {\n return;\n }\n\n if (\n (singleEventsCalculations[bet.eventId]?.finalStake ??\n predefinedStakes.default_stake) ||\n editBet?.amount ||\n selectedFreeBetEventId\n ) {\n const isCounterOfferActive =\n singleEventsCalculations[bet.eventId] &&\n 'oddOffer' in singleEventsCalculations[bet.eventId];\n\n const data = {\n ...getBetObj(\n [\n {\n eventId: Number(bet.eventId),\n coeficient: bet.sp\n ? BET_SP_COEFICIENT\n : isCounterOfferActive\n ? oddsOffers[`odd${bet.eventId}`]\n : Number(bet.coeficient),\n tag: bet.tag,\n isLive: bet.isLive,\n booking_id: bet.booking_id\n }\n ],\n BET_TYPES.SINGLE\n ),\n each_way: bet.each_way\n };\n\n doBetHandler(\n data,\n (responce: any) => {\n const { result } = responce || {};\n setInProgress(false);\n\n if (result === 'OK') {\n dispatch(triggerBetted());\n\n if (selectedProfitBoostItem) {\n dispatch(\n batchActions(\n removeProfitBoostItem({\n id: data.bonus_id,\n eventId: bet.eventId\n }),\n setSelectedProfitBoostEventId(null)\n )\n );\n }\n\n if (\n SpringConfigs.AFTER_SUCCESSFUL_BET ===\n EAfterSuccessfulBet.REMOVE_EVENTS\n ) {\n removeActiveTabLoading();\n removeBetSlipEvent(bet.eventId);\n }\n\n if (isFreeBetEnabled && selectedFreeBetId) {\n dispatch(removeFreeBetItem(selectedFreeBetId));\n }\n\n LS.removeItem(storageKeyName('betslip', 'EDIT_BET_ACTIVE'));\n\n if (getBetSlipFromLs().bets.length === 0) {\n toggleBetslipView(false);\n }\n\n clearEditBet();\n\n if (responce.details?.is_superbet) {\n if (isCounterOfferActive) {\n dispatch(\n setSentCounterOffersCount(sentCounterOffersCount + 1)\n );\n dispatch(setCounterOffersUnderReviewModal(true));\n } else {\n dispatch(setSentSuperBetCount(sentSuperBetCount + 1));\n }\n }\n\n calculateAndDispatchUpdates({\n id: GENERAL_FIELD_KEY,\n stake: ''\n });\n calculateAndDispatchUpdates({\n id: bet.eventId,\n stake: ''\n });\n setSelected('');\n }\n },\n (e: TDoBetErrorCallback) => {\n setInProgress(false);\n\n if (e.data && e.data.result === ERROR_CODE_TIMEOUT_1800) {\n setAcceptBet(true);\n }\n\n handleSuperBetError(bet.eventId, e);\n\n if (\n e?.StatusCode &&\n SpringConfigs.REMOVE_SUSPENDED_SELECTION &&\n EDIT_BET_STATUSES_TO_REMOVE_EVENT_FROM_BETSLIP.includes(\n e.StatusCode\n )\n ) {\n removeAllBetSlipEvent();\n }\n },\n setAcceptBet,\n document.getElementById('betslip-wrapper') || betslipRef.current\n );\n }\n });\n };\n\n const multipleAndSystemDoBet = (betType: number) => {\n if (Number(general?.finalStake) || selectedFreeBetId || editBet?.amount) {\n const each_way = !!general?.isEachWay;\n\n doBetHandler(\n getBetObj(allLsBets, betType, each_way),\n (responce: any) => {\n const { result } = responce;\n setInProgress(false);\n\n if (result === 'OK') {\n clearEditBet();\n dispatch(triggerBetted());\n\n if (\n SpringConfigs.AFTER_SUCCESSFUL_BET ===\n EAfterSuccessfulBet.REMOVE_EVENTS\n ) {\n removeActiveTabLoading();\n removeAllBetSlipEvent();\n }\n\n LS.removeItem(storageKeyName('betslip', 'EDIT_BET_ACTIVE'));\n\n if (responce.details?.is_superbet) {\n // at the moment we can only do bet with counter offer using single type, but in future we should add opportunity also for multiple and system\n // if (isCounterOfferActive) {\n // dispatch(setSentCounterOffersCount(sentCounterOffersCount + 1));\n // } else {\n dispatch(setSentSuperBetCount(sentSuperBetCount + 1));\n // }\n }\n\n if (isFreeBetEnabled && selectedFreeBetId) {\n dispatch(removeFreeBetItem(selectedFreeBetId));\n }\n\n if (selectedProfitBoostItem) {\n dispatch(\n batchActions(\n removeProfitBoostItem({\n id: selectedProfitBoostItem.id,\n eventId: GENERAL_FIELD_KEY\n }),\n setSelectedProfitBoostEventId(null)\n )\n );\n }\n\n if (getBetSlipFromLs().bets.length === 0) {\n toggleBetslipView(false);\n }\n\n calculateAndDispatchUpdates({\n id: GENERAL_FIELD_KEY,\n stake: ''\n });\n calculateAndDispatchSingleBetsUpdates('', Object.keys(stakes));\n setSelected('');\n }\n },\n (error: TSuperBetError) => {\n setInProgress(false);\n\n handleSuperBetError(\n getType(betslipBetType) as TSuperBetEventType,\n error\n );\n },\n setAcceptBet,\n document.getElementById('betslip-wrapper') || betslipRef.current\n );\n }\n };\n\n const ukDoBet = () => {\n const stakesCount = Object.keys(stakes.single).length;\n const isPartialBet = stakesCount > 0 && stakesCount < allLsBets.length;\n\n const stake =\n stakes.general ||\n Object.values(stakes.single).find(stake => Number(stake) > 0);\n\n if (\n (isPartialBet ||\n parseFloat(stake || '0') > 0 ||\n (totalSingleWin > 0 && totalStake > 0) ||\n (selectedFreeBetEventId &&\n selectedFreeBetEventId !== GENERAL_FIELD_KEY)) &&\n (advancedSelectedTab !== EAdvancedSelectedTabs.QUICKBET ||\n allLsBets.length === 1)\n ) {\n singleDoBet();\n }\n\n const mode = SpringConfigs.SUPER_BET_DEFAULT_ON\n ? -1\n : Number(\n JSON.parse(LS.getItem(storageKeyName('betslip', 'ACCEPT_BET'))).value\n );\n\n const bets = allLsBets.map(bet => {\n return {\n event_id: Number(bet.eventId),\n price: bet.sp ? BET_SP_COEFICIENT : Number(bet.coeficient),\n booking_id: bet.booking_id\n };\n });\n\n const data: {\n bets: Array<{\n event_id: number;\n price: number;\n booking_id?: number;\n }>;\n mode?: number;\n amount: number;\n type: number;\n source?: string;\n sys_bet?: number;\n each_way?: boolean;\n bonus_id?: number;\n } = {\n bets: bets,\n mode: mode,\n amount: 0,\n type: 2,\n sys_bet: 0,\n each_way: false\n };\n\n let updatedBetTypes = structuredClone(betTypesConf);\n\n if (advancedSelectedTab === EAdvancedSelectedTabs.QUICKBET) {\n updatedBetTypes = updatedBetTypes.filter(\n betItem =>\n betItem.count === allLsBets.length &&\n !betItem.strongCount &&\n betItem.type !== 1\n );\n }\n\n updatedBetTypes.map((item: UkBets) => {\n if (\n (item.amount > 0 && item.type !== 1) ||\n (selectedFreeBetEventId === GENERAL_FIELD_KEY && item.combCount === 1)\n ) {\n data.amount = item.each_way\n ? +item.amount * 2\n : selectedFreeBetEventId === GENERAL_FIELD_KEY\n ? selectedFreeBetAmount || 0\n : item.amount;\n data.sys_bet = Number(item.sys_bet);\n data.type = item.type;\n data.each_way = item.each_way;\n data.source = BETSLIP_DO_BET_CONSTANTS.ukBetSource;\n\n if (selectedFreeBetEventId === GENERAL_FIELD_KEY && selectedFreeBetId) {\n data.bonus_id = selectedFreeBetId;\n }\n\n if (\n item.count === allLsBets.length &&\n betslipType === EBetslipType.ADVANCED &&\n selectedProfitBoostItem?.boost_max_bet_amounts &&\n data.amount <=\n selectedProfitBoostItem?.boost_max_bet_amounts?.MaxBetAmount\n ) {\n data.bonus_id = selectedProfitBoostItem.id;\n }\n\n doBetHandler(\n data,\n (response: any) => {\n const { result } = response;\n setInProgress(false);\n\n if (result === 'OK') {\n dispatch(triggerBetted());\n\n if (selectedProfitBoostItem) {\n dispatch(\n batchActions(\n removeProfitBoostItem({\n id: selectedProfitBoostItem.id,\n eventId: GENERAL_FIELD_KEY\n }),\n setSelectedProfitBoostEventId(null)\n )\n );\n }\n\n if (\n SpringConfigs.AFTER_SUCCESSFUL_BET ===\n EAfterSuccessfulBet.REMOVE_EVENTS\n ) {\n removeActiveTabLoading();\n removeAllBetSlipEvent();\n }\n\n clearUkTypes();\n }\n\n setSelected('');\n },\n (e: TDoBetErrorCallback) => {\n const betType = getIsMultipleGeneralField(item)\n ? EBetslipBetType.MULTIPLE\n : EBetslipBetType.SYSTEM;\n\n setInProgress(false);\n\n handleSuperBetError(betType, e);\n\n if (e.data?.result === ERROR_CODE_TIMEOUT_1800) {\n setAcceptBet(true);\n }\n },\n undefined,\n document.getElementById('betslip-wrapper') || betslipRef.current\n );\n }\n });\n };\n\n const clearUkTypes = useCallback(() => {\n let betTypesConfData: Array = [];\n betTypesConfData = JSON.parse(JSON.stringify(betTypesConf));\n betTypesConfData.map(betType => {\n betType.active = false;\n betType.stake = '';\n betType.amount = 0;\n betType.each_way = false;\n\n if (betType.name === 'Single') {\n betType.combCount = 1;\n }\n });\n\n dispatch(setBetUkType(betTypesConfData));\n }, [betTypesConf]);\n\n const onPlaceBet = () => {\n setAcceptBet(false);\n setInProgress(true);\n setShouldValidateRecaptchaV3(false);\n\n if (betslipType === 0) {\n switch (BET_TYPE_NAMES_KEYS[currentType]) {\n case BET_TYPE_NAMES_KEYS[EBetslipBetType.SINGLE]:\n singleDoBet();\n break;\n case BET_TYPE_NAMES_KEYS[EBetslipBetType.MULTIPLE]:\n multipleAndSystemDoBet(BET_TYPES.MULTIPLE);\n break;\n case BET_TYPE_NAMES_KEYS[EBetslipBetType.CHAIN]:\n multipleAndSystemDoBet(BET_TYPES.CHAIN);\n break;\n case BET_TYPE_NAMES_KEYS[EBetslipBetType.SYSTEM]:\n multipleAndSystemDoBet(BET_TYPES.SYSTEM);\n }\n } else {\n ukDoBet();\n }\n };\n\n return {\n clearUkTypes,\n onPlaceBet\n };\n};\n\nexport const useDoBetHandler = (): {\n doBetHandler: (\n data: doBetProps,\n callback: Function,\n callbackError: Function | null,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n ) => void;\n} => {\n const { checkActionAllowed } = UseCheckGeoComply();\n\n const doBetHandler = (\n data: doBetProps,\n callback: Function,\n callbackError: Function | null,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n ) => {\n if (SpringConfigs.GEO_COMPLY_ENABLED) {\n checkActionAllowed('do_bet')\n .then(geo_comply_token => {\n data.location_token = geo_comply_token as string;\n doBet(data, callback, callbackError, setAcceptBet, messageContext);\n })\n .catch(e => {\n callbackError &&\n callbackError({\n data: {\n result: 0\n },\n StatusCode: '0'\n });\n console.info(e);\n });\n\n return;\n } else {\n doBet(data, callback, callbackError, setAcceptBet, messageContext);\n }\n };\n\n return {\n doBetHandler\n };\n};\n","import { useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport {\n getAllLsBets,\n getBetslipType,\n getEditBet\n} from 'store/selectors/betslip';\nimport { getPartnerConfigs } from 'store/selectors/socket';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\n\nexport const useSuperBetAvailable = () => {\n const partnerConfigs = useSelector(getPartnerConfigs);\n const isLoggedIn = useSelector(getIsLoggedIn);\n const user = useSelector(getUser);\n const betslipType = useSelector(getBetslipType);\n const allLsBets = useSelector(getAllLsBets);\n const editBet = useSelector(getEditBet);\n\n if (\n !isLoggedIn ||\n !allLsBets?.length ||\n !partnerConfigs ||\n betslipType === 1 ||\n editBet?.active ||\n SpringConfigs.SUPER_BET_DEFAULT_ON\n ) {\n return false;\n }\n\n return (\n user.is_super_bet_available &&\n !allLsBets.some(\n ({ isLive, game_info }) =>\n (isLive\n ? !partnerConfigs.is_superbet_on_live\n : !partnerConfigs.is_superbet_on_prematch) ||\n (game_info &&\n Object.prototype.hasOwnProperty.call(game_info, 'virtual'))\n )\n );\n};\n","import {\n Dispatch,\n SetStateAction,\n SyntheticEvent,\n useCallback,\n useMemo,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { removeBetSlipEvent } from 'utils/betslip/betslip';\nimport LS from 'utils/bom-dom-manipulation/local-storage';\nimport {\n COUNTER_OFFER_ACTIVE_TYPE,\n SUPER_BET_ACTIVE_TYPE\n} from 'utils/constants/app/magic-numbers-app';\nimport { BET_TYPES } from 'utils/constants/betslip/bet-types';\nimport { ERROR_CODE_TIMEOUT_1800 } from 'utils/constants/dateInfo/time-numbers';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { showToastError } from 'utils/generic/show-toast-error';\nimport { showToastWarning } from 'utils/generic/show-toast-warning';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\nimport { TPopover } from 'interfaces/betslip';\nimport { PartnerConfig } from 'interfaces/partner-config';\nimport { useOpenLoginPopup } from './account/useOpenLoginPopup';\nimport { useDoBetHandler } from 'hooks/betslip/useDoBet';\nimport {\n setQuickBetSelectedEventId,\n setQuickSingleBetslipOpen,\n triggerBetted,\n updateQuickBetInProcessCount\n} from 'store/actions/betslip';\nimport {\n getAllLsBets,\n getCounterOfferActiveEventIds,\n getEditBet,\n getQuickBetEnabled,\n getQuickBetStake,\n getShouldShowQuickBetInfoPopover,\n getSuperBetActiveEventIds\n} from 'store/selectors/betslip';\nimport { getPartnerConfigs } from 'store/selectors/socket';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\n\nexport type TOddChangeHandler = (\n eventId: string,\n price: number,\n sp?: boolean,\n prevSp?: boolean,\n sendPostMessageToIframeSportsbook?: () => void\n) => void;\n\nexport type TOddChange = {\n oddChangeHandler: TOddChangeHandler;\n popover: TPopover;\n hidePopover: () => void;\n};\n\nexport const useOddChange = (\n setSelectedEvents: Dispatch>,\n addToBetSlip: (eventId: string | number, sp?: boolean) => void,\n selectedEvents: string[]\n): TOddChange => {\n const [popover, setPopover] = useState(null);\n\n const dispatch = useDispatch();\n const isLoggedIn = useSelector(getIsLoggedIn);\n const history = useHistory();\n const { t } = useTranslation();\n const quickBetEnabled = useSelector(getQuickBetEnabled);\n const shouldShowQuickBetInfoPopover = useSelector(\n getShouldShowQuickBetInfoPopover\n );\n\n const quickBetStake = useSelector(getQuickBetStake);\n const editBet = useSelector(getEditBet);\n const partnerConfig = useSelector(getPartnerConfigs) as PartnerConfig;\n const superBetEventIds = useSelector(getSuperBetActiveEventIds);\n const counterOfferEventIds = useSelector(getCounterOfferActiveEventIds);\n\n const allLsBets = useSelector(getAllLsBets);\n\n const openLoginPopup = useOpenLoginPopup();\n const { doBetHandler } = useDoBetHandler();\n\n const toggleScroll = useCallback((type: 'enable' | 'disable'): void => {\n if (!isMobile()) {\n const elements = document.querySelectorAll('[data-popover-parent]');\n\n elements.forEach((element: Element) => {\n if (element instanceof HTMLElement) {\n if (type === 'enable') {\n element.style.overflow = 'auto';\n } else {\n element.style.overflow = 'hidden';\n }\n }\n });\n }\n }, []);\n\n const handleSubmit = useCallback(\n (event: { id: string; price: number; booking_id?: number }) => {\n if (!isLoggedIn) {\n openLoginPopup();\n\n return;\n }\n\n const messageContext = isMobile()\n ? document.body\n : document.getElementById('betslip-wrapper');\n\n if (event && quickBetStake) {\n // @Todo\n const isCounterOfferActive = counterOfferEventIds.some(\n id => id == event.id\n );\n\n const isSuperBetActive = superBetEventIds.some(id => id == event.id);\n dispatch(updateQuickBetInProcessCount('increase'));\n doBetHandler(\n {\n amount: Number(quickBetStake),\n bets: [\n {\n event_id: Number(event.id),\n price: Number(event.price),\n booking_id: event.booking_id\n }\n ],\n type: BET_TYPES.SINGLE,\n mode: isCounterOfferActive\n ? COUNTER_OFFER_ACTIVE_TYPE\n : isSuperBetActive || SpringConfigs.SUPER_BET_DEFAULT_ON\n ? SUPER_BET_ACTIVE_TYPE\n : Number(\n JSON.parse(\n LS.getItem(storageKeyName('betslip', 'ACCEPT_BET'))\n ).value\n )\n },\n (response: { result: object | string | number }) => {\n const { result } = response;\n dispatch(setQuickBetSelectedEventId(''));\n\n if (result !== 'OK' && result !== ERROR_CODE_TIMEOUT_1800) {\n showToastError(t('betslip.wentWrong'));\n dispatch(updateQuickBetInProcessCount('decrease'));\n\n return;\n }\n\n dispatch(updateQuickBetInProcessCount('decrease'));\n setSelectedEvents([]);\n dispatch(triggerBetted());\n },\n () => {\n dispatch(updateQuickBetInProcessCount('decrease'));\n setSelectedEvents([]);\n\n dispatch(setQuickBetSelectedEventId(''));\n },\n () => {},\n messageContext\n );\n }\n },\n [isLoggedIn, history, quickBetStake, setSelectedEvents, dispatch, t]\n );\n\n const showPopover = useCallback(\n (eventId: string, price: number) => {\n const onConfirm = (event?: MouseEvent) => {\n event?.stopPropagation();\n\n handleSubmit({ id: eventId, price });\n\n if (shouldShowQuickBetInfoPopover) {\n setPopover(null);\n toggleScroll('enable');\n }\n };\n\n if (shouldShowQuickBetInfoPopover && isLoggedIn) {\n if (Number(quickBetStake)) {\n toggleScroll('disable');\n\n const onCancel = (event?: SyntheticEvent) => {\n event?.stopPropagation();\n\n dispatch(setQuickBetSelectedEventId(''));\n setSelectedEvents([]);\n setPopover(null);\n toggleScroll('enable');\n };\n\n setPopover({\n id: eventId,\n onCancel,\n onConfirm\n });\n }\n } else {\n setPopover({\n id: eventId,\n onCancel: () => {\n dispatch(setQuickBetSelectedEventId(''));\n },\n onConfirm,\n validateRecaptcha: true,\n selectedEvents\n });\n }\n },\n [\n shouldShowQuickBetInfoPopover,\n quickBetStake,\n handleSubmit,\n isLoggedIn,\n toggleScroll,\n t,\n selectedEvents\n ]\n );\n\n const hidePopover = useCallback(() => {\n if (shouldShowQuickBetInfoPopover) {\n setSelectedEvents([]);\n setPopover(null);\n toggleScroll('enable');\n dispatch(setQuickBetSelectedEventId(''));\n }\n }, [toggleScroll, shouldShowQuickBetInfoPopover]);\n\n const oddChangeHandler = useCallback(\n (eventId, price, sp, prevSp, sendPostMessageToIframeSportsbook) => {\n if (quickBetEnabled && !editBet?.active && !quickBetStake) {\n setSelectedEvents([]);\n showToastError(t('betslip.noStake'));\n\n document.getElementById('quick-bet-input-stake')?.focus();\n } else {\n if (!selectedEvents.includes(eventId) || sp || prevSp) {\n if (quickBetEnabled && !editBet?.active) {\n if (!shouldShowQuickBetInfoPopover) {\n handleSubmit({ id: eventId, price });\n } else {\n showPopover(eventId, price);\n }\n } else {\n if (\n partnerConfig?.max_selections_in_multiple_bet &&\n allLsBets.length >= partnerConfig?.max_selections_in_multiple_bet\n ) {\n showToastWarning(\n t('betslip.eventsMaxCountMessage').replace(\n '{%eventsMaxCount%}',\n `${partnerConfig?.max_selections_in_multiple_bet}`\n )\n );\n\n return;\n }\n\n addToBetSlip(eventId, sp);\n sendPostMessageToIframeSportsbook?.();\n }\n } else {\n dispatch(setQuickSingleBetslipOpen(false));\n removeBetSlipEvent(eventId);\n sendPostMessageToIframeSportsbook?.();\n\n if (shouldShowQuickBetInfoPopover) {\n setPopover(null);\n toggleScroll('enable');\n }\n }\n\n setSelectedEvents(prevSelected =>\n prevSelected.includes(eventId)\n ? prevSelected.filter(item => item !== eventId)\n : [...prevSelected, eventId]\n );\n }\n },\n [\n shouldShowQuickBetInfoPopover,\n quickBetEnabled,\n quickBetStake,\n editBet,\n partnerConfig,\n allLsBets,\n selectedEvents,\n handleSubmit,\n addToBetSlip,\n showPopover,\n t\n ]\n );\n\n return useMemo(\n () => ({\n oddChangeHandler,\n popover,\n hidePopover\n }),\n [oddChangeHandler, popover, hidePopover]\n );\n};\n","import { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n minBetStakeType,\n predefinedStakesType\n} from 'utils/constants/betslip/bet-types';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { thousandSeparator } from 'utils/helpers/validators';\nimport { roundAmount } from 'newelements/_Betslip/utils/roundings/round-amount';\nimport { useCurrency } from 'hooks/useCurrency';\nimport { setRSPredefinedStakes } from 'store/actions/betslip';\nimport { getPredefinedStakes } from 'store/selectors/betslip';\nimport { getPartnerConfigs } from 'store/selectors/socket';\n\ntype PredefinedStakes = {\n [key: string]: string | number | undefined;\n};\n\ntype TUsePredefinedStakes = {\n predefinedStakes: {\n default_stake: any;\n stake_1: any;\n stake_2: any;\n stake_3: any;\n };\n setPredefinedStakes: (values: PredefinedStakes) => void;\n};\n\nexport const usePredefinedStakes = (): TUsePredefinedStakes => {\n const dispatch = useDispatch();\n const partnerConfigs = useSelector(getPartnerConfigs);\n const { currencyId } = useCurrency();\n\n const storePredefinedStakes = useSelector(getPredefinedStakes);\n\n const defaultStakes = useMemo(() => {\n let predefinedStakes: PredefinedStakes = {};\n\n if (SpringConfigs.PREDEFINE_STAKES_ENABLE) {\n predefinedStakes = {\n stake_1: +roundAmount(SpringConfigs.PREDEFINE_STAKE_1),\n stake_2: +roundAmount(SpringConfigs.PREDEFINE_STAKE_2),\n stake_3: +roundAmount(SpringConfigs.PREDEFINE_STAKE_3)\n };\n }\n\n if (SpringConfigs.DEFAULT_STAKE_ENABLED) {\n predefinedStakes.default_stake = +roundAmount(\n SpringConfigs.DEFAULT_STAKE\n );\n }\n\n if (partnerConfigs && currencyId) {\n const minBetStake = partnerConfigs.min_bet_stakes[currencyId];\n\n return {\n stake_1: roundAmount(\n predefinedStakes.stake_1 ||\n minBetStake * minBetStakeType.MULTIPLIER_10 ||\n predefinedStakesType.STAKE_TYPE_1\n ),\n stake_2: roundAmount(\n predefinedStakes.stake_2 ||\n minBetStake * minBetStakeType.MULTIPLIER_20 ||\n predefinedStakesType.STAKE_TYPE_2\n ),\n stake_3: roundAmount(\n predefinedStakes.stake_3 ||\n minBetStake * minBetStakeType.MULTIPLIER_50 ||\n predefinedStakesType.STAKE_TYPE_3\n ),\n default_stake: predefinedStakes.default_stake || ''\n };\n } else {\n return {\n default_stake: '',\n stake_1: roundAmount(\n predefinedStakes.stake_1 || predefinedStakesType.STAKE_TYPE_1\n ),\n stake_2: roundAmount(\n predefinedStakes.stake_2 || predefinedStakesType.STAKE_TYPE_2\n ),\n stake_3: roundAmount(\n predefinedStakes.stake_3 || predefinedStakesType.STAKE_TYPE_3\n )\n };\n }\n }, [partnerConfigs, currencyId]);\n\n const predefinedStakes = useMemo(() => {\n const { default_stake, stake_1, stake_2, stake_3 } =\n storePredefinedStakes || {};\n\n return {\n default_stake: default_stake ?? defaultStakes.default_stake,\n stake_1: thousandSeparator(stake_1 || defaultStakes.stake_1),\n stake_2: thousandSeparator(stake_2 || defaultStakes.stake_2),\n stake_3: thousandSeparator(stake_3 || defaultStakes.stake_3)\n };\n }, [defaultStakes, storePredefinedStakes]);\n\n const setPredefinedStakes = useCallback((values: PredefinedStakes) => {\n dispatch(setRSPredefinedStakes(values));\n }, []);\n\n return { predefinedStakes, setPredefinedStakes };\n};\n","export enum EPlayerActivityCheckerActions {\n checkPlayerActivity = 'checkPlayerActivity'\n}\n","import { fireEvent } from 'utils/generic/event-bus';\nimport { EEditBetManagerDispatchActions } from 'newelements/_Betslip/types/edit-bet';\n\nexport const toggleEditBet = (payload?: boolean) => {\n fireEvent({\n key: EEditBetManagerDispatchActions.TOGGLE_EDIT_BET,\n payload\n });\n};\n\nexport const clearEditBet = (payload?: boolean) => {\n fireEvent({\n key: EEditBetManagerDispatchActions.CLEAR_EDIT_BET,\n payload\n });\n};\n","export enum EEditBetManagerDispatchActions {\n TOGGLE_EDIT_BET = 'TOGGLE_EDIT_BET',\n CLEAR_EDIT_BET = 'CLEAR_EDIT_BET'\n}\n","import { UkBets } from 'interfaces/bet-data';\nimport store from 'store';\n\nexport const getIsMultipleGeneralField = (betItem: UkBets) => {\n const allLsBetsCount: number = store.getState()?.betSlip.allLsBets.length;\n\n return (\n betItem.count === allLsBetsCount &&\n !betItem.strongCount &&\n betItem.type !== 1\n );\n};\n","import { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport { swarmCommand } from 'services/get-swarm-data';\nimport {\n setGeoComplyErrorPopupAvailable,\n setGeoComplyErrorPopupText\n} from 'store/actions';\nimport { getUser } from 'store/selectors/user-data';\n\nexport const UseCheckGeoComply = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const user = useSelector(getUser);\n\n const checkLocation = () => {\n return new Promise((resolve, reject) => {\n navigator.permissions.query({ name: 'geolocation' }).then(result => {\n if (result.state === 'granted') {\n onGeoLocationSuccess()\n .then(license => {\n resolve(license);\n })\n .catch(() => {\n reject();\n });\n } else if (result.state === 'prompt') {\n navigator.geolocation.getCurrentPosition(\n () => {\n onGeoLocationSuccess()\n .then(license => {\n resolve(license);\n })\n .catch(() => {\n reject();\n });\n },\n () => {\n reject(t('account.allowLocation'));\n },\n { enableHighAccuracy: true, timeout: 10000, maximumAge: 5000 }\n );\n } else if (result.state === 'denied') {\n reject(t('account.allowLocation'));\n }\n });\n });\n };\n\n const onGeoLocationSuccess = async () => {\n const licenseString = await getGeoComplyLicenseString();\n\n return new Promise((resolve, reject) => {\n licenseString ? resolve(licenseString) : reject();\n });\n };\n\n const getGeoComplyLicenseString = async () => {\n return new Promise((resolve, reject) => {\n swarmCommand(\n CommandNames.GET_GEO_COMPLY_LICENSE_STRING,\n {},\n (data: {\n result: number;\n details: {\n LicenseString: string;\n };\n }) => {\n if (data.result === 0 && data.details.LicenseString) {\n resolve(data.details.LicenseString);\n } else {\n reject();\n }\n },\n null\n );\n });\n };\n\n const geoComplyLocationCheck = () => {\n return new Promise((resolve, reject) => {\n checkActionAllowed('check')\n .then(licenseString => {\n swarmCommand(\n CommandNames.GEO_COMPLY_GEOLOCATION_CHECK,\n { location_token: licenseString },\n (data: {\n result: number;\n details: {\n IsSuccess: boolean;\n ErrorCode: number;\n ErrorMessage: null | string;\n };\n }) => {\n if (data.result === 0 && data.details.IsSuccess) {\n resolve();\n }\n },\n null,\n () => {\n dispatch(setGeoComplyErrorPopupAvailable(false));\n dispatch(setGeoComplyErrorPopupText(null));\n reject();\n }\n );\n })\n .catch(e => {\n dispatch(setGeoComplyErrorPopupAvailable(true));\n dispatch(setGeoComplyErrorPopupText(e));\n reject(e);\n });\n });\n };\n\n const checkActionAllowed = useCallback(\n (\n reason: string,\n username?: string\n ): Promise => {\n const userName = username || user.username || user.email || user.phone;\n\n return new Promise((resolve, reject) => {\n checkLocation()\n .then(license => {\n const geoClient = window?.GcHtml5.createClient();\n geoClient.events\n .on('success', function (gcResponse: string) {\n resolve(gcResponse);\n })\n .on('failed', function (code: string | number, message: string) {\n reject({ code: code, message: message });\n });\n geoClient.setLicense(`${license}`);\n geoClient.setUserId(userName || '');\n geoClient.setReason(reason);\n geoClient.request();\n })\n .catch(e => {\n if (e) {\n dispatch(setGeoComplyErrorPopupAvailable(true));\n dispatch(setGeoComplyErrorPopupText(e));\n e && reject(e);\n }\n });\n });\n },\n [user.username, user.email, user.phone]\n );\n\n return {\n checkActionAllowed: checkActionAllowed,\n geoComplyLocationCheck: geoComplyLocationCheck\n };\n};\n","import { RefObject, useRef } from 'react';\nimport { ButtonPositionType } from 'interfaces/betslip';\n\ntype ReturnType = {\n getButtonPosition: () => ButtonPositionType;\n buttonRef: RefObject;\n};\nconst POPOVER_WIDTH_COUNT = 280;\nconst ODD_POSITION = 4;\n\nconst BUTTON_OFFSET_VALUE = 32;\n\nexport const useOddButtonPosition = (): ReturnType => {\n const buttonRef = useRef(null);\n\n const _buttonPosition = (): ButtonPositionType => {\n if (buttonRef.current) {\n const { offsetLeft } = buttonRef.current;\n const { innerWidth } = window;\n\n if (\n buttonRef.current?.getBoundingClientRect()?.top < POPOVER_WIDTH_COUNT\n ) {\n if (offsetLeft > (innerWidth - BUTTON_OFFSET_VALUE) / 2) {\n return 'bottomRight';\n } else {\n if (offsetLeft > (innerWidth - BUTTON_OFFSET_VALUE) / ODD_POSITION) {\n return 'bottom';\n }\n\n return 'bottomLeft';\n }\n }\n\n if (offsetLeft > (innerWidth - BUTTON_OFFSET_VALUE) / 2) {\n return 'topRight';\n } else {\n if (offsetLeft > (innerWidth - BUTTON_OFFSET_VALUE) / ODD_POSITION) {\n return 'top';\n }\n\n return 'topLeft';\n }\n }\n\n return 'topLeft';\n };\n\n return {\n buttonRef,\n getButtonPosition: _buttonPosition\n };\n};\n","import i18n from 'i18next';\nimport qs from 'qs';\nimport { convert } from 'utils/betslip/odd-formats-helper';\nimport {\n MODE_TYPES,\n REPLACE_EDIT_BET_TRANSLATIONS\n} from 'utils/constants/betslip/bet-types';\nimport { ERROR_CODE_TIMEOUT_1800 } from 'utils/constants/dateInfo/time-numbers';\nimport { EAccount } from 'utils/constants/store/query-keys';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport {\n CommandNames,\n CommandSource\n} from 'utils/constants/swarm/swarm-command-names';\nimport { SwarmSuccessMessages } from 'utils/constants/swarm/swarm-success-messages';\nimport { fireEvent } from 'utils/generic/event-bus';\nimport { showToastError } from 'utils/generic/show-toast-error';\nimport { appendCustomCode } from 'utils/other/customCode';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { showToastSuccess } from 'utils/swarm/swarm-success-handler';\nimport { GetCurrencyConfigsResponse } from 'interfaces/account-settings';\nimport {\n BookBetParamsType,\n DoBetResponseType,\n TCreateBets,\n TV3FreebetParams,\n TV3FreebetResponse\n} from 'interfaces/bet-data';\nimport { doBetProps, IEventsAndGameIds } from 'interfaces/betslip';\nimport { AccountParamsType, AppendCustomCodes } from 'interfaces/generic';\nimport {\n CommandObj,\n WebsocketEnhanced\n} from 'interfaces/spring-websocket-interfaces';\nimport { EPlayerActivityCheckerActions } from 'newcomponents/Shared/account/PlayerActivityChecker/types';\nimport { connectingWS } from 'hooks/useSpringConnect';\nimport Store from 'store';\nimport {\n batchActions,\n removeFreeBetItem,\n setFreeBetSelectedEventId,\n setSelectedProfitBoostEventId\n} from 'store/actions';\nimport { IBetslipRootStateInitialData } from 'store/reducers/betslip';\nimport { queryClient } from 'stores/query/query-client';\nimport { deviceActionManager } from '../deviceactionmanager/DeviceActionManager';\n\n// this is required for showing messages outside the betslip if it is closed\nconst getMessageContextBasedOnBetslipOpenState = (\n messageContext: HTMLElement | null | undefined\n): HTMLElement | null | undefined => {\n const isBetslipOpen = Store.getState().betSlip?.betslipOpen;\n const isFloatingBetslipEnabled = SpringConfigs.IS_BETSLIP_FLOATING_ENABLED;\n\n if (\n !isFloatingBetslipEnabled ||\n (isFloatingBetslipEnabled && isBetslipOpen)\n ) {\n return messageContext;\n }\n\n return null;\n};\n\n/* eslint-disable */\nexport const betCommand = async (\n commandObj: any, // command object must be of type any for generic purpose\n rid: string,\n callback: Function,\n updateCallback: Function | null,\n callbackError: Function | null\n): Promise => {\n /* eslint-enable */\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n commandObj,\n rid,\n callback,\n updateCallback,\n callbackError\n );\n });\n};\n\nconst oddChangeHandlerCallbackWrapper = (\n response: DoBetResponseType,\n callback: Function | null,\n oddFormat: number,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n): void => {\n callback?.(response);\n const { result, result_text, details, StatusCode, Data } = response;\n\n const isStatusCode = StatusCode === REPLACE_EDIT_BET_TRANSLATIONS[0];\n\n if (result === ERROR_CODE_TIMEOUT_1800 || isStatusCode) {\n const changedOdd = isStatusCode\n ? Data?.ErrorData\n ? {\n old_price: Data?.ErrorData?.OldPrice,\n new_price: Data?.ErrorData?.ActualPrice\n }\n : null\n : Array.isArray(details)\n ? {\n old_price: details[0].old_price,\n new_price: details[0].new_price\n }\n : null;\n\n if (setAcceptBet) {\n setAcceptBet(true);\n }\n\n if (!changedOdd) {\n return;\n }\n\n const oddsChangedText = i18n\n .t('swarm.OddsIsChanged')\n .replace('{oldPrice}', convert(changedOdd.old_price, oddFormat))\n .replace('{newPrice}', convert(changedOdd.new_price, oddFormat));\n\n showToastError(\n oddsChangedText,\n getMessageContextBasedOnBetslipOpenState(messageContext),\n result_text\n );\n }\n};\n\n// DON'T use this function directly in project, instead use useDoBetHandler : doBetHandler function\nexport const doBet = (\n data: doBetProps,\n callback: Function,\n callbackError: Function | null,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n): void => {\n const editBet = Store.getState().betSlip?.editBet;\n\n // @Todo add type for betslip do bet response\n const _callback = (res: any) => {\n callback(res);\n\n if (SpringConfigs.WRAPPER_APP && window.median) {\n deviceActionManager.vibrate('impactMedium');\n }\n };\n\n if (editBet?.active) {\n sendCreateBet(data, _callback, callbackError, setAcceptBet, messageContext);\n } else {\n sendDoBet(data, _callback, callbackError, setAcceptBet, messageContext);\n }\n};\n\n/*eslint no-magic-numbers:*/\n// TODO check after betslip refactor\nconst sendDoBet = (\n data: doBetProps,\n callback: Function,\n callbackError: Function | null,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n): void => {\n const oddFormat = Store.getState().betSlip.oddFormat;\n const editBet = Store.getState().betSlip.editBet;\n const isBonusMoney = Store.getState().betSlip.useBonusBalance;\n const user = Store.getState().userData.user;\n const isFrenchFreeBetEnabled =\n Store.getState().betSlip.isFrenchFreeBetEnabled;\n\n const {\n bets,\n type,\n mode,\n sys_bet,\n bonus_id,\n predefined_multiple_id,\n source,\n each_way,\n booking_id,\n location_token\n } = data;\n\n const amount = editBet?.active ? editBet.amount : data.amount;\n\n const additional_amount = data.amount;\n const old_bet_id = editBet?.betId || null;\n\n const command = {\n command: CommandNames.DO_BET,\n params: {\n source,\n each_way,\n bonus_id,\n amount,\n bets,\n mode: mode || MODE_TYPES.ODD_NOT_CHANGE,\n odd_type: oddFormat,\n type,\n booking_id,\n is_bonus_money: !!isBonusMoney,\n ...(isFrenchFreeBetEnabled ? { is_free_bet_money: true } : {}),\n ...(location_token ? { location_token } : {})\n } as Record,\n rid: RidGenerator.gForCommand()\n };\n\n if (sys_bet) {\n command.params.sys_bet = sys_bet;\n }\n\n if (predefined_multiple_id) {\n command.params.predefined_multiple_id = predefined_multiple_id;\n }\n\n if (editBet?.active) {\n command.params.additional_amount = additional_amount;\n command.params.old_bet_id = old_bet_id;\n }\n\n betCommand(\n command,\n '',\n (data: {\n result: string;\n details: {\n bet_id: number;\n k: number;\n is_superbet: boolean;\n };\n }) => {\n callback(data);\n fireEvent({ key: EPlayerActivityCheckerActions.checkPlayerActivity });\n\n const betslipStore: IBetslipRootStateInitialData =\n Store.getState().betSlip;\n\n const freeBetStore = betslipStore.freeBets;\n\n Store.dispatch(\n batchActions(\n setSelectedProfitBoostEventId(null),\n setFreeBetSelectedEventId(null)\n )\n );\n\n if (freeBetStore.selectedFreeBetId) {\n Store.dispatch(\n batchActions(removeFreeBetItem(freeBetStore.selectedFreeBetId))\n );\n }\n\n if (data && data.result === 'OK') {\n if (data.details?.is_superbet) {\n showToastSuccess(\n i18n.t('betslip.superBetSuccess'),\n getMessageContextBasedOnBetslipOpenState(messageContext)\n );\n } else {\n showToastSuccess(\n i18n.t(`betslip.${SwarmSuccessMessages.DO_BET}`),\n getMessageContextBasedOnBetslipOpenState(messageContext)\n );\n }\n }\n\n const accountParams: AccountParamsType = queryClient.getQueryData([\n EAccount['AccountParams']\n ]);\n\n if (\n accountParams &&\n +accountParams[AppendCustomCodes.APPEND_CUSTOM_CODE_BETSLIP]\n ) {\n appendCustomCode(accountParams[AppendCustomCodes.CUSTOM_CODE_BETSLIP], {\n amount,\n currency: user?.currency,\n bet_id: data?.details?.bet_id,\n k: data?.details?.k,\n is_superbet: mode === -1,\n bet_type: type,\n name: user?.name,\n first_name: user?.first_name,\n last_name: user?.last_name,\n email: user?.email,\n username: user?.username,\n btag: user?.btag,\n userId: user?.id,\n phone: user?.phone\n });\n }\n },\n () => undefined,\n ({ data }: { data: DoBetResponseType }) => {\n oddChangeHandlerCallbackWrapper(\n data,\n callbackError,\n oddFormat,\n setAcceptBet,\n messageContext\n );\n }\n );\n};\n\nconst sendCreateBet = (\n data: doBetProps,\n callback: Function,\n callbackError: Function | null,\n setAcceptBet?: Function,\n messageContext?: HTMLElement | null\n): void => {\n const oddFormat = Store.getState().betSlip.oddFormat;\n const editBet = Store.getState().betSlip.editBet;\n const user = Store.getState().userData.user;\n const isFrenchFreeBetEnabled =\n Store.getState().betSlip.isFrenchFreeBetEnabled;\n\n const { bets, type, mode, source, each_way, location_token } = data;\n\n const amount = editBet?.active ? editBet.amount : data.amount;\n\n const additional_amount = data.amount;\n const old_bet_id = editBet?.betId || null;\n\n const command: TCreateBets = {\n command: CommandNames.CREATE_BETS,\n params: {\n bets: [\n {\n Source: source,\n EachWay: each_way,\n Amount: amount,\n Events: bets.map(bet => ({\n SelectionId: bet.event_id,\n Coeficient: bet.price\n })),\n OddType: oddFormat,\n Type: type,\n AdditionalAmount: undefined,\n ...(isFrenchFreeBetEnabled ? { IsFreeBetMoney: true } : {})\n }\n ],\n ...(location_token ? { GeoLocationToken: location_token } : {})\n },\n rid: RidGenerator.gForCommand()\n };\n\n if (editBet?.active) {\n command.params.bets[0].AdditionalAmount = additional_amount;\n command.params.bets[0].OldBetId = old_bet_id;\n }\n\n betCommand(\n command,\n '',\n (data: {\n result: string;\n StatusCode: string;\n Data: Array<{\n bet_id: number;\n k: number;\n is_superbet?: boolean;\n }>;\n }) => {\n if (data.StatusCode === '0') {\n data.result = 'OK';\n\n if (data.Data?.[0]?.is_superbet) {\n showToastSuccess(\n i18n.t('betslip.superBetSuccess'),\n getMessageContextBasedOnBetslipOpenState(messageContext)\n );\n } else {\n showToastSuccess(\n i18n.t(`betslip.${SwarmSuccessMessages.DO_BET}`),\n getMessageContextBasedOnBetslipOpenState(messageContext)\n );\n }\n }\n\n callback(data);\n fireEvent({ key: EPlayerActivityCheckerActions.checkPlayerActivity });\n\n const accountParams: AccountParamsType = queryClient.getQueryData([\n EAccount['AccountParams']\n ]);\n\n if (\n accountParams &&\n +accountParams[AppendCustomCodes.APPEND_CUSTOM_CODE_BETSLIP]\n ) {\n appendCustomCode(accountParams[AppendCustomCodes.CUSTOM_CODE_BETSLIP], {\n amount,\n currency: user?.currency,\n bet_id: data?.Data[0]?.bet_id,\n k: data?.Data[0]?.k,\n is_superbet: mode === -1,\n bet_type: type,\n name: user?.name,\n first_name: user?.first_name,\n last_name: user?.last_name,\n email: user?.email,\n username: user?.username,\n btag: user?.btag,\n userId: user?.id,\n phone: user?.phone\n });\n }\n },\n () => undefined,\n ({ data }: { data: DoBetResponseType }) => {\n oddChangeHandlerCallbackWrapper(\n data,\n callbackError,\n oddFormat,\n setAcceptBet,\n messageContext\n );\n }\n );\n};\n\nexport const getV3Freebet = (\n params: TV3FreebetParams,\n callback: (data: TV3FreebetResponse) => void,\n callbackError: ((err?: Record) => void) | null = null\n): void => {\n const command = {\n command: CommandNames.GET_FREEBETS_FOR_BETSLIP_V3,\n params,\n rid: RidGenerator.gForCommand()\n };\n\n betCommand(command, '', callback, () => undefined, callbackError);\n};\n\nexport const getCurrencyConfigs = async (\n currency: string,\n callback: (data: GetCurrencyConfigsResponse) => void,\n callbackError: Function | null\n): Promise => {\n const commandObj = {\n command: CommandNames.GET,\n rid: RidGenerator.gForCommand(),\n params: {\n source: CommandSource.CURRENCY_CONFIG,\n what: {\n currency: []\n },\n where: {\n currency: { name: currency }\n },\n subscribe: false\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) =>\n socket.sendCommand(commandObj, '', callback, undefined, callbackError)\n );\n};\n\nexport const bookBet = async (\n bets: BookBetParamsType,\n callback: Function,\n callbackError: Function\n): Promise => {\n const commandObj: CommandObj = {\n command: CommandNames.BOOK_BET,\n rid: RidGenerator.gForCommand(),\n params: {\n bets\n }\n };\n\n const tid = Number(\n qs.parse(window.location.search, { ignoreQueryPrefix: true }).tid\n );\n\n tid && (commandObj.params.cashdesk_id = tid);\n\n connectingWS.then((socket: WebsocketEnhanced) =>\n socket.sendCommand(commandObj, '', callback, undefined, callbackError)\n );\n};\n\nexport const getEventsByBookingId = (\n bookId: string,\n callback: Function,\n callbackError: Function\n): void => {\n const commandObj: CommandObj = {\n command: CommandNames.GET_EVENTS_BY_BOOKING_ID,\n rid: RidGenerator.gForCommand(),\n params: {\n booking_id: +bookId\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) =>\n socket.sendCommand(commandObj, '', callback, undefined, callbackError)\n );\n};\n\nexport const getEventsReadyForBetslip = (\n eventsAndGameIds: IEventsAndGameIds[] | null,\n callback: Function,\n callBackError?: Function,\n getOnlyEventIds?: boolean,\n gameIds?: number[],\n eventIds?: number[]\n): void => {\n const games = gameIds\n ? gameIds\n : eventsAndGameIds\n ? eventsAndGameIds.map(entity => entity.gameId)\n : [];\n\n const events =\n gameIds && eventIds\n ? eventIds\n : eventsAndGameIds\n ? eventsAndGameIds.map(entity => entity.eventId)\n : [];\n\n const commandObj = {\n command: CommandNames.GET,\n rid: RidGenerator.gForCommand(),\n params: {\n source: CommandSource.BETTING,\n what: {\n ...(!getOnlyEventIds && {\n sport: ['alias', 'type'],\n region: ['name', 'alias'],\n competition: ['name', 'id'],\n game: ['id', 'type', 'team1_name', 'team2_name', 'start_ts', 'info'],\n market: ['name', 'type', 'extra_info']\n }),\n event: getOnlyEventIds\n ? ['id']\n : ['id', 'base', 'name', 'price', 'ew_allowed']\n },\n where: {\n game: {\n id: {\n '@in': games\n }\n },\n event: {\n id: {\n '@in': events\n }\n }\n }\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(commandObj, '', callback, undefined, callBackError);\n });\n};\n\nexport const counterCounterOfferAnswer = (\n acceptOffer: boolean,\n betId: number | string,\n callback: Function,\n callbackError?: Function\n): void => {\n const commandObj: CommandObj = {\n command: CommandNames.SUPER_BET_ANSWER,\n rid: RidGenerator.gForCommand(),\n params: {\n accept: acceptOffer,\n bet_id: betId\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) =>\n socket.sendCommand(commandObj, '', callback, undefined, callbackError)\n );\n};\n\nexport const checkBetStatus = (\n betId: number | string,\n callback: Function,\n callbackError?: Function\n): void => {\n const commandObj: CommandObj = {\n command: CommandNames.CHECK_BET_STATUS,\n rid: RidGenerator.gForCommand(),\n params: {\n bet_id: betId\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) =>\n socket.sendCommand(commandObj, '', callback, undefined, callbackError)\n );\n};\n"],"names":["ConfirmationPopoverStyled","styled","div","withConfig","displayName","componentId","isMobile","MainSectionStyled","MainSectionIconStyled","MainSectionWrapperStyled","MainSectionTitleStyled","MainSectionMessageStyled","CheckboxSectionWrapperStyled","CheckboxSectionStyled","ButtonsSectionStyled","ButtonWrapperStyled","Recaptcha","lazyimport","ConfirmationPopover","memo","_ref","onCancel","onConfirm","validateRecaptcha","selectedEvents","dispatch","useDispatch","shouldShowQuickBetInfoPopover","useSelector","getShouldShowQuickBetInfoPopover","recaptchaEnabled","getRecaptchaEnabled","shouldValidateRecaptchaV3","setShouldValidateRecaptchaV3","useState","t","useTranslation","onPlaceBet","useCallback","event","stopPropagation","useEffect","_jsxs","_Fragment","children","_jsx","GlobalIcon","lib","name","theme","size","EIconSize","_30","onClick","toggleQuickBetPopup","Checkbox","checked","Button","fullwidth","type","Suspense","action","onSetRecaptchaToken","shouldValidate","deviceActionManager","vibrate","message","hapticMessage","_window","_window$webkit","_window$webkit$messag","iOSWrapperApp","window","webkit","messageHandlers","triggerHaptic","postMessage","JSON","stringify","BETSLIP_DO_BET_CONSTANTS","useDoBet","currentType","setAcceptBet","setSelected","toggleBetslipView","betslipRef","totalSingleWin","totalStake","predefinedStakes","usePredefinedStakes","stakes","getAllStakes","selectedProfitBoostItem","getSelectedProfitBoostItem","partnerConfigs","getPartnerConfigs","system","getSelectedSystem","allLsBets","getAllLsBets","editBet","getEditBet","betTypesConf","getBetTypesConf","betslipType","getBetslipType","sentCounterOffersCount","getSentCounterOffersCount","sentSuperBetCount","getSentSuperBetCount","oddsOffers","getOddsCounterOffers","bookBetId","getBookBetId","advancedSelectedTab","getAdvancedSelectedTab","betslipBetType","getComputedBetType","singleEventsCalculations","general","getBetsCalculations","superBetActiveEventIds","getSuperBetActiveEventIds","counterOfferActiveEventIds","getCounterOfferActiveEventIds","selectedFreeBetEventId","selectedFreeBetId","getFreeBets","isFreeBetEnabled","getIsFreeBetEnabled","selectedFreeBetAmount","getSelectedFreeBetAmount","isSuperBetAvailable","useSuperBetAvailable","doBetHandler","useDoBetHandler","setInProgress","data","setIsBetInProgress","removeActiveTabLoading","setOpenBetsLoading","handleSuperBetError","eventId","error","result","BackendStatusCodes","betslip","useSuperBet","errorMessage","backendErrorCodes","result_text","StatusCode","customizeMessage","content","showToastError","_message","destroy","some","id","calculateAndDispatchUpdates","superBet","setBetslipOpen","cursor","getBetObj","bets","betType","each_way","sendTag","every","_ref2","tag","firstEventId","mode","_JSON$parse","isCounterOfferActive","length","isSuperBetActive","GENERAL_FIELD_KEY","isSuperBetAllowForPrematch","SpringConfigs","SUPER_BET_DEFAULT_ON","_ref3","isLive","isSuperBetActiveForLive","is_superbet_on_live","shouldBetWithSuperBet","COUNTER_OFFER_ACTIVE_TYPE","SUPER_BET_ACTIVE_TYPE","Number","parse","LS","getItem","storageKeyName","value","_singleEventsCalculat","betObj","amount","EBetslipBetType","SINGLE","finalStake","map","bet","event_id","price","sp","BET_SP_COEFICIENT","coeficient","booking_id","source","String","SOURCE","bonus_id","BET_TYPES","SYSTEM","sys_bet","MULTIPLE","singleDoBet","forEach","_singleEventsCalculat2","_singleEventsCalculat3","default_stake","responce","_responce$details","triggerBetted","batchActions","removeProfitBoostItem","setSelectedProfitBoostEventId","AFTER_SUCCESSFUL_BET","EAfterSuccessfulBet","REMOVE_EVENTS","removeBetSlipEvent","removeFreeBetItem","removeItem","getBetSlipFromLs","clearEditBet","details","is_superbet","setSentCounterOffersCount","setCounterOffersUnderReviewModal","setSentSuperBetCount","stake","e","ERROR_CODE_TIMEOUT_1800","REMOVE_SUSPENDED_SELECTION","EDIT_BET_STATUSES_TO_REMOVE_EVENT_FROM_BETSLIP","includes","removeAllBetSlipEvent","document","getElementById","current","multipleAndSystemDoBet","isEachWay","_responce$details2","calculateAndDispatchSingleBetsUpdates","Object","keys","getType","clearUkTypes","betTypesConfData","active","combCount","setBetUkType","BET_TYPE_NAMES_KEYS","CHAIN","ukDoBet","stakesCount","single","isPartialBet","values","find","parseFloat","EAdvancedSelectedTabs","QUICKBET","updatedBetTypes","structuredClone","filter","betItem","count","strongCount","item","_selectedProfitBoostI","EBetslipType","ADVANCED","boost_max_bet_amounts","MaxBetAmount","response","_e$data","getIsMultipleGeneralField","undefined","checkActionAllowed","UseCheckGeoComply","callback","callbackError","messageContext","GEO_COMPLY_ENABLED","then","geo_comply_token","location_token","doBet","catch","console","info","isLoggedIn","getIsLoggedIn","user","getUser","is_super_bet_available","game_info","is_superbet_on_prematch","prototype","hasOwnProperty","call","useOddChange","setSelectedEvents","addToBetSlip","popover","setPopover","history","useHistory","quickBetEnabled","getQuickBetEnabled","quickBetStake","getQuickBetStake","partnerConfig","superBetEventIds","counterOfferEventIds","openLoginPopup","useOpenLoginPopup","toggleScroll","querySelectorAll","element","HTMLElement","style","overflow","handleSubmit","body","updateQuickBetInProcessCount","setQuickBetSelectedEventId","showPopover","hidePopover","oddChangeHandler","prevSp","sendPostMessageToIframeSportsbook","max_selections_in_multiple_bet","showToastWarning","replace","setQuickSingleBetslipOpen","prevSelected","_document$getElementB","focus","useMemo","currencyId","useCurrency","storePredefinedStakes","getPredefinedStakes","defaultStakes","PREDEFINE_STAKES_ENABLE","stake_1","roundAmount","PREDEFINE_STAKE_1","stake_2","PREDEFINE_STAKE_2","stake_3","PREDEFINE_STAKE_3","DEFAULT_STAKE_ENABLED","DEFAULT_STAKE","minBetStake","min_bet_stakes","minBetStakeType","MULTIPLIER_10","predefinedStakesType","STAKE_TYPE_1","MULTIPLIER_20","STAKE_TYPE_2","MULTIPLIER_50","STAKE_TYPE_3","thousandSeparator","setPredefinedStakes","setRSPredefinedStakes","EPlayerActivityCheckerActions","toggleEditBet","payload","fireEvent","key","EEditBetManagerDispatchActions","TOGGLE_EDIT_BET","CLEAR_EDIT_BET","_store$getState","allLsBetsCount","store","getState","betSlip","onGeoLocationSuccess","async","licenseString","getGeoComplyLicenseString","Promise","resolve","reject","swarmCommand","CommandNames","GET_GEO_COMPLY_LICENSE_STRING","LicenseString","reason","username","userName","email","phone","navigator","permissions","query","state","license","geolocation","getCurrentPosition","enableHighAccuracy","timeout","maximumAge","geoClient","GcHtml5","createClient","events","on","gcResponse","code","setLicense","setUserId","setReason","request","setGeoComplyErrorPopupAvailable","setGeoComplyErrorPopupText","geoComplyLocationCheck","GEO_COMPLY_GEOLOCATION_CHECK","IsSuccess","useOddButtonPosition","buttonRef","useRef","getButtonPosition","_buttonPosition","_buttonRef$current","_buttonRef$current$ge","offsetLeft","innerWidth","getBoundingClientRect","top","getMessageContextBasedOnBetslipOpenState","_Store$getState$betSl","isBetslipOpen","Store","betslipOpen","isFloatingBetslipEnabled","IS_BETSLIP_FLOATING_ENABLED","betCommand","commandObj","rid","updateCallback","connectingWS","socket","sendCommand","oddChangeHandlerCallbackWrapper","oddFormat","Data","isStatusCode","REPLACE_EDIT_BET_TRANSLATIONS","_Data$ErrorData","_Data$ErrorData2","changedOdd","ErrorData","old_price","OldPrice","new_price","ActualPrice","Array","isArray","oddsChangedText","i18n","convert","_Store$getState$betSl2","_callback","res","WRAPPER_APP","median","sendCreateBet","sendDoBet","isBonusMoney","useBonusBalance","userData","isFrenchFreeBetEnabled","predefined_multiple_id","additional_amount","old_bet_id","betId","command","DO_BET","params","MODE_TYPES","ODD_NOT_CHANGE","odd_type","is_bonus_money","is_free_bet_money","RidGenerator","gForCommand","checkPlayerActivity","freeBetStore","freeBets","_data$details","setFreeBetSelectedEventId","showToastSuccess","SwarmSuccessMessages","accountParams","queryClient","getQueryData","EAccount","_data$details2","_data$details3","AppendCustomCodes","APPEND_CUSTOM_CODE_BETSLIP","appendCustomCode","CUSTOM_CODE_BETSLIP","currency","bet_id","k","bet_type","first_name","last_name","btag","userId","CREATE_BETS","Source","EachWay","Amount","Events","SelectionId","Coeficient","OddType","Type","AdditionalAmount","IsFreeBetMoney","GeoLocationToken","OldBetId","_data$Data","_data$Data$","_data$Data$2","_data$Data$3","getV3Freebet","arguments","GET_FREEBETS_FOR_BETSLIP_V3","getCurrencyConfigs","GET","CommandSource","CURRENCY_CONFIG","what","where","subscribe","bookBet","BOOK_BET","tid","qs","location","search","ignoreQueryPrefix","cashdesk_id","getEventsByBookingId","bookId","GET_EVENTS_BY_BOOKING_ID","getEventsReadyForBetslip","eventsAndGameIds","callBackError","getOnlyEventIds","gameIds","eventIds","games","entity","gameId","BETTING","sport","region","competition","game","market","counterCounterOfferAnswer","acceptOffer","SUPER_BET_ANSWER","accept","checkBetStatus","CHECK_BET_STATUS"],"sourceRoot":""}