{"version":3,"file":"static/chunks/13910-177bd2cc83c2a584.js","sources":["webpack://_N_E/./src/LegacyApp/client/components/checkbox/checkbox.style.js","webpack://_N_E/./src/LegacyApp/client/components/converterValue/converterValue.jsx","webpack://_N_E/./src/LegacyApp/client/components/converterValue/converterValue.container.ts","webpack://_N_E/./src/LegacyApp/client/components/converterValue/converterValue.style.js","webpack://_N_E/./src/LegacyApp/client/components/inputCurrency/inputCurrency.jsx","webpack://_N_E/./src/LegacyApp/client/components/inputCurrency/inputCurrency.container.ts","webpack://_N_E/./src/LegacyApp/hooks/game/useValidate.ts","webpack://_N_E/./src/LegacyApp/hooks/game/useValidateProfit.ts","webpack://_N_E/./src/LegacyApp/hooks/game/useValidateStake.ts","webpack://_N_E/./src/LegacyApp/hooks/timer/useTimeDiff.ts","webpack://_N_E/./src/common/components/contentLoaders/LoaderListWrapper.jsx","webpack://_N_E/./src/common/components/layout/ColumnLayout/ColumnLayout.tsx","webpack://_N_E/./src/common/components/number/balanceAmount/balanceCurrencyValue.style.ts","webpack://_N_E/./src/common/components/timerCountDown/index.tsx","webpack://_N_E/./src/modules/games/Game/store/gameValidation/thunks/validateBetAmountThunk.js","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetSlipElementTitle.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetElement.tsx","webpack://_N_E/./src/modules/sports/hooks/useEventOffer/eventOfferTypes.contants.ts","webpack://_N_E/./src/modules/sports/components/Match/Details/Offer/Strategies/Default.tsx","webpack://_N_E/./src/modules/sports/components/Match/Details/Offer/Strategies/ThreeWayHandicap.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetSlipElementOdds.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetSlipElementDetails.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipForm/ProfitInput.tsx","webpack://_N_E/./src/modules/sports/hooks/useBetSlipElementOdds.ts","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetSlipElementForm.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetElement/BetSlipElementMessage.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/Timestamp.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/TypeLabel.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/TitleBar.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/SummaryBar.tsx","webpack://_N_E/./src/modules/sports/methods/getCashoutValue.ts","webpack://_N_E/./src/modules/sports/hooks/useCashout.ts","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/CashoutBar.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/BetSlipDetails.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/EventElement.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipDetails/StateLabel.tsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipForm/StakeInput.tsx","webpack://_N_E/./src/common/components/number/balanceAmount/BalanceAmountWithConverterTooltip.jsx","webpack://_N_E/./src/modules/sports/components/BetSlipSection/BetSlipForm/SummaryValue.tsx","webpack://_N_E/./src/modules/sports/components/Match/Details/Offer/OfferName/OfferName.tsx","webpack://_N_E/./src/modules/sports/components/Match/Details/ButtonOutcome.tsx","webpack://_N_E/./src/modules/sports/methods/getMatchLink.ts","webpack://_N_E/./src/modules/sports/components/Match/Details/OutcomesList/OutcomesList.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchDate/MatchDate.tsx","webpack://_N_E/./src/modules/sports/hooks/useTimestampComponent.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchDate/LiveTimeInformation.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchDate/TimeInformation.tsx","webpack://_N_E/./src/modules/sports/components/SportName/SportName.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchName/MatchName.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchOdds/MatchOdds.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchOdds/MatchOddsChange.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchOdds/MatchOddsName.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchScore/MatchScoreHandler.tsx","webpack://_N_E/./src/modules/sports/hooks/useScoreComponent.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchScore/ScoreWrapper.tsx","webpack://_N_E/./src/modules/sports/components/Match/MatchScore/types/ScoreSimple.tsx","webpack://_N_E/./src/modules/sports/constants/betSlipAcceptTypes.ts","webpack://_N_E/./src/modules/sports/constants/sports.ts","webpack://_N_E/./src/modules/sports/constants/updateIntervals.ts","webpack://_N_E/./src/modules/sports/context/BetSlipHistoryContext.ts","webpack://_N_E/./src/modules/sports/context/MatchContext.ts","webpack://_N_E/./src/modules/sports/context/OddsNameContext.ts","webpack://_N_E/./src/modules/sports/context/ScoreContext.ts","webpack://_N_E/./src/modules/sports/context/SportContext.ts","webpack://_N_E/./src/modules/sports/context/SportsbookListContext.ts","webpack://_N_E/./src/modules/sports/hooks/useBetSlipTotalOddsAndProfit.ts","webpack://_N_E/./src/modules/sports/methods/getBetSlipEventsTotalOdds.ts","webpack://_N_E/./src/modules/sports/hooks/useCheckBetError.ts","webpack://_N_E/./src/modules/sports/store/sportsEventsData/sportsEventsData.thunk.ts","webpack://_N_E/./src/modules/sports/hooks/useEventData.ts","webpack://_N_E/./src/modules/sports/hooks/useOddsChange.ts","webpack://_N_E/./src/modules/sports/methods/createNameFromSlug.ts","webpack://_N_E/./src/modules/sports/store/sportsEventsData/sportsEventsData.actions.ts","webpack://_N_E/./src/modules/sports/store/sportsEventsData/sportsEventsData.constants.ts"],"sourceRoot":"","sourcesContent":["import styled, { css } from 'styled-components';\nimport { boxNoHeight } from '../../modules/style/defaults';\n\nexport const CheckboxStyle = styled.div.attrs(() => ({\n\tclassName: 'checkbox',\n}))`\n\t${boxNoHeight};\n\tcursor: pointer;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\n\tlabel {\n\t\tposition: relative;\n\t\tmargin-bottom: 0 !important;\n\t}\n\n\t[type='checkbox'] {\n\t\tpointer-events: none;\n\t}\n`;\n\nconst getWrapper = (props) => {\n\tlet color = 'var(--color-dark-600)';\n\tif (props.isColor) {\n\t\tcolor = props.theme.colors.active;\n\t}\n\tif (props.isError) {\n\t\tcolor = props.theme.colors.negative;\n\t}\n\treturn css`\n\t\tbackground-color: ${color};\n\t\tborder: 1px solid var(--color-dark-400);\n\t`;\n};\n\nexport const CheckboxWrapperStyle = styled.div.attrs(() => ({\n\tclassName: 'checkbox__wrapper',\n}))`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n\tmargin-right: 20px;\n\n\t[type='checkbox'] {\n\t\topacity: 0;\n\t}\n`;\n\nexport const StyledCheckboxBox = styled.div`\n\tborder-radius: 4px;\n\tdisplay: block;\n\theight: 16px;\n\tposition: absolute;\n\twidth: 16px;\n\t${getWrapper}\n\n\tsvg {\n\t\theight: 75%;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%);\n\n\t\tpath {\n\t\t\tfill: white;\n\t\t}\n\t}\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { mathService } from '../../modules/math/mathService';\nimport { checkTablet } from '../../modules/app/appService';\nimport { config } from '../../config';\nimport { trans } from '../../modules/translation/translate';\nimport { Tooltip } from '../tooltip';\nimport { enhanceComponent } from '../../wrappers/enhanceComponent';\nimport { countPrecision } from '../../../methods/math/countPrecision';\nimport { mapApiCurrencyToLayoutCurrency } from '../../../../common/controllers/currency/currenciesSettings';\nimport { isTrueOrZero } from '../../../../common/methods/isTrueOrZero';\nimport { ConverterValueStyle } from './converterValue.style';\n\nclass ConverterValue extends React.PureComponent {\n\tstatic propTypes = {\n\t\tvalue: PropTypes.any,\n\t\tswitch: PropTypes.func,\n\t\tconverterCurrency: PropTypes.any,\n\t\tcurrency: PropTypes.string,\n\t\tprecision: PropTypes.number,\n\t\tprice: PropTypes.any,\n\t\tconfirm: PropTypes.bool,\n\t\tdeviceType: PropTypes.string,\n\t};\n\n\tswitch = () => {\n\t\tif (!this.actionEnabled()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.props.switch(this.props.currency);\n\t};\n\n\tparsePrecision = (value, currency) => {\n\t\tconst precision = countPrecision(value);\n\t\tconst defaultPrecision =\n\t\t\tcurrency !== 'usd'\n\t\t\t\t? this.props.precision || config.decimals.bet\n\t\t\t\t: this.props.precision || 6;\n\t\tif (precision > defaultPrecision) {\n\t\t\treturn defaultPrecision;\n\t\t}\n\t\treturn precision === 1 ? 2 : precision;\n\t};\n\n\tactionEnabled = () => {\n\t\treturn checkTablet(this.props.deviceType);\n\t};\n\n\trender() {\n\t\tif (!this.props.converterCurrency) {\n\t\t\treturn null;\n\t\t}\n\t\tif (mapApiCurrencyToLayoutCurrency(this.props.currency) === 'usd') {\n\t\t\treturn null;\n\t\t}\n\t\tconst currency =\n\t\t\tthis.props.converterCurrency === 'usd' ? this.props.currency : 'usd';\n\t\tconst price = currency === 'usd' ? this.props.price : 1;\n\t\tlet value = this.props.value || 0;\n\t\tif (isTrueOrZero(value) && price !== 1) {\n\t\t\tvalue = this.props.value * price;\n\t\t}\n\t\tconst activeSwitch = this.actionEnabled();\n\t\tconst precision = this.parsePrecision(value, currency);\n\t\tconst content = (\n\t\t\t<ConverterValueStyle noClick={!activeSwitch} onClick={this.switch}>\n\t\t\t\t{currency === 'usd' && '~'}\n\t\t\t\t{mathService.currencyValue(\n\t\t\t\t\tvalue || 0,\n\t\t\t\t\tmapApiCurrencyToLayoutCurrency(currency),\n\t\t\t\t\tprecision,\n\t\t\t\t\tprecision,\n\t\t\t\t)}\n\t\t\t</ConverterValueStyle>\n\t\t);\n\t\treturn activeSwitch ? (\n\t\t\t<Tooltip\n\t\t\t\tcontent={trans({\n\t\t\t\t\tlabel:\n\t\t\t\t\t\tcurrency === 'usd'\n\t\t\t\t\t\t\t? 'Enable {{currency}} converter'\n\t\t\t\t\t\t\t: 'Disable {{currency}} converter',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tcurrency: 'USD',\n\t\t\t\t\t},\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</Tooltip>\n\t\t) : (\n\t\t\t<span>{content}</span>\n\t\t);\n\t}\n}\n\nConverterValue = enhanceComponent({\n\tConverterValue,\n});\n\nexport { ConverterValue };\n","import { connect } from 'react-redux';\nimport { converterSwitchCurrency } from '../../store/converter/converter.actions';\nimport { ConverterValue } from './converterValue';\n\nconst mapStateToProps = (state, props) => {\n\treturn {\n\t\tprice: state.stats.price[props.currency || state.user.activeCurrency],\n\t\tconverterCurrency: state.converter.currency,\n\t\tcurrency: props.currency || state.user.activeCurrency,\n\t\tconfirm: state.converter.confirm,\n\t\tdeviceType: state.app.deviceType,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\tswitch: (data) => dispatch(converterSwitchCurrency(data)),\n\t};\n};\n\nconst ConverterValueContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(ConverterValue);\n\nexport { ConverterValueContainer };\n","import styled from 'styled-components';\nimport { box, noclick, onclick } from '../../modules/style/defaults';\nimport { fontSize } from '../../modules/style/mixins/fontSize';\n\nexport const ConverterValueStyle = styled.div.attrs(() => ({\n\tclassName: 'converter-value',\n}))`\n\t${onclick}\n\t${box}\n ${fontSize({\n\t\tsize: '10px',\n\t\tsizeDesktop: '12px',\n\t})};\n\tcolor: var(--color-dark-100);\n\tline-height: 1;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\ttext-transform: uppercase;\n\t${(props) => (props.noClick ? noclick : '')}\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CurrencySymbol } from '../currencySymbol/currencySymbol';\nimport { ConverterValueContainer } from '../converterValue';\nimport { config } from '../../config';\nimport { enhanceComponent } from '../../wrappers/enhanceComponent';\nimport { InputMessageStyles } from '../input/styled/input.style';\nimport { InputWrapperContainer } from '../input/inputWrapper.container';\n\nclass InputCurrency extends React.PureComponent {\n\tstatic propTypes = {\n\t\tvalue: PropTypes.any,\n\t\tupdate: PropTypes.func,\n\t\tcurrency: PropTypes.string,\n\t\ttoUsd: PropTypes.func,\n\t\ttoNative: PropTypes.func,\n\t\tformCurrency: PropTypes.string,\n\t\terror: PropTypes.any,\n\t\tname: PropTypes.string,\n\t\tlabel: PropTypes.any,\n\t\tnoConverterInfo: PropTypes.bool,\n\t\ttranslateKey: PropTypes.bool,\n\t\tprecision: PropTypes.number,\n\t\ttranslateValue: PropTypes.bool,\n\t\tisDisabled: PropTypes.any,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tconverted: 0,\n\t\t\tvalue: props.value,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setConverted(this.props.value);\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (prevProps.value !== this.props.value) {\n\t\t\tthis.setState({ value: this.props.value });\n\t\t\tthis.setConverted(this.props.value);\n\t\t}\n\t}\n\n\tsetConverted = (value = this.state.value) => {\n\t\tthis.setState({\n\t\t\tconverted: this.props.toUsd(\n\t\t\t\tvalue,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.bet,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t});\n\t};\n\n\tonChange = (value) => {\n\t\t// console.log('onChange', this.props.name, {\n\t\t// formCurrency: this.props.formCurrency,\n\t\t// stateValue: this.state.value,\n\t\t// converted: this.state.converted,\n\t\t// wallet: this.props.wallet,\n\t\t// propsValue: this.props.value,\n\t\t// // props: this.props,\n\t\t// // state: this.state,\n\t\t// });\n\t\t// console.log('onChangeDelayed', value);\n\t\tthis.updateConverted(value);\n\t\tthis.updateValue(value);\n\t\tthis.setValue(value);\n\t};\n\n\tonFocusOut = (value) => {\n\t\t// console.log('onFocusOut', this.props.name, {\n\t\t// formCurrency: this.props.formCurrency,\n\t\t// stateValue: this.state.value,\n\t\t// converted: this.state.converted,\n\t\t// wallet: this.props.wallet,\n\t\t// propsValue: this.props.value,\n\t\t// // props: this.props,\n\t\t// // state: this.state,\n\t\t// });\n\t\tthis.updateConverted(value);\n\t\tthis.updateValue(value);\n\t};\n\n\tupdateConverted = (value) => {\n\t\tif (this.props.formCurrency === 'usd') {\n\t\t\tthis.setState({\n\t\t\t\tconverted: value,\n\t\t\t});\n\t\t}\n\t};\n\n\tupdateValue = (value) => {\n\t\tif (this.props.update) {\n\t\t\tthis.props.update(\n\t\t\t\tthis.props.toNative(value, this.props.currency, config.decimals.bet),\n\t\t\t);\n\t\t}\n\t};\n\n\tsetValue = (value) => {\n\t\tthis.setState({\n\t\t\tvalue: this.props.toNative(value),\n\t\t});\n\t};\n\n\trender() {\n\t\t// console.log('InputCurrency.jsx', {\n\t\t// \tprops: this.props,\n\t\t// \tstate: this.state,\n\t\t// });\n\t\treturn (\n\t\t\t<InputWrapperContainer\n\t\t\t\t{...this.props}\n\t\t\t\tnoChildrenWrapper={true}\n\t\t\t\tname={this.props.name}\n\t\t\t\tinputClasses={this.props.error === true && 'error'}\n\t\t\t\tprecision={this.props.precision}\n\t\t\t\tlabel={\n\t\t\t\t\t(this.props.label || !this.props.noConverterInfo) && (\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{this.props.label}\n\t\t\t\t\t\t\t{!this.props.noConverterInfo && (\n\t\t\t\t\t\t\t\t<ConverterValueContainer\n\t\t\t\t\t\t\t\t\tvalue={this.state.value}\n\t\t\t\t\t\t\t\t\tcurrency={this.props.currency}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tvalue={\n\t\t\t\t\tthis.props.formCurrency === 'usd'\n\t\t\t\t\t\t? this.state.converted\n\t\t\t\t\t\t: this.state.value\n\t\t\t\t}\n\t\t\t\tonFocusOut={this.onFocusOut}\n\t\t\t\tonChangeDelayed={this.onChange}\n\t\t\t\ttype=\"number\"\n\t\t\t>\n\t\t\t\t<div className=\"buttons-box\">\n\t\t\t\t\t<i>\n\t\t\t\t\t\t<CurrencySymbol currency={this.props.formCurrency} noTippy />\n\t\t\t\t\t</i>\n\t\t\t\t</div>\n\t\t\t\t{!!this.props.error && this.props.error !== 'boolean' && (\n\t\t\t\t\t<InputMessageStyles\n\t\t\t\t\t\tas={'div'}\n\t\t\t\t\t\tclassName={'box-no-height text-negative'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.error}\n\t\t\t\t\t</InputMessageStyles>\n\t\t\t\t)}\n\t\t\t</InputWrapperContainer>\n\t\t);\n\t}\n}\n\nInputCurrency = enhanceComponent({\n\tInputCurrency,\n});\n\nexport { InputCurrency };\n","import { connect } from 'react-redux';\nimport {\n\tconverterToNative,\n\tconverterToUsd,\n} from '../../store/converter/converter.actions';\nimport { InputCurrency } from './inputCurrency';\n\nconst mapStateToProps = (state, props) => {\n\treturn {\n\t\tcurrency: props.currency || state.user.activeCurrency,\n\t\tformCurrency:\n\t\t\tstate.converter.currency === 'usd'\n\t\t\t\t? state.converter.currency\n\t\t\t\t: props.currency || state.user.activeCurrency,\n\t};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n\treturn {\n\t\t// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'argument' implicitly has an 'any' type.\n\t\ttoUsd: (...argument) => dispatch(converterToUsd(...argument)),\n\t\t// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'argument' implicitly has an 'any' type.\n\t\ttoNative: (...argument) => dispatch(converterToNative(...argument)),\n\t};\n};\n\nconst InputCurrencyContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(InputCurrency);\n\nexport { InputCurrencyContainer };\n","import { useEffect, useState } from 'react';\nimport { BetSlipErrorType } from '@modules/sports/types/BetSlip/BetSlipBet';\nimport { jsonToString } from '@common/methods/jsonToString';\nimport { usePrevious } from '../render/usePrevious';\n\ninterface UseValidateProps {\n\tvalue: number | string;\n\tvalidate: (value: number | string) => { error: BetSlipErrorType };\n\tpreventInitialCheck?: boolean;\n\tupdateError?: (error) => void;\n}\n\nexport const useValidate = ({\n\tvalue,\n\tvalidate,\n\tpreventInitialCheck,\n\tupdateError,\n}: UseValidateProps) => {\n\tconst [error, setError] = useState<BetSlipErrorType | boolean>(false);\n\tconst prevValue = usePrevious(value);\n\tconst prevValidate = usePrevious(validate);\n\n\tuseEffect(() => {\n\t\t// console.log('useValidate', validate !== prevValidate, {\n\t\t// \terror,\n\t\t// \tvalue,\n\t\t// \tprevValue,\n\t\t// \tvalidate,\n\t\t// \tprevValidate,\n\t\t// \tupdateError,\n\t\t// \tpreventInitialCheck,\n\t\t// });\n\t\tif (\n\t\t\tvalue === prevValue &&\n\t\t\tvalidate === prevValidate &&\n\t\t\tpreventInitialCheck\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst result = validate(value);\n\t\t// console.log('useValidate - result', {\n\t\t// \tresult\n\t\t// });\n\t\tif (updateError) {\n\t\t\tupdateError(result.error);\n\t\t}\n\t\t// console.log('useValidate', result);\n\t\tif (jsonToString(result.error) !== jsonToString(error)) {\n\t\t\t// console.log('useValidate', jsonToString(result.error) !== jsonToString(error),{\n\t\t\t// \terror,\n\t\t\t// \tvalue,\n\t\t\t// \tprevValue,\n\t\t\t// \tvalidate,\n\t\t\t// \tprevValidate,\n\t\t\t// \tresult,\n\t\t\t// \tupdateError,\n\t\t\t// });\n\t\t\tsetError(result.error);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [validate, value]);\n\n\treturn error;\n};\n","import { useCallback } from 'react';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\nimport { useAppSelector } from '../store/useAppSelector';\nimport { validateProfitAmount } from '../../client/modules/app/gameService';\nimport { CurrencyType } from '../../types/wallet/CurrencyType';\nimport { useValidate } from './useValidate';\n\nexport const useValidateProfitCallback = () => {\n\tconst { activeCurrency } = useAppSelector((state) => state.user);\n\n\treturn useCallback(\n\t\t(value: string | number, game: GameType, currency?: CurrencyType) =>\n\t\t\tvalidateProfitAmount({\n\t\t\t\tvalue,\n\t\t\t\tcurrency: currency || activeCurrency,\n\t\t\t\tgame,\n\t\t\t}),\n\t\t[activeCurrency],\n\t);\n};\n\nexport const useValidateProfit = ({\n\tvalue,\n\tgame,\n\tpreventInitialCheck,\n\tupdateError,\n}: {\n\tvalue: number | string;\n\tgame: GameType;\n\tpreventInitialCheck?: boolean;\n\tupdateError?: (error) => void;\n}) => {\n\tconst validate = useValidateProfitCallback();\n\tconst validateCallback = useCallback(() => {\n\t\treturn validate(value, game);\n\t}, [game, validate, value]);\n\tconst error = useValidate({\n\t\tvalue,\n\t\t// @ts-expect-error validateCallback type do not match\n\t\tvalidate: validateCallback,\n\t\tpreventInitialCheck,\n\t\tupdateError,\n\t});\n\treturn {\n\t\terror,\n\t\tvalidate,\n\t};\n};\n","import { useCallback } from 'react';\nimport { validateBetAmountThunk } from '@modules/games/Game/store/gameValidation/thunks/validateBetAmountThunk';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\nimport { useAppSelector } from '../store/useAppSelector';\nimport { useAppDispatch } from '../store/useAppDispatch';\nimport { useValidate } from './useValidate';\n\nexport const useValidateStakeCallback = () => {\n\tconst dispatch = useAppDispatch();\n\tconst { isLogged, activeCurrency } = useAppSelector((state) => state.user);\n\n\treturn useCallback(\n\t\t(value: string | number, game: GameType) =>\n\t\t\tdispatch(\n\t\t\t\tvalidateBetAmountThunk({\n\t\t\t\t\tvalue,\n\t\t\t\t\tisLogged,\n\t\t\t\t\tcurrency: activeCurrency,\n\t\t\t\t\tcheckBalance: true,\n\t\t\t\t\tgame,\n\t\t\t\t}),\n\t\t\t),\n\t\t[activeCurrency, dispatch, isLogged],\n\t);\n};\n\nexport const useValidateStake = ({\n\tvalue,\n\tgame,\n\tpreventInitialCheck,\n\tupdateError,\n}: {\n\tvalue: number | string;\n\tgame: GameType;\n\tpreventInitialCheck?: boolean;\n\tupdateError?: (error) => void;\n}) => {\n\tconst validate = useValidateStakeCallback();\n\tconst validateCallback = useCallback(\n\t\t(value) => {\n\t\t\treturn validate(value, game);\n\t\t},\n\t\t[game, validate],\n\t);\n\tconst error = useValidate({\n\t\tvalue,\n\t\t// @ts-expect-error invalid type\n\t\tvalidate: validateCallback,\n\t\tpreventInitialCheck,\n\t\tupdateError,\n\t});\n\treturn {\n\t\terror,\n\t\tvalidate,\n\t};\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { getTimestamp } from '../../client/modules/app/timeService';\nimport { useInterval } from '../app/useInterval';\n\nexport const useTimeDiff = (\n\tstart_at: number,\n\tinterval?: number,\n): [number, (start?: number) => void] => {\n\tconst [diff, setDiff] = useState(null);\n\n\tconst setDiffValue = useCallback(\n\t\t(start: number = start_at) => {\n\t\t\tconst eventTimestamp: number = getTimestamp(start);\n\t\t\tconst currentTimestamp = getTimestamp();\n\t\t\tsetDiff(roundNumber(currentTimestamp - eventTimestamp, 0));\n\t\t},\n\t\t[start_at],\n\t);\n\n\tuseEffect(() => {\n\t\tsetDiffValue();\n\t}, [setDiffValue]);\n\n\tuseInterval({\n\t\tinterval,\n\t\tcallback: setDiffValue,\n\t\tid: `${start_at}`,\n\t});\n\n\treturn [diff, setDiffValue];\n};\n","import { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { sequenceArray } from '@legacyApp/client/modules/app/appService';\nimport { isFunction } from '../../methods/isFunction';\n\nconst LoaderListWrapper = ({\n\tlist,\n\tlistElement,\n\tloaderWrapper,\n\tloaded,\n\tpreloadLength,\n\tpreloadElement,\n\tlistElementCallback,\n\tnoDataElement,\n}) => {\n\t// console.log('LoaderListWrapper', {\n\t// \tlist,\n\t// \tlistElement,\n\t// \tloaderWrapper,\n\t// \tloaded,\n\t// \tpreloadLength,\n\t// \tpreloadElement,\n\t// \tlistElementCallback,\n\t// \tnoDataElement,\n\t// });\n\tif (list?.length) {\n\t\treturn listElement || list.map(listElementCallback);\n\t}\n\tif (!loaded && preloadLength && preloadElement) {\n\t\tconst Wrapper = loaderWrapper || Fragment;\n\t\treturn (\n\t\t\t<Wrapper>\n\t\t\t\t{sequenceArray(preloadLength).map((el, index) =>\n\t\t\t\t\tisFunction(preloadElement)\n\t\t\t\t\t\t? preloadElement(el, index)\n\t\t\t\t\t\t: preloadElement,\n\t\t\t\t)}\n\t\t\t</Wrapper>\n\t\t);\n\t}\n\tif (loaded && noDataElement) {\n\t\treturn noDataElement;\n\t}\n\treturn null;\n};\n\nLoaderListWrapper.propTypes = {\n\tlist: PropTypes.array,\n\tlistElement: PropTypes.node,\n\tloaderWrapper: PropTypes.any,\n\tloaded: PropTypes.bool,\n\tpreloadLength: PropTypes.number,\n\tpreloadElement: PropTypes.any,\n\tlistElementCallback: PropTypes.func,\n\tnoDataElement: PropTypes.any,\n};\n\nexport { LoaderListWrapper };\n","import { FunctionComponent, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { cutTextStyle } from '@legacyApp/client/modules/style/defaults';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\n\nexport const ColumnLayout: FunctionComponent<{\n\tcells: ReactNode[];\n\tchildren?: ReactNode;\n}> = ({ cells, children }) => {\n\treturn (\n\t\t<StyledColumn $cells={cells.length}>\n\t\t\t{cells.map((el, index) => (\n\t\t\t\t<StyledCell key={index}>{el}</StyledCell>\n\t\t\t))}\n\t\t\t{children}\n\t\t</StyledColumn>\n\t);\n};\n\nexport const StyledColumn = styled.div<{\n\t$cells: number;\n}>`\n\talign-items: center;\n\tdisplay: grid;\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\tgrid-auto-flow: column;\n\tgrid-template-rows: ${(props) => `repeat(${props.$cells}, auto)`};\n\theight: 100%;\n\tjustify-content: flex-end;\n\tposition: relative;\n\t${fontSize({ size: '12px', sizeDesktop: '14px', sizeBigScreen: '16px' })};\n\n\tspan {\n\t\tdisplay: inline-block;\n\t\t${cutTextStyle};\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\tfont-size: 10px;\n\t}\n`;\n\nexport const StyledCell = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tline-height: 1.2;\n\n\t> svg {\n\t\theight: 15px;\n\t}\n`;\n","import classnames from 'classnames';\nimport styled, { css } from 'styled-components';\n\nimport { calcStyle } from '@legacyApp/client/modules/style/methods/calcStyle';\nimport { chatViewport } from '@legacyApp/client/modules/style/methods/chatViewport';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\n\nexport interface BalanceCurrencyValueProps {\n\tclassName?: string;\n\t$color?: string;\n}\n\nexport interface BalanceCurrencyValueBigProps {\n\tclassName?: string;\n\tvalue?: string | number;\n}\n\nexport interface BalanceCurrencyValueSmallProps {\n\tclassName?: string;\n}\n\nexport const BalanceCurrencyValueBigStyle = styled.span.attrs<BalanceCurrencyValueBigProps>(\n\t(props) => ({\n\t\tclassName: classnames('balance__currency--value-big', props.className),\n\t}),\n)<BalanceCurrencyValueBigProps>`\n\t${(props) =>\n\t\tchatViewport(\n\t\t\t(viewportPadding) => css`\n\t\t\t\t${fontSize({\n\t\t\t\t\tsize: '11px',\n\t\t\t\t\tsizeDesktop: '13px',\n\t\t\t\t\tminWidth: calcStyle({\n\t\t\t\t\t\ta: props.theme.media.minWidthSmallTablet,\n\t\t\t\t\t\tb: viewportPadding,\n\t\t\t\t\t}),\n\t\t\t\t\tsizeBigScreen: '15px',\n\t\t\t\t})}\n\t\t\t`,\n\t\t)}\n`;\n\nexport const BalanceCurrencyValueSmallStyle = styled.span.attrs<BalanceCurrencyValueSmallProps>(\n\t(props) => ({\n\t\tclassName: classnames('balance__currency--value-small', props.className),\n\t}),\n)<BalanceCurrencyValueSmallProps>`\n\t${chatViewport(\n\t\t(viewportPadding) => css`\n\t\t\tposition: relative;\n\t\t\t${(props) =>\n\t\t\t\tfontSize({\n\t\t\t\t\tsize: '9px',\n\t\t\t\t\tsizeDesktop: '10px',\n\t\t\t\t\tminWidth: calcStyle({\n\t\t\t\t\t\ta: props.theme.media.minWidthDesktop,\n\t\t\t\t\t\tb: viewportPadding,\n\t\t\t\t\t}),\n\t\t\t\t\tsizeBigScreen: '12px',\n\t\t\t\t})}\n\t\t\t${(props) =>\n\t\t\t\tfontSize({\n\t\t\t\t\tlabel: 'line-height',\n\t\t\t\t\tsize: '12px',\n\t\t\t\t\tsizeDesktop: '13px',\n\t\t\t\t\tminWidth: calcStyle({\n\t\t\t\t\t\ta: props.theme.media.minWidthDesktop,\n\t\t\t\t\t\tb: viewportPadding,\n\t\t\t\t\t}),\n\t\t\t\t\tsizeBigScreen: '15px',\n\t\t\t\t})}\n\t\t`,\n\t)}\n`;\n\nexport const BalanceCurrencyValueStyle = styled.span.attrs<BalanceCurrencyValueProps>(\n\t(props) => ({\n\t\tclassName: classnames(\n\t\t\t'balance__currency--value text-style-xs-medium',\n\t\t\tprops.className,\n\t\t),\n\t}),\n)<BalanceCurrencyValueProps>`\n\toverflow: hidden;\n\ttext-align: right;\n\twhite-space: nowrap;\n\n\t* {\n\t\twhite-space: nowrap;\n\t\t${(props) =>\n\t\t\tprops.$color\n\t\t\t\t? css`\n\t\t\t\t\t\tcolor: ${typeof props.$color === 'string'\n\t\t\t\t\t\t\t? props.$color\n\t\t\t\t\t\t\t: props.theme.colors.positive};\n\t\t\t\t `\n\t\t\t\t: ''}\n\t}\n`;\n","import React, { FC, useCallback, useEffect, useState } from 'react';\nimport Countdown from 'react-countdown';\nimport { CountdownProps } from 'react-countdown/dist/Countdown';\nimport { getTimestamp } from '@legacyApp/client/modules/app/timeService';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { usePrevious } from '@legacyApp/hooks/render/usePrevious';\nimport { isFunction } from '../../methods/isFunction';\n\nexport interface TimerCountDownProps {\n\tdate: Date | string | number;\n\tprecise?: boolean;\n\tcallback?: () => void;\n\tdispatchCallback?: any;\n\trenderer?: CountdownProps['renderer'];\n}\n\nconst getTimestamp_ = (date) => {\n\tif (!date) {\n\t\treturn null;\n\t}\n\n\treturn getTimestamp(date);\n};\n\nexport const TimerCountDown: FC<TimerCountDownProps> = (props) => {\n\tconst { date, precise, callback, dispatchCallback, renderer } = props;\n\tconst dispatch = useAppDispatch();\n\tconst [timestamp, setTimestamp] = useState<number>(getTimestamp_(date));\n\tconst prevDate = usePrevious(date);\n\n\tconst renderer_ = useCallback(\n\t\t(data) => {\n\t\t\tconst { days, hours, minutes, seconds, completed, formatted } = data;\n\n\t\t\tif (completed) {\n\t\t\t\tif (isFunction(callback)) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t\tif (dispatchCallback) {\n\t\t\t\t\tdispatch(dispatchCallback);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isFunction(renderer)) {\n\t\t\t\treturn renderer(data);\n\t\t\t}\n\n\t\t\tif (completed) {\n\t\t\t\treturn precise ? '00:00' : null;\n\t\t\t}\n\n\t\t\tif (precise) {\n\t\t\t\tconst hoursPrecise = hours > 0 ? `${formatted.hours}:` : '';\n\t\t\t\treturn (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{hoursPrecise}\n\t\t\t\t\t\t{formatted.minutes}:{formatted.seconds}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (days > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{formatted.days} {trans({ label: days === 1 ? 'day' : 'days' })}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (hours > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{formatted.hours} {trans({ label: hours === 1 ? 'hour' : 'hours' })}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (minutes > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{formatted.minutes}{' '}\n\t\t\t\t\t\t{trans({ label: minutes === 1 ? 'minute' : 'minutes' })}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (seconds > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{formatted.seconds}{' '}\n\t\t\t\t\t\t{trans({ label: seconds === 1 ? 'second' : 'seconds' })}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn <span>{new Date(timestamp).toTimeString()}</span>;\n\t\t},\n\t\t[callback, dispatch, dispatchCallback, precise, renderer, timestamp],\n\t);\n\n\tuseEffect(() => {\n\t\tif (getTimestamp_(date) !== getTimestamp_(prevDate)) {\n\t\t\tsetTimestamp(getTimestamp_(date));\n\t\t}\n\t}, [date, prevDate]);\n\n\treturn <Countdown key={timestamp} date={timestamp} renderer={renderer_} />;\n};\n","import { validateBetAmount } from '@legacyApp/client/modules/app/gameService';\n\nexport const validateBetAmountThunk = ({\n\tvalue,\n\tisLogged,\n\tcurrency,\n\tcheckBalance,\n\tgame,\n}) => {\n\treturn (dispatch, getState) => {\n\t\tconst balances = getState().balance.balancesArray;\n\t\treturn validateBetAmount({\n\t\t\tvalue,\n\t\t\tbalances,\n\t\t\tisLogged,\n\t\t\tcurrency,\n\t\t\tcheckBalance: isLogged && balances?.length > 1 && checkBalance,\n\t\t\tgame: game || getState().game.activeGame,\n\t\t});\n\t\t// console.log('validateBetAmountAction', {\n\t\t// \tvalue,\n\t\t// \tisLogged,\n\t\t// \twallet,\n\t\t// \tcheckBalance,\n\t\t// \tgame,\n\t\t// \tbalances,\n\t\t// \tresult,\n\t\t// });\n\t\t// return result;\n\t};\n};\n","import { FunctionComponent, useCallback, useContext } from 'react';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport styled from 'styled-components';\nimport { Button } from '@legacyApp/client/components/button';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { Icon } from '@common/components/icons';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { MatchContext } from '../../../context/MatchContext';\nimport { MatchName } from '../../Match/MatchName/MatchName';\nimport { sportsBetSlipDeleteBet } from '../../../store/sportsBetSlip/sportsBetSlip.thunk';\nimport { MatchDate, StyledDate } from '../../Match/MatchDate/MatchDate';\nimport { BetSlipContext } from './BetElement';\n\nexport const BetSlipElementTitle: FunctionComponent = () => {\n\tconst { bet } = useContext(BetSlipContext);\n\tconst { match } = useContext(MatchContext);\n\n\tconst dispatch = useAppDispatch();\n\n\tconst { matchId, outcomeId } = bet;\n\n\tconst onDelete = useCallback(() => {\n\t\tdispatch(sportsBetSlipDeleteBet(matchId, outcomeId));\n\t}, [dispatch, matchId, outcomeId]);\n\n\treturn (\n\t\t<StyledBetSlipElementTitle>\n\t\t\t<StyledMatchName>\n\t\t\t\t<Icon id={`sports/${match?.sport?.slug}`} />\n\t\t\t\t<MatchDate noDate />\n\t\t\t\t<MatchName short />\n\t\t\t</StyledMatchName>\n\t\t\t<StyledCloseButton\n\t\t\t\tlocalTheme={{ type: 'clear' }}\n\t\t\t\tname={'delete-bet'}\n\t\t\t\tonClick={onDelete}\n\t\t\t>\n\t\t\t\t<AwesomeIcon icon={faTimes} />\n\t\t\t</StyledCloseButton>\n\t\t</StyledBetSlipElementTitle>\n\t);\n};\n\nconst StyledMatchName = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\t${fontSize({ sizeDiff: -2, sizeDesktopDiff: -2, sizeBigScreenDiff: -2 })};\n\n\tsvg {\n\t\tmargin-right: 0.5rem;\n\t}\n\n\t${StyledDate} {\n\t\tmargin-right: 0.25rem;\n\t\tposition: static;\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\tsvg {\n\t\t\theight: 10px;\n\t\t\tmargin-right: 0.25rem;\n\t\t}\n\t}\n`;\n\nconst StyledCloseButton = styled(Button)`\n\tcolor: ${(props) => props.theme.colors.active};\n\tcursor: pointer;\n\tmargin: 0;\n\tpadding: 0.25rem;\n\tposition: absolute;\n\tright: 0.5rem;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n\ttransition: ${(props) => props.theme.layout.transition};\n\tz-index: 2;\n\n\t&:hover {\n\t\topacity: 0.7;\n\t}\n`;\n\nconst StyledBetSlipElementTitle = styled.div`\n\talign-items: center;\n\tdisplay: grid;\n\tgrid-template-columns: calc(100% - 15px) 15px;\n\tposition: relative;\n\n\t&:before {\n\t\tbottom: -2px;\n\t}\n`;\n","import { createContext, FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { CheckboxStyle } from '@legacyApp/client/components/checkbox/checkbox.style';\nimport { InputWrapperStyle } from '@legacyApp/client/components/input/styled/inputWrapper.style';\nimport { ConverterValueStyle } from '@legacyApp/client/components/converterValue/converterValue.style';\nimport { borderRadius } from '@legacyApp/client/modules/style/defaults';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { currencyLogoStyle } from '@legacyApp/client/modules/style/mixins/currencyLogoStyle';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { CSSClassNameCurrencyLogo } from '@legacyApp/client/components/currencySymbol/tokenSymbol';\nimport {\n\tBalanceCurrencyValueBigStyle,\n\tBalanceCurrencyValueSmallStyle,\n} from '@common/components/number/balanceAmount/balanceCurrencyValue.style';\nimport { sportsBetSlipUpdateBetsListElement } from '@modules/sports/store/sportsBetSlip/sportsBetSlip.actions';\nimport { useSportsBetSlipBetData } from '@modules/sports/store/selectors/sportsBetSlip.selectors';\nimport { BetSlipMatchDataDetailsType } from '@modules/sports/types/BetSlip/BetSlipDataReducerType';\nimport {\n\tBetSlipBet,\n\tBetSlipBetUpdateType,\n} from '@modules/sports/types/BetSlip/BetSlipBet';\nimport { MatchContext } from '@modules/sports/context/MatchContext';\nimport { StyledSummaryValue } from '@modules/sports/components/BetSlipSection/BetSlipForm/SummaryValue';\nimport { BetSlipElementForm } from '@modules/sports/components/BetSlipSection/BetElement/BetSlipElementForm';\nimport { BetSlipElementDetails } from '@modules/sports/components/BetSlipSection/BetElement/BetSlipElementDetails';\nimport { BetSlipElementTitle } from '@modules/sports/components/BetSlipSection/BetElement/BetSlipElementTitle';\nimport { BetSlipElementMessage } from '@modules/sports/components/BetSlipSection/BetElement/BetSlipElementMessage';\n\nexport const BetSlipContext = createContext<{\n\tbet: BetSlipBet;\n\tupdate?: (element: BetSlipBetUpdateType) => void;\n}>({\n\tbet: null,\n\tupdate: null,\n});\n\nconst BetElement: FunctionComponent<{\n\tbet: BetSlipBet;\n}> = ({ bet }) => {\n\tconst dispatch = useAppDispatch();\n\tconst update = (data: BetSlipBetUpdateType) =>\n\t\tdispatch(\n\t\t\tsportsBetSlipUpdateBetsListElement({\n\t\t\t\tmatchId: bet.matchId,\n\t\t\t\toutcomeId: bet.outcomeId,\n\t\t\t\t...data,\n\t\t\t}),\n\t\t);\n\n\tconst match: BetSlipMatchDataDetailsType = useSportsBetSlipBetData({\n\t\tmatchId: bet.matchId,\n\t});\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconsole.log('BetElement', {\n\t\tbet,\n\t\tmatch,\n\t});\n\n\treturn (\n\t\t<MatchContext.Provider value={{ match }}>\n\t\t\t<BetSlipContext.Provider value={{ bet, update }}>\n\t\t\t\t<StyledBetElement>\n\t\t\t\t\t<BetSlipElementMessage />\n\t\t\t\t\t<BetSlipElementTitle />\n\t\t\t\t\t<BetSlipElementDetails />\n\t\t\t\t\t<BetSlipElementForm />\n\t\t\t\t</StyledBetElement>\n\t\t\t</BetSlipContext.Provider>\n\t\t</MatchContext.Provider>\n\t);\n};\n\nconst StyledBetElement = styled.div`\n\t${borderRadius};\n\tbackground-color: #162d47;\n\tdisplay: flex;\n\tflex-direction: column;\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\toverflow: hidden;\n\tposition: relative;\n\n\t> * {\n\t\tpadding: 0.5rem 0.75rem;\n\t}\n\n\t&:not(:last-of-type) {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t${CheckboxStyle} {\n\t\tleft: 0.75rem;\n\t\tposition: absolute;\n\t\ttop: 0.75rem;\n\t\twidth: unset;\n\t\tz-index: 2;\n\t}\n\n\t${InputWrapperStyle} {\n\t\tmargin-top: 2px;\n\t\tpadding-bottom: 0;\n\n\t\tlabel {\n\t\t\tmargin-bottom: 1px;\n\n\t\t\t${ConverterValueStyle} {\n\t\t\t\tcolor: ${(props) => props.theme.colors.inputButton};\n\t\t\t}\n\t\t}\n\t}\n\n\t${StyledSummaryValue} {\n\t\tcolor: ${(props) => props.theme.colors.inputButton};\n\t\tmargin-top: 0;\n\n\t\t&,\n\t\t${BalanceCurrencyValueBigStyle} {\n\t\t\t${fontSize({\n\t\t\t\tsizeDiff: -4,\n\t\t\t\tsizeDesktopDiff: -6,\n\t\t\t\tsizeBigScreenDiff: -6,\n\t\t\t\timportant: true,\n\t\t\t})};\n\t\t}\n\n\t\t${BalanceCurrencyValueSmallStyle} {\n\t\t\t${fontSize({\n\t\t\t\tsizeDiff: -5,\n\t\t\t\tsizeDesktopDiff: -8,\n\t\t\t\tsizeBigScreenDiff: -8,\n\t\t\t\timportant: true,\n\t\t\t})};\n\t\t\t${fontSize({\n\t\t\t\tlabel: 'line-height',\n\t\t\t\tsizeDiff: -4,\n\t\t\t\tsizeDesktopDiff: -6,\n\t\t\t\tsizeBigScreenDiff: -6,\n\t\t\t\timportant: true,\n\t\t\t})}\n\t\t}\n\n\t\t.${CSSClassNameCurrencyLogo} {\n\t\t\t${currencyLogoStyle({ size: '12px', important: true })};\n\n\t\t\t@media (max-width: ${(props) => props.theme.media.maxWidthTablet}) {\n\t\t\t\t${currencyLogoStyle({ size: '10px', important: true })};\n\t\t\t}\n\t\t}\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\t> * {\n\t\t\tpadding: 0.4rem;\n\t\t}\n\t}\n`;\n\nexport { BetElement };\n","import {\n\tEVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n\tEVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n\tEVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n\tEVENT_OFFER_LAYOUT_TYPE_HALF_TIME_FULL_TIME,\n\tEVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n\tEVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n\tEVENT_OFFER_LAYOUT_TYPE_VERTICAL,\n} from './eventOfferLayoutTypes.constans';\n\nexport const AWAY_TEAM_TO_SCORE_IN_BOTH_HALVES = {\n\tname: '{awayTeam} to Score in both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const AWAY_TEAM_TO_WIN_IN_BOTH_HALVES = {\n\tname: '{awayTeam} to win both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const HOME_TEAM_TO_SCORE_IN_BOTH_HALVES = {\n\tname: '{homeTeam} to Score in both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const HOME_TEAM_TO_WIN_IN_BOTH_HALVES = {\n\tname: '{homeTeam} to win both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const FIRST_HALF = {\n\tname: '1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SECOND_HALF = {\n\tname: '2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const THREE_WAY_HANDICAP = {\n\tname: '3-Way Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const THREE_WAY_HANDICAP__FIRST_HALF = {\n\tname: '3-Way Handicap - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const THREE_WAY_HANDICAP__SECOND_HALF = {\n\tname: '3-Way Handicap - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const THREE_WAY_HANDICAP__INCLUDING_OVERTIME_AND_PENALTY = {\n\tname: '3-Way Handicap - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const THREE_WAY_HANDICAP__REGULAR_TIME = {\n\tname: '3-Way Handicap - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const ASIAN_HANDICAP = {\n\tname: 'Asian Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const ASIAN_HANDICAP_FIRST_HALF = {\n\tname: 'Asian Handicap - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const ASIAN_HANDICAP_SECOND_HALF = {\n\tname: 'Asian Handicap - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const ASIAN_TOTAL = {\n\tname: 'Asian Total',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const ASIAN_TOTAL_FIRST_HALF = {\n\tname: 'Asian Total - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const ASIAN_TOTAL_SECOND_HALF = {\n\tname: 'Asian Total - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const BOTH_TEAMS_TO_SCORE = {\n\tname: 'Both Teams To Score',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__INCLUDING_OVERTIME_AND_PENALTY = {\n\tname: 'Both Teams To Score - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAM_TO_SCORE__FIRST_HALF = {\n\tname: 'Both Teams To Score - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__SECOND_HALF = {\n\tname: 'Both Teams To Score - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__PERIOD_1 = {\n\tname: 'Both Teams To Score - Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__PERIOD_2 = {\n\tname: 'Both Teams To Score - Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__PERIOD_3 = {\n\tname: 'Both Teams To Score - Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE__REGULAR_TIME = {\n\tname: 'Both Teams To Score - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOTH_TEAMS_TO_SCORE_IN_BOTH_HALVES = {\n\tname: 'Both Teams to Score in both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const CORRECT_SCORE = {\n\tname: 'Correct Score',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__INCLUDING_OVERTIME_AND_PENALTY = {\n\tname: 'Correct Score - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__INCLUDING_OVERTIME_AND_PENALTY_2 = {\n\tname: 'Correct Score - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__FIRST_HALF = {\n\tname: 'Correct Score - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__SECOND_HALF = {\n\tname: 'Correct Score - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__INCLUDING_OVERTIME = {\n\tname: 'Correct Score - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__PERIOD_1 = {\n\tname: 'Correct Score - Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__PERIOD_2 = {\n\tname: 'Correct Score - Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__PERIOD_3 = {\n\tname: 'Correct Score - Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const CORRECT_SCORE__REGULAR_TIME = {\n\tname: 'Correct Score - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const DOUBLE_CHANCE = {\n\tname: 'Double Chance',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_VERTICAL,\n};\nexport const DOUBLE_CHANCE__FIRST_HALF = {\n\tname: 'Double Chance - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_VERTICAL,\n};\nexport const DOUBLE_CHANCE__SECOND_HALF = {\n\tname: 'Double Chance - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_VERTICAL,\n};\nexport const DOUBLE_CHANCE__REGULAR_TIME = {\n\tname: 'Double Chance - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_VERTICAL,\n};\nexport const FULL_TIME = {\n\tname: 'Full Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const GAME_HANDICAP = {\n\tname: 'Game Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const GOAL_IN_BOTH_HALVES = {\n\tname: 'Goal in both halves',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const HALF_TIME = {\n\tname: 'Half Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const HALF_TIME__FULL_TIME = {\n\tname: 'Half Time/Full Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HALF_TIME_FULL_TIME,\n};\nexport const HANDICAP = {\n\tname: 'Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__FIRST_HALF = {\n\tname: 'Handicap - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__SECOND_HALF = {\n\tname: 'Handicap - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__INCLUDING_OVERTIME = {\n\tname: 'Handicap - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__INCLUDING_OVERTIME_AND_PENALTIES = {\n\tname: 'Handicap - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__QUARTER_1 = {\n\tname: 'Handicap - Quarter 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__QUARTER_2 = {\n\tname: 'Handicap - Quarter 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__QUARTER_3 = {\n\tname: 'Handicap - Quarter 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__QUARTER_4 = {\n\tname: 'Handicap - Quarter 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const HANDICAP__REGULAR_TIME = {\n\tname: 'Handicap - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const INCLUDING_OVERTIME = {\n\tname: 'Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const INCLUDING_OVERTIME_AND_PENALTIES = {\n\tname: 'Including overtime and penalty shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const INCLUDING_OVERTIME_AND_PENALTIES_2 = {\n\tname: 'Including Overtime and penalty shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MATCH_ODDS = {\n\tname: 'Match Odds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MATCH_ODDS_3_WAY = {\n\tname: 'Match Odds (3-Way)',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MATCH_ODDS__REGULAR_TIME = {\n\tname: 'Match Odds - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MATCH_POINT_HANDICAP = {\n\tname: 'Match Point Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const PERIOD_1 = {\n\tname: 'Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const PERIOD_2 = {\n\tname: 'Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const PERIOD_3 = {\n\tname: 'Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const QUARTER_1 = {\n\tname: 'Quarter 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const QUARTER_2 = {\n\tname: 'Quarter 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const QUARTER_3 = {\n\tname: 'Quarter 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const QUARTER_4 = {\n\tname: 'Quarter 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_1 = {\n\tname: 'Set 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_2 = {\n\tname: 'Set 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_3 = {\n\tname: 'Set 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_4 = {\n\tname: 'Set 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_5 = {\n\tname: 'Set 5',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SET_HANDICAP = {\n\tname: 'Set Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const SET_BETTING = {\n\tname: 'Set Betting',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_CORRECT_SCORE,\n};\nexport const TOTAL_GAMES = {\n\tname: 'Total Games',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GAMES__SET_1 = {\n\tname: 'Total Games - Set 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GAMES__SET_2 = {\n\tname: 'Total Games - Set 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GAMES__SET_3 = {\n\tname: 'Total Games - Set 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GAMES__SET_4 = {\n\tname: 'Total Games - Set 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GAMES__SET_5 = {\n\tname: 'Total Games - Set 5',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS = {\n\tname: 'Total Goals',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__FIRST_HALF = {\n\tname: 'Total Goals - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__SECOND_HALF = {\n\tname: 'Total Goals - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__INCLUDING_OVERTIME = {\n\tname: 'Total Goals - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__INCLUDING_OVERTIME_AND_PENALTIES = {\n\tname: 'Total Goals - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__PERIOD_1 = {\n\tname: 'Total Goals - Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__PERIOD_2 = {\n\tname: 'Total Goals - Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__PERIOD_3 = {\n\tname: 'Total Goals - Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS__REGULAR_TIME = {\n\tname: 'Total Goals - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM = {\n\tname: 'Total Goals by {awayTeam}',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__INCLUDING_OVERTIME = {\n\tname: 'Total Goals by {awayTeam} - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__INCLUDING_OVERTIME_AND_PENALTIES = {\n\tname: 'Total Goals by {awayTeam} - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__PERIOD_1 = {\n\tname: 'Total Goals by {awayTeam} - Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__PERIOD_2 = {\n\tname: 'Total Goals by {awayTeam} - Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__PERIOD_3 = {\n\tname: 'Total Goals by {awayTeam} - Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__REGULAR_TIME = {\n\tname: 'Total Goals by {awayTeam} - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__ODD_EVEN = {\n\tname: 'Total Goals by {awayTeam} Odd/Even',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__OVER_UNDER = {\n\tname: 'Total Goals by {homeTeam}',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__INCLUDING_OVERTIME = {\n\tname: 'Total Goals by {homeTeam} - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__INCLUDING_OVERTIME_AND_PENALTIES = {\n\tname: 'Total Goals by {homeTeam} - Including Overtime and Penalty Shootout',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__PERIOD_1 = {\n\tname: 'Total Goals by {homeTeam} - Period 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__PERIOD_2 = {\n\tname: 'Total Goals by {homeTeam} - Period 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__PERIOD_3 = {\n\tname: 'Total Goals by {homeTeam} - Period 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__REGULAR_TIME = {\n\tname: 'Total Goals by {homeTeam} - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__ODD_EVEN = {\n\tname: 'Total Goals by {homeTeam} Odd/Even',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_GOALS_ODDS_EVEN = {\n\tname: 'Total Goals Odd/Even',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_GOALS_ODDS_EVEN__REGULAR_TIME = {\n\tname: 'Total Goals Odd/Even - Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_POINTS__FIRST_HALF = {\n\tname: 'Total Points - 1st Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__SECOND_HALF = {\n\tname: 'Total Points - 2nd Half',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__GAME_1 = {\n\tname: 'Total Points - Game 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__GAME_2 = {\n\tname: 'Total Points - Game 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__GAME_3 = {\n\tname: 'Total Points - Game 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__INCLUDING_OVERTIME = {\n\tname: 'Total Points - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__QUARTER_1 = {\n\tname: 'Total Points - Quarter 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__QUARTER_2 = {\n\tname: 'Total Points - Quarter 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__QUARTER_3 = {\n\tname: 'Total Points - Quarter 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS__QUARTER_4 = {\n\tname: 'Total Points - Quarter 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_POINTS_ODD_EVEN__INCLUDING_OVERTIME = {\n\tname: 'Total Points Odd/Even - Including Overtime',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_SETS = {\n\tname: 'Total Sets',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const REGULAR_TIME = {\n\tname: 'Regular Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const REGULAR_TIME__THREE_WAY = {\n\tname: 'Regular Time (3-way)',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const DRAW_NO_BET__MATCH_ODDS = {\n\tname: 'Draw No Bet - Match Odds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const SERIES_WINNER = {\n\tname: 'Series Winner',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const DRAW_NO_BET = {\n\tname: 'Draw No Bet',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const EXTRA_TIME = {\n\tname: 'Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const FULL_TIME__INCLUDING_EXTRA_TIME = {\n\tname: 'Full Time Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TOTAL_GOALS__INCLUDING_EXTRA_TIME = {\n\tname: 'Total Goals Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const DRAW_NO_BET__INCLUDING_EXTRA_TIME = {\n\tname: 'Draw No Bet Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const DOUBLE_CHANCE__INCLUDING_EXTRA_TIME = {\n\tname: 'Double Chance Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const HANDICAP__INCLUDING_EXTRA_TIME = {\n\tname: 'Handicap Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const THREE_WAY_HANDICAP__INCLUDING_EXTRA_TIME = {\n\tname: '3-Way Handicap Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_3_WAY_HANDICAP,\n};\nexport const TOTAL_GOALS_BY_AWAY_TEAM__INCLUDING_EXTRA_TIME = {\n\tname: 'Total Goals by {awayTeam} Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_GOALS_BY_HOME_TEAM__INCLUDING_EXTRA_TIME = {\n\tname: 'Total Goals by {homeTeam} Including Extra Time',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TO_WIN_THE_TROPHY = {\n\tname: 'To Win The Trophy',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const TEAM_TO_GO_THROUGH = {\n\tname: 'Team to go through',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const BOUT_ODDS = {\n\tname: 'Bout Odds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const DRAW_NO_BET_BOUT_ODDS = {\n\tname: 'Draw No Bet - Bout Odds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_HANDICAP = {\n\tname: 'Map Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_ROUND_HANDICAP_1 = {\n\tname: 'Map 1 - Round Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_ROUND_HANDICAP_2 = {\n\tname: 'Map 2 - Round Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_ROUND_HANDICAP_3 = {\n\tname: 'Map 3 - Round Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_ROUND_HANDICAP_4 = {\n\tname: 'Map 4 - Round Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_ROUND_HANDICAP_5 = {\n\tname: 'Map 5 - Round Handicap',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_HANDICAP,\n};\nexport const MAP_1 = {\n\tname: 'Map 1',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_2 = {\n\tname: 'Map 2',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_3 = {\n\tname: 'Map 3',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_4 = {\n\tname: 'Map 4',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_5 = {\n\tname: 'Map 5',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_DEFAULT,\n};\nexport const MAP_1_TOTAL_ROUNDS = {\n\tname: 'Map 1 - Total Rounds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const MAP_2_TOTAL_ROUNDS = {\n\tname: 'Map 2 - Total Rounds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const MAP_3_TOTAL_ROUNDS = {\n\tname: 'Map 3 - Total Rounds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const MAP_4_TOTAL_ROUNDS = {\n\tname: 'Map 4 - Total Rounds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const MAP_5_TOTAL_ROUNDS = {\n\tname: 'Map 5 - Total Rounds',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\nexport const TOTAL_MAPS = {\n\tname: 'Total Maps',\n\ttype: EVENT_OFFER_LAYOUT_TYPE_OVER_UNDER,\n};\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { EventOfferData } from '../../../../../hooks/useEventOffer/useEventOffersToTabsStructure';\nimport OfferOutcomesList from '../../OutcomesList/OfferOutcomesList';\nimport { StyledOutcomesList } from '../../OutcomesList/OutcomesList';\n\nconst Default: FunctionComponent<{\n\tdata: EventOfferData;\n\tclassName?: string;\n}> = ({ data, className }) => {\n\treturn (\n\t\t<div className={className}>\n\t\t\t{data.offers.map((offer) => (\n\t\t\t\t<StyledMatchOffer key={offer.id}>\n\t\t\t\t\t<OfferOutcomesList offer={offer} />\n\t\t\t\t\t<DeveloperData\n\t\t\t\t\t\tstring={`Offer default: ${offer.id} / ${offer.state}`}\n\t\t\t\t\t/>\n\t\t\t\t</StyledMatchOffer>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport const StyledMatchOffer = styled.div`\n\tfloat: left;\n\twidth: 100%;\n\n\t${StyledOutcomesList} {\n\t\tpadding: 2rem 0 0;\n\t}\n\n\t&:not(:first-of-type) {\n\t\tmargin-top: 5px;\n\t}\n\n\t> div {\n\t\tcolor: ${(props) => props.theme.colors.textDisabled};\n\t\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\t\tfont-size: 10px;\n\t}\n`;\n\nexport default Default;\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { rgba } from 'polished';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { EventOfferData } from '../../../../../hooks/useEventOffer/useEventOffersToTabsStructure';\nimport OfferOutcomesList from '../../OutcomesList/OfferOutcomesList';\nimport sortService, {\n\tDIRECTION,\n} from '../../../../../../../LegacyApp/client/modules/app/sortService';\nimport { MatchOfferType } from '../../../../../types/Match/OfferType';\nimport { MatchOutcomeType } from '../../../../../types/Match/OutcomeType';\nimport { OddsNameContext } from '../../../../../context/OddsNameContext';\nimport { MatchOddsNameData } from '../../../MatchOdds/MatchOddsName';\nimport { StyledMatchOffer } from './Default';\n\nconst SORT_ARRAY = ['1', 'x', '2'];\n\nconst getLabel = (value: MatchOutcomeType): string => {\n\tlet label = value.label;\n\tif (label === '{homeTeam}') {\n\t\tlabel = '1';\n\t}\n\tif (label === '{awayTeam}') {\n\t\tlabel = '2';\n\t}\n\tif (label.toLowerCase() === 'draw') {\n\t\tlabel = 'x';\n\t}\n\treturn label.toLowerCase();\n};\n\nexport const parseThreeWayHandicapDecimalLine = (value) => {\n\t// console.log('parseDecimalLine', {value});\n\tif (!value || value === '0') {\n\t\treturn '0-0';\n\t}\n\tif (value.indexOf('-') > -1) {\n\t\treturn `0${parseFloat(value)}`;\n\t}\n\treturn `${parseFloat(value)}-0`;\n};\n\nconst parseOffer = (offer: MatchOfferType): MatchOfferType => {\n\tconst parsed = {\n\t\t...offer,\n\t\toutcomes: offer.outcomes.sort((a, b) => {\n\t\t\treturn sortService.sort(\n\t\t\t\tDIRECTION.ASC,\n\t\t\t\tSORT_ARRAY.indexOf(getLabel(a)) + 1,\n\t\t\t\tSORT_ARRAY.indexOf(getLabel(b)) + 1,\n\t\t\t);\n\t\t}),\n\t};\n\t// console.log(parsed.outcomes.map(el => el.label), {parsed, offer});\n\treturn parsed;\n};\n\nconst getValue = (value) => {\n\t// console.log('getValue', {value}, value.outcomes[0].decimal_line);\n\treturn parseFloat(value.outcomes[0]?.decimal_line);\n};\n\nconst sort = (a, b) => {\n\treturn sortService.sort(\n\t\tDIRECTION.DESC,\n\t\tgetValue(a) + 1000,\n\t\tgetValue(b) + 1000,\n\t);\n};\n\nexport const parseThreeWayData = (\n\tdata: MatchOddsNameData,\n): MatchOddsNameData => {\n\tif (!data) {\n\t\treturn data;\n\t}\n\treturn {\n\t\t...data,\n\t\tdecimal_line: null,\n\t};\n};\n\nconst map = (offer) => (\n\t<StyledOfferLine key={offer.id}>\n\t\t<StyledOfferLineTitle>\n\t\t\t{trans({ label: 'Starts' })}{' '}\n\t\t\t{parseThreeWayHandicapDecimalLine(offer.outcomes?.[0]?.decimal_line)}\n\t\t</StyledOfferLineTitle>\n\t\t<OfferOutcomesList offer={offer} parseOffer={parseOffer} />\n\t\t<DeveloperData\n\t\t\tstring={`Offer 3-way-handicap: ${offer.id} / ${offer.state}`}\n\t\t/>\n\t</StyledOfferLine>\n);\n\nconst ThreeWayHandicap: FunctionComponent<{ data: EventOfferData }> = ({\n\tdata,\n}) => {\n\treturn (\n\t\t<OddsNameContext.Provider\n\t\t\tvalue={{\n\t\t\t\tparseData: parseThreeWayData,\n\t\t\t}}\n\t\t>\n\t\t\t<div>{data.offers.sort(sort).map(map)}</div>\n\t\t</OddsNameContext.Provider>\n\t);\n};\n\nexport const StyledOfferLineTitle = styled.h6`\n\tcolor: ${(props) => rgba(props.theme.colors.text, 0.35)};\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t${fontSize({ sizeDiff: -3, sizeDesktopDiff: -3, sizeBigScreenDiff: -3 })};\n\tmargin: 0.5rem 0 0;\n`;\n\nexport const StyledOfferLine = styled(StyledMatchOffer)`\n\t&:first-of-type {\n\t\t${StyledOfferLineTitle} {\n\t\t\tmargin-top: 0.25rem !important;\n\t\t}\n\t}\n`;\n\nexport default ThreeWayHandicap;\n","import {\n\tFunctionComponent,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from 'react';\nimport styled, { css } from 'styled-components';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { useOnMount } from '@common/hooks/useOnMount';\nimport { MatchOdds } from '../../Match/MatchOdds/MatchOdds';\nimport { useEventData } from '../../../hooks/useEventData';\nimport {\n\tcheckDisabledOffer,\n\tcheckDisabledOutcome,\n\tcheckSuspendedOffer,\n} from '../../Match/Details/OutcomesList/OutcomesList';\nimport { ChangedOddsType, useOddsChange } from '../../../hooks/useOddsChange';\nimport {\n\tMatchOddsChange,\n\tStyledMatchOddsChange,\n} from '../../Match/MatchOdds/MatchOddsChange';\nimport {\n\tALL_ACCEPT,\n\tNO_ODDS_ACCEPT,\n} from '../../../constants/betSlipAcceptTypes';\nimport {\n\tOFFER_CLOSED_ERROR,\n\tOFFER_SUSPENDED_ERROR,\n} from '../../../constants/betSlip';\nimport { useCheckBetError } from '../../../hooks/useCheckBetError';\nimport {\n\tuseSportsBetSlipAcceptType,\n\tuseSportsBetSlipBetOutcome,\n\tuseSportsBetSlipPlacingBet,\n} from '../../../store/selectors/sportsBetSlip.selectors';\nimport { BetSlipContext } from './BetElement';\n\nexport const BetSlipElementOdds: FunctionComponent = () => {\n\tconst { bet, update } = useContext(BetSlipContext);\n\tconst outcome = useSportsBetSlipBetOutcome({\n\t\tmatchId: bet.matchId,\n\t\toutcomeId: bet.outcomeId,\n\t});\n\tconst placingBet = useSportsBetSlipPlacingBet();\n\tconst [odds, setOdds] = useState(outcome?.decimal_odds);\n\tconst [updatedOutcome, setUpdatedOutcome] = useState(null);\n\n\tconst { data, setActive } = useEventData(\n\t\toutcome?.offer_id,\n\t\t'BetSlipElementOdds',\n\t\t'odds',\n\t\t'offers',\n\t);\n\n\tconst oddsChangeType = useOddsChange(outcome?.decimal_odds, odds);\n\tconst isDisabled = useCheckBetError({ bet });\n\tconst acceptType = useSportsBetSlipAcceptType();\n\n\tconst getUpdated = useCallback(() => {\n\t\treturn data?.outcomes?.length\n\t\t\t? data.outcomes.find((data) => data.id === outcome.id)\n\t\t\t: null;\n\t}, [data, outcome]);\n\n\tuseEffect(() => {\n\t\tif (bet.placed_at || placingBet) {\n\t\t\treturn;\n\t\t}\n\t\tconst updatedOutcome = getUpdated();\n\t\tsetUpdatedOutcome(updatedOutcome);\n\t\tsetOdds(updatedOutcome?.decimal_odds || outcome?.decimal_odds);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [outcome?.decimal_odds, data, getUpdated]);\n\n\tuseOnMount(() => {\n\t\tsetActive(true);\n\n\t\treturn () => {\n\t\t\treturn setActive(false);\n\t\t};\n\t});\n\n\tuseEffect(() => {\n\t\tlet error =\n\t\t\tcheckDisabledOutcome(updatedOutcome?.state) ||\n\t\t\tcheckSuspendedOffer(data?.state)\n\t\t\t\t? OFFER_SUSPENDED_ERROR\n\t\t\t\t: null;\n\t\tif (!error) {\n\t\t\terror = checkDisabledOffer(data?.state) ? OFFER_CLOSED_ERROR : null;\n\t\t}\n\n\t\t// console.log('checkIsDisabledOffer', {\n\t\t// \tbool,\n\t\t// \tofferState: data?.state,\n\t\t// \toutcomeState: updatedOutcome?.state,\n\t\t// \tbet,\n\t\t// });\n\n\t\tif (!error && !bet?.error?.default) {\n\t\t\treturn;\n\t\t}\n\t\tupdate({\n\t\t\terror: {\n\t\t\t\t...(bet?.error || {}),\n\t\t\t\tdefault:\n\t\t\t\t\terror ??\n\t\t\t\t\t([OFFER_SUSPENDED_ERROR, OFFER_CLOSED_ERROR].indexOf(\n\t\t\t\t\t\tbet?.error?.default as string,\n\t\t\t\t\t) > -1\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: bet?.error?.default),\n\t\t\t},\n\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [data?.state, updatedOutcome?.state]);\n\n\tuseEffect(() => {\n\t\tif (!odds || !outcome?.decimal_odds || bet.placed_at || placingBet) {\n\t\t\treturn;\n\t\t}\n\t\tlet type: ChangedOddsType = false;\n\t\tif (odds > outcome?.decimal_odds && acceptType.id === NO_ODDS_ACCEPT) {\n\t\t\ttype = 'high';\n\t\t}\n\t\tif (odds < outcome?.decimal_odds && acceptType.id !== ALL_ACCEPT) {\n\t\t\ttype = 'low';\n\t\t}\n\t\tif (bet?.newOdds !== odds || bet?.oddsChanged !== type) {\n\t\t\tupdate({ newOdds: odds, oddsChanged: type });\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [odds, outcome?.decimal_odds, acceptType.id, update]);\n\n\t// console.log('BetSlipElementOdds', {\n\t// \tofferState: data?.state,\n\t// \toutcomeState: updatedOutcome?.state,\n\t// \toutcome,\n\t// \tbet,\n\t// \tdata,\n\t// \tupdatedOutcome,\n\t// \tisDisabled,\n\t// });\n\n\tif (checkDisabledOffer(data?.state)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledBetSlipElementOdds $disabled={isDisabled}>\n\t\t\t<DeveloperData\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tfontSize: '10px',\n\t\t\t\t\tcolor: 'grey',\n\t\t\t\t\tfontFamily: 'FontRegular',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\ttop: '24px',\n\t\t\t\t\tleft: '0',\n\t\t\t\t}}\n\t\t\t\tstring={`offer_id: ${outcome?.offer_id} / outcome_id: ${bet?.outcomeId} / match_id: ${bet?.matchId}`}\n\t\t\t/>\n\t\t\t<DeveloperData\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\tfontSize: '10px',\n\t\t\t\t\tcolor: 'grey',\n\t\t\t\t\tfontFamily: 'FontRegular',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\ttop: '34px',\n\t\t\t\t\tleft: '0',\n\t\t\t\t}}\n\t\t\t\tstring={`offer_state: ${data?.state} / outcome_state: ${updatedOutcome?.state}`}\n\t\t\t/>\n\t\t\t<MatchOddsChange\n\t\t\t\tchange={oddsChangeType}\n\t\t\t\tforceChangeType={bet?.oddsChanged}\n\t\t\t\todds={odds}\n\t\t\t/>\n\t\t\t<MatchOdds odds={bet.result_odds || odds} />\n\t\t</StyledBetSlipElementOdds>\n\t);\n};\n\nexport const StyledBetSlipElementOdds = styled.div<{\n\t$disabled?: boolean;\n}>`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\n\t> span {\n\t\t${(props) =>\n\t\t\tprops.$disabled\n\t\t\t\t? css`\n\t\t\t\t\t\tcolor: ${props.theme.colors.borderColor};\n\t\t\t\t `\n\t\t\t\t: ''}\n\t}\n\n\t${StyledMatchOddsChange} {\n\t\tfloat: left;\n\t\tmargin-right: 0.5rem;\n\t\tposition: static;\n\n\t\t&.opened {\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n`;\n","import { FunctionComponent, useCallback, useContext } from 'react';\nimport styled from 'styled-components';\nimport {\n\tboxNoHeight,\n\tcutTextStyle,\n} from '@legacyApp/client/modules/style/defaults';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport {\n\tMatchOddsName,\n\tMatchOddsNameData,\n\tMatchOddsNameParseProps,\n\tMatchOddsNameParseResponse,\n\tStyledMatchOddsName,\n} from '../../Match/MatchOdds/MatchOddsName';\nimport { StyledMatchOdds } from '../../Match/MatchOdds/MatchOdds';\nimport {\n\tOfferName,\n\tStyledMatchOfferName,\n} from '../../Match/Details/Offer/OfferName/OfferName';\nimport {\n\tOddsNameContext,\n\tOddsNameContextParseData,\n} from '../../../context/OddsNameContext';\nimport { THREE_WAY_HANDICAP } from '../../../hooks/useEventOffer/eventOfferTypes.contants';\nimport {\n\tparseThreeWayData,\n\tparseThreeWayHandicapDecimalLine,\n} from '../../Match/Details/Offer/Strategies/ThreeWayHandicap';\nimport { useSportsBetSlipBetOutcome } from '../../../store/selectors/sportsBetSlip.selectors';\nimport { BetSlipContext } from './BetElement';\nimport { BetSlipElementOdds } from './BetSlipElementOdds';\n\nexport type BetSlipOddsNameParse = (\n\tprops: MatchOddsNameParseProps,\n\toffer_label?: string,\n) => MatchOddsNameParseResponse;\n\nconst isOfferThreeWayHandicap = (offer_label: string): boolean =>\n\t!!(offer_label && offer_label.indexOf(THREE_WAY_HANDICAP.name) > -1);\n\nexport const parseBetSlipOddsData = (\n\tdata: MatchOddsNameData,\n\toffer_label: string,\n): MatchOddsNameData => {\n\tif (isOfferThreeWayHandicap(offer_label)) {\n\t\treturn parseThreeWayData(data);\n\t}\n\treturn data;\n};\n\nexport const parseBetSlipOddsName: BetSlipOddsNameParse = (\n\t{ name, data },\n\toffer_label,\n) => {\n\tif (isOfferThreeWayHandicap(offer_label)) {\n\t\t// console.log('parseBetSlipOddsName', {\n\t\t// \tname,\n\t\t// \tmatch,\n\t\t// \tfullName,\n\t\t// \tparse,\n\t\t// \tnoShort,\n\t\t// \tdata,\n\t\t// \toffer_label,\n\t\t// });\n\t\treturn (\n\t\t\t<StyledOddsName>\n\t\t\t\t{name} - {transSports({ label: 'Starts' })}{' '}\n\t\t\t\t{parseThreeWayHandicapDecimalLine(data?.decimal_line)}\n\t\t\t</StyledOddsName>\n\t\t);\n\t}\n\treturn name;\n};\n\nexport const BetSlipElementDetails: FunctionComponent = () => {\n\tconst { bet } = useContext(BetSlipContext);\n\tconst outcome = useSportsBetSlipBetOutcome({\n\t\tmatchId: bet.matchId,\n\t\toutcomeId: bet.outcomeId,\n\t});\n\n\tconst parseOdds = useCallback(\n\t\t(props: MatchOddsNameParseProps): MatchOddsNameParseResponse => {\n\t\t\treturn parseBetSlipOddsName(props, outcome?.offer_label || '');\n\t\t},\n\t\t[outcome?.offer_label],\n\t);\n\n\tconst parseData: OddsNameContextParseData = useCallback(\n\t\t(data) => {\n\t\t\treturn parseBetSlipOddsData(data, outcome?.offer_label || '');\n\t\t},\n\t\t[outcome?.offer_label],\n\t);\n\n\treturn (\n\t\t<OddsNameContext.Provider value={{ parse: parseOdds, parseData }}>\n\t\t\t<StyledBetElementDetails>\n\t\t\t\t<StyledName>\n\t\t\t\t\t<MatchOddsName fullName data={outcome} />\n\t\t\t\t\t<OfferName offer={{ label: outcome?.offer_label }} />\n\t\t\t\t</StyledName>\n\t\t\t\t<BetSlipElementOdds />\n\t\t\t</StyledBetElementDetails>\n\t\t</OddsNameContext.Provider>\n\t);\n};\n\nexport const StyledOddsName = styled.span`\n\tdisplay: inline !important;\n`;\n\nexport const StyledName = styled.div`\n\t${cutTextStyle};\n\talign-items: flex-end;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\n\tspan {\n\t\tdisplay: inline-block;\n\t\t${cutTextStyle}\n\t}\n`;\n\nexport const StyledBetElementDetails = styled.div`\n\t${boxNoHeight};\n\talign-items: flex-end;\n\tdisplay: grid;\n\tgrid-template-columns: calc(100% - 55px) 55px;\n\n\t${StyledMatchOfferName} {\n\t\tcolor: ${(props) => props.theme.colors.textDisabled};\n\t\t${fontSize({ sizeDiff: -4, sizeDesktopDiff: -4, sizeBigScreenDiff: -4 })};\n\t\tmargin-left: 0.5rem;\n\t}\n\n\t${StyledMatchOddsName} {\n\t\t${fontSize({ sizeDiff: -2, sizeDesktopDiff: -2, sizeBigScreenDiff: -2 })};\n\t}\n\n\t${StyledMatchOdds} {\n\t\ttext-align: right;\n\t}\n`;\n","import { FunctionComponent, ReactElement } from 'react';\nimport { InputCurrencyContainer } from '@legacyApp/client/components/inputCurrency';\nimport { useValidateProfit } from '@legacyApp/hooks/game/useValidateProfit';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\n\nconst ProfitInput: FunctionComponent<{\n\tvalue: number | string;\n\tupdate: (string) => void;\n\tupdateError?: (error) => void;\n\tgame: GameType;\n\tlabel?: string | ReactElement;\n}> = ({ value, update, updateError, game, label }) => {\n\tconst { error } = useValidateProfit({\n\t\tvalue,\n\t\tgame,\n\t\tpreventInitialCheck: true,\n\t\tupdateError,\n\t});\n\n\t// console.log('ProfitInput', {\n\t// \tvalue, error,\n\t// });\n\n\treturn (\n\t\t<InputCurrencyContainer\n\t\t\tlabel={label}\n\t\t\tnoConverterInfo\n\t\t\tname=\"profit-input\"\n\t\t\ttranslateValue={value === undefined}\n\t\t\tisDisabled={value === undefined}\n\t\t\terror={!!error}\n\t\t\tvalue={value === undefined ? 'Estimated profit' : value}\n\t\t\tupdate={update}\n\t\t/>\n\t);\n};\n\nexport { ProfitInput };\n","import { useEffect, useState } from 'react';\nimport { useAppSelector } from '@legacyApp/hooks/store/useAppSelector';\nimport { BetSlipBet } from '../types/BetSlip/BetSlipBet';\n\nconst getBetFromBetSlipList = (\n\tbetsList: BetSlipBet[],\n\tmatchId: string,\n\toutcomeId: string,\n): BetSlipBet => {\n\tif (betsList?.length) {\n\t\treturn betsList.find(\n\t\t\t(el) => el.matchId === matchId && outcomeId === el.outcomeId,\n\t\t);\n\t}\n\treturn null;\n};\n\nexport const useBetSlipElementOdds = (\n\tmatchId: string,\n\toutcomeId: string,\n): number => {\n\tconst { outcome, betsList } = useAppSelector((state) => {\n\t\tconst match = state?.sportsBetSlip?.bets?.[matchId];\n\t\treturn {\n\t\t\toutcome: match?.outcome[outcomeId],\n\t\t\tbetsList: state?.sportsBetSlip?.betsList,\n\t\t};\n\t});\n\n\tconst [bet, setBet] = useState<BetSlipBet>(null);\n\tconst [odds, setOdds] = useState<number>(null);\n\n\tuseEffect(() => {\n\t\tsetBet(getBetFromBetSlipList(betsList, matchId, outcomeId));\n\t}, [betsList, matchId, outcomeId]);\n\n\tuseEffect(() => {\n\t\tsetBet(getBetFromBetSlipList(betsList, matchId, outcomeId));\n\t}, [betsList, matchId, outcomeId]);\n\n\tuseEffect(() => {\n\t\tsetOdds(bet?.newOdds || outcome?.decimal_odds || 1);\n\t}, [bet?.newOdds, outcome?.decimal_odds]);\n\n\treturn odds;\n};\n","import React, { FunctionComponent, useContext } from 'react';\nimport styled, { css } from 'styled-components';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { ButtonStyle } from '@legacyApp/client/components/button/button.style';\nimport { config } from '@legacyApp/client/config';\nimport { scientificToDecimal } from '@legacyApp/methods/math/scientificToDecimal';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { StakeInput } from '../BetSlipForm/StakeInput';\nimport { ProfitInput } from '../BetSlipForm/ProfitInput';\nimport { BetSlipErrorDataType } from '../../../types/BetSlip/BetSlipBet';\nimport { useBetSlipElementOdds } from '../../../hooks/useBetSlipElementOdds';\nimport {\n\tuseSportsBetSlipBetOutcome,\n\tuseSportsBetSlipType,\n} from '../../../store/selectors/sportsBetSlip.selectors';\nimport { useEventData } from '../../../hooks/useEventData';\nimport { checkDisabledOffer } from '../../Match/Details/OutcomesList/OutcomesList';\nimport { BetSlipContext } from './BetElement';\n\nexport const BetSlipElementForm: FunctionComponent = () => {\n\tconst { bet, update } = useContext(BetSlipContext);\n\tconst type = useSportsBetSlipType();\n\tconst odds = useBetSlipElementOdds(bet?.matchId, bet?.outcomeId);\n\tconst outcome = useSportsBetSlipBetOutcome({\n\t\tmatchId: bet.matchId,\n\t\toutcomeId: bet.outcomeId,\n\t});\n\n\tconst { data } = useEventData(\n\t\toutcome?.offer_id,\n\t\t'BetSlipElementOdds',\n\t\t'odds',\n\t\t'offers',\n\t);\n\n\tif (type.id === 'multi' || bet.placed_at) {\n\t\treturn null;\n\t}\n\n\tconst disabled = checkDisabledOffer(data?.state);\n\n\t// console.log('BetSlipElementForm', {\n\t// \tdisabled,\n\t// \tdata,\n\t// \tstate: data?.state,\n\t// });\n\n\treturn (\n\t\t<StyledBetSlipElementForm $disabled={disabled}>\n\t\t\t<StakeInput\n\t\t\t\tgame={GameType.SPORTS}\n\t\t\t\tlabel={\n\t\t\t\t\t<span className=\"cut-text\">{transSports({ label: 'Stake' })}</span>\n\t\t\t\t}\n\t\t\t\tvalue={scientificToDecimal(bet?.stake)}\n\t\t\t\tupdateError={(error: BetSlipErrorDataType) =>\n\t\t\t\t\tupdate({ error: { stake: error } })\n\t\t\t\t}\n\t\t\t\tupdate={(stake: string) =>\n\t\t\t\t\tupdate({ stake: roundNumber(stake, config.decimals.bet) })\n\t\t\t\t}\n\t\t\t\tprecision={config.decimals.bet}\n\t\t\t/>\n\t\t\t<ProfitInput\n\t\t\t\tgame={GameType.SPORTS}\n\t\t\t\tlabel={\n\t\t\t\t\t<span className=\"cut-text\">\n\t\t\t\t\t\t{transSports({ label: 'Estimated profit' })}\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t\tvalue={scientificToDecimal(\n\t\t\t\t\troundNumber(bet?.stake * (odds - 1), config.decimals.balance),\n\t\t\t\t)}\n\t\t\t\tupdateError={(error: BetSlipErrorDataType) =>\n\t\t\t\t\tupdate({ error: { profit: error } })\n\t\t\t\t}\n\t\t\t\tupdate={(profit: string) =>\n\t\t\t\t\tupdate({\n\t\t\t\t\t\tstake: roundNumber(\n\t\t\t\t\t\t\tparseFloat(profit) / (odds - 1),\n\t\t\t\t\t\t\tconfig.decimals.bet,\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</StyledBetSlipElementForm>\n\t);\n};\n\nexport const BetSlipInput = css`\n\t.input-wrapper {\n\t\tmargin-top: 0 !important;\n\t\tpadding-top: 0;\n\n\t\t.input {\n\t\t\tbackground-color: #051426 !important;\n\t\t}\n\n\t\t.label,\n\t\t${ButtonStyle}, span,\n\t\t> div > .relative > i,\n\t\t> div > .relative > svg {\n\t\t\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t\t\t${fontSize({\n\t\t\t\tsizeDiff: -4,\n\t\t\t\tsizeDesktopDiff: -4,\n\t\t\t\tsizeBigScreenDiff: -4,\n\t\t\t\timportant: true,\n\t\t\t})}\n\t\t}\n\n\t\t.input {\n\t\t\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t\t\t${fontSize({\n\t\t\t\tsizeDiff: -2,\n\t\t\t\tsizeDesktopDiff: -4,\n\t\t\t\tsizeBigScreenDiff: -4,\n\t\t\t\timportant: true,\n\t\t\t})}\n\t\t}\n\n\t\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\t\t.input {\n\t\t\t\tpadding: 7px 10px;\n\t\t\t}\n\t\t}\n\t}\n`;\n\nconst StyledBetSlipElementForm = styled.div<{\n\t$disabled: boolean;\n}>`\n\tdisplay: grid;\n\tgrid-column-gap: 0.5rem;\n\tgrid-template-columns: calc(50% - 0.25rem) calc(50% - 0.25rem);\n\tpadding-top: 0.25rem !important;\n\n\t${BetSlipInput};\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\tpadding: 0 0.4rem 0.4rem !important;\n\t}\n\n\t${(props) =>\n\t\tprops.$disabled\n\t\t\t? css`\n\t\t\t\t\topacity: 0.3;\n\t\t\t\t\tpointer-events: none;\n\t\t\t `\n\t\t\t: ''}\n`;\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport {\n\tfaCalendarCheck,\n\tfaExclamationCircle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { darken } from 'polished';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { BetSlipErrorType } from '../../../types/BetSlip/BetSlipBet';\nimport { useCheckOnlyBetError } from '../../../hooks/useCheckBetError';\nimport { useSportsBetSlipType } from '../../../store/selectors/sportsBetSlip.selectors';\nimport { BetSlipContext } from './BetElement';\n\nexport const BetSlipError: FunctionComponent<{\n\terror: BetSlipErrorType;\n}> = ({ error }) => {\n\tif (!error) {\n\t\treturn null;\n\t}\n\tif (error.multiMatch && error.multiMatch !== true) {\n\t\treturn <>{transSports({ label: error.multiMatch })}</>;\n\t}\n\tif (error.default && error.default !== true) {\n\t\treturn <>{transSports({ label: error.default })}</>;\n\t}\n\tconst errorKey = Object.keys(error).filter(\n\t\t(key) => error[key] && typeof error[key] !== 'boolean',\n\t)[0];\n\treturn (\n\t\t<>{error[errorKey] ? transSports({ label: error[errorKey] }) : null}</>\n\t);\n};\n\nexport const BetSlipElementMessage: FunctionComponent = () => {\n\tconst { bet } = useContext(BetSlipContext);\n\n\tconst type = useSportsBetSlipType();\n\tconst isBetSlipError = useCheckOnlyBetError({ bet });\n\tconst isPlacedMulti = type.id === 'multi' && bet.placed_at;\n\tconst isMessage =\n\t\t(isBetSlipError || bet.placed_at || bet.info) && !isPlacedMulti;\n\n\tif (!isMessage) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledBetSlipElementMessage $success={!isBetSlipError && !bet.info}>\n\t\t\t{isMessage && (\n\t\t\t\t<span>\n\t\t\t\t\t<AwesomeIcon\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tisBetSlipError || bet.info ? faExclamationCircle : faCalendarCheck\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={'small-margin-right'}\n\t\t\t\t\t/>\n\t\t\t\t\t{(isBetSlipError ? <BetSlipError error={bet.error} /> : null) ||\n\t\t\t\t\t\ttransSports({ label: bet.info }) ||\n\t\t\t\t\t\ttransSports({ label: 'Bet slip placed!' })}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</StyledBetSlipElementMessage>\n\t);\n};\n\nexport const StyledBetSlipElementMessage = styled.div<{\n\t$success?: boolean;\n}>`\n\t${fontSize({ sizeDiff: -4, sizeDesktopDiff: -4, sizeBigScreenDiff: -4 })};\n\talign-items: center;\n\tbackground-color: ${(props) =>\n\t\tprops.$success\n\t\t\t? darken(0.05, props.theme.colors.positive)\n\t\t\t: props.theme.colors.alertError};\n\tdisplay: flex;\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\theight: auto;\n\tjustify-content: flex-start;\n\tpadding-bottom: 0.3rem;\n\tpadding-top: 0.3rem;\n`;\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { formatToFullDate } from '@legacyApp/client/modules/app/timeService';\n\nexport const Timestamp: FunctionComponent<{\n\ttime: number;\n}> = ({ time }) => {\n\treturn <StyledTimestamp>{formatToFullDate(time * 1000)}</StyledTimestamp>;\n};\n\nexport const StyledTimestamp = styled.span`\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n`;\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\n\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { BetSlipTypeType } from '../../../types/BetSlip/BetSlipType';\n\nexport const TypeLabel: FunctionComponent<{ type: BetSlipTypeType }> = ({\n\ttype,\n}) => {\n\tif (!type || ['single', 'multi'].indexOf(type) > -1) {\n\t\treturn null;\n\t}\n\treturn <StyledTypeLabel>{type.split('-').join(' ')}</StyledTypeLabel>;\n};\n\nexport const StyledTypeLabel = styled.div`\n\t${fontSize({ size: '10px', sizeDesktop: '12px', sizeBigScreen: '12px' })};\n\tbackground-color: #052144;\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\tposition: relative;\n\ttext-transform: capitalize;\n\n\t&:before {\n\t\tbackground-color: #283d55;\n\t\tbottom: -1px;\n\t\tcontent: '';\n\t\theight: 2px;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttransform: translateX(-50%);\n\t\twidth: calc(100% - 1rem);\n\t\tz-index: 1;\n\t}\n`;\n","import { FunctionComponent, useContext, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '@legacyApp/client/components/button';\nimport { useOpenBetModal } from '@legacyApp/hooks/bets/useOpenBetModal';\nimport { ButtonStyle } from '@legacyApp/client/components/button/button.style';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { useOnMount } from '@common/hooks/useOnMount';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { StateLabel, StyledStateLabel } from './StateLabel';\nimport { StyledTimestamp, Timestamp } from './Timestamp';\nimport { BetslipDetailsContext } from './BetSlipDetails';\nimport { TypeLabel } from './TypeLabel';\n\nexport const TitleBar: FunctionComponent = () => {\n\tconst refElement = useRef<HTMLElement>();\n\tconst [disableOpenModal, setDisableOpenModal] = useState(false);\n\tconst { data } = useContext(BetslipDetailsContext);\n\tconst { openCallback } = useOpenBetModal({\n\t\tdata,\n\t\tid: data.hash,\n\t\tgame: data.dataType,\n\t\ttype: data.dataType,\n\t\t// elementQuery: `[data-element-id=\"betDetails-titleBar-${data.hash}\"]`,\n\t});\n\n\tuseOnMount(() => {\n\t\tif (refElement.current) {\n\t\t\tconst bool = !!refElement.current.closest('.modal');\n\t\t\tif (bool) {\n\t\t\t\tsetDisableOpenModal(true);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t<TypeLabel type={data.type} />\n\t\t\t<TitleBarStyled ref={refElement}>\n\t\t\t\t<StateLabel state={data.state} /> <Timestamp time={data.published_at} />\n\t\t\t\t{!disableOpenModal && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tname=\"openBetSlipDetails\"\n\t\t\t\t\t\tlocalTheme={{ type: 'clear' }}\n\t\t\t\t\t\tonClick={openCallback}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AwesomeIcon icon={faExternalLinkAlt} />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</TitleBarStyled>\n\t\t</>\n\t);\n};\n\nexport const TitleBarStyled = styled.div<{ ref?: any }>`\n\talign-items: center;\n\tbackground-color: #052144;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tposition: relative;\n\n\t${StyledStateLabel} {\n\t\tmargin-right: 0.75rem;\n\t}\n\n\t${StyledTimestamp} {\n\t\tpadding-right: 13px;\n\t\t${fontSize({ size: '10px', sizeDesktop: '12px', sizeBigScreen: '12px' })};\n\t}\n\n\t${ButtonStyle} {\n\t\tmargin: 0;\n\t\tpadding: 0.25rem;\n\t\tposition: absolute;\n\t\tright: 0.5rem;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\t${fontSize({ size: '13px', sizeDesktop: '11px' })};\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\t${StyledStateLabel} {\n\t\t\tmargin-right: 0.25rem;\n\t\t}\n\n\t\t${ButtonStyle} {\n\t\t\tright: 0;\n\t\t}\n\t}\n`;\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport { boxNoHeight } from '@legacyApp/client/modules/style/defaults';\nimport SummaryValue, { StyledSummaryValue } from '../BetSlipForm/SummaryValue';\nimport { MatchOdds } from '../../Match/MatchOdds/MatchOdds';\nimport { BetSlipDetailsProgressState } from '../../../types/BetSlipDetails/BetSlipDetailsType';\nimport { useBetSlipTotalOddsAndProfit } from '../../../hooks/useBetSlipTotalOddsAndProfit';\nimport { BetslipDetailsContext } from './BetSlipDetails';\n\nexport const SummaryBar: FunctionComponent = () => {\n\tconst { data } = useContext(BetslipDetailsContext);\n\n\tconst { totalOdds, profit } = useBetSlipTotalOddsAndProfit(data);\n\n\treturn (\n\t\t<StyledSummaryBar>\n\t\t\t<SummaryValue\n\t\t\t\ttitle=\"total odds\"\n\t\t\t\tsimpleValue\n\t\t\t\tvalue={<MatchOdds odds={totalOdds} />}\n\t\t\t/>\n\t\t\t<SummaryValue\n\t\t\t\ttitle=\"total stake\"\n\t\t\t\tvalue={parseFloat(data.amount)}\n\t\t\t\tcurrency={data.currency}\n\t\t\t/>\n\t\t\t{data.state === BetSlipDetailsProgressState.PENDING ? (\n\t\t\t\t<SummaryValue\n\t\t\t\t\ttitle=\"Estimated profit\"\n\t\t\t\t\tvalue={profit}\n\t\t\t\t\tcurrency={data.currency}\n\t\t\t\t\tvalueProps={{\n\t\t\t\t\t\tstate: data.state,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<SummaryValue\n\t\t\t\t\ttitle=\"total profit\"\n\t\t\t\t\tvalue={parseFloat(data.profit)}\n\t\t\t\t\tvalueProps={{\n\t\t\t\t\t\tcolor: true,\n\t\t\t\t\t\tstate: data.state,\n\t\t\t\t\t}}\n\t\t\t\t\tcurrency={data.currency}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyledSummaryBar>\n\t);\n};\n\nconst StyledSummaryBar = styled.div`\n\t${boxNoHeight};\n\n\t${StyledSummaryValue} {\n\t\tmargin: 0 0 5px;\n\n\t\t&:last-of-type {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n`;\n","import { config } from '@legacyApp/client/config';\n\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\n\nexport const getCashoutValue = (stake: number, odds: number) => {\n\treturn roundNumber(stake * odds, config.decimals.balance);\n};\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport { useFetchApi } from '@legacyApp/hooks/fetch/useFetchApi';\nimport { getSportsApiUrl } from '@legacyApp/client/modules/app/sportsService';\nimport { LOADING_IDS } from '@common/constants/fetch/loading.ids';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { showAlert } from '@legacyApp/client/store/alerts/alerts.actions';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { BetSlipHistoryContext } from '../context/BetSlipHistoryContext';\nimport { BetslipDetailsContext } from '../components/BetSlipSection/BetSlipDetails/BetSlipDetails';\nimport { updateBalance } from '../../balance/store/balance.actions';\nimport { getCashoutValue } from '../methods/getCashoutValue';\n\nconst createLoadingId = (hash) => {\n\tif (!hash) {\n\t\treturn null;\n\t}\n\treturn `${LOADING_IDS.BETSLIP_CASHOUT}${hash}`;\n};\n\nexport const useCashout = () => {\n\tconst { data } = useContext(BetslipDetailsContext);\n\tconst { getList } = useContext(BetSlipHistoryContext);\n\n\tconst [loadingId, setLoadingId] = useState(createLoadingId(data?.hash));\n\n\tconst { fetch } = useFetchApi();\n\tconst dispatch = useAppDispatch();\n\n\tconst submitCashout = useCallback(async () => {\n\t\tawait fetch({\n\t\t\turl: getSportsApiUrl('/betslips/cashout'),\n\t\t\tmethod: 'POST',\n\t\t\tloaderId: loadingId,\n\t\t\tparameters: {\n\t\t\t\tAuthorization: true,\n\t\t\t\tbody: {\n\t\t\t\t\tuuid: data.hash,\n\t\t\t\t\ttotal_cashout_odds: data.total_available_cashout_odds,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.userBalance) {\n\t\t\t\t\tdispatch(updateBalance(response.userBalance, 'betSlipCashout'));\n\t\t\t\t\tdispatch(\n\t\t\t\t\t\tshowAlert(\n\t\t\t\t\t\t\t'info',\n\t\t\t\t\t\t\ttransSports({\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t'You have been granted {{cashout_value}} {{cashout_currency}} from cashout',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tcashout_value: getCashoutValue(\n\t\t\t\t\t\t\t\t\t\tdata.total_available_cashout_odds,\n\t\t\t\t\t\t\t\t\t\tNumber(data.amount),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tcashout_currency: data.currency.toUpperCase(),\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\tgetList();\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tgetList();\n\t\t\t});\n\t}, [\n\t\tdata.amount,\n\t\tdata.currency,\n\t\tdata.hash,\n\t\tdata.total_available_cashout_odds,\n\t\tdispatch,\n\t\tfetch,\n\t\tgetList,\n\t\tloadingId,\n\t]);\n\n\tuseEffect(() => {\n\t\tconst newLoadingId = createLoadingId(data?.hash);\n\t\tif (newLoadingId !== loadingId) {\n\t\t\tsetLoadingId(newLoadingId);\n\t\t}\n\t}, [loadingId, data?.hash]);\n\n\treturn {\n\t\tsubmitCashout,\n\t\tloadingId,\n\t};\n};\n","import { FC, useContext } from 'react';\nimport styled from 'styled-components';\nimport { boxNoHeight } from '@legacyApp/client/modules/style/defaults';\nimport { Button } from '@legacyApp/client/components/button';\nimport { ButtonStyle } from '@legacyApp/client/components/button/button.style';\nimport SummaryValue, { StyledSummaryValue } from '../BetSlipForm/SummaryValue';\nimport { useCashout } from '../../../hooks/useCashout';\nimport { getCashoutValue } from '../../../methods/getCashoutValue';\nimport { BetslipDetailsContext } from './BetSlipDetails';\n\nexport const CashoutBar: FC = () => {\n\tconst { data } = useContext(BetslipDetailsContext);\n\n\tconst cashoutOdds = data?.total_available_cashout_odds || null;\n\n\tconst { submitCashout, loadingId } = useCashout();\n\n\tif (!cashoutOdds) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledSummaryBar>\n\t\t\t<Button\n\t\t\t\tname=\"cashout-button\"\n\t\t\t\tloadingId={loadingId}\n\t\t\t\tonClick={submitCashout}\n\t\t\t>\n\t\t\t\t<SummaryValue\n\t\t\t\t\ttitle=\"cashout\"\n\t\t\t\t\tvalue={getCashoutValue(cashoutOdds, Number(data.amount))}\n\t\t\t\t\tcurrency={data.currency}\n\t\t\t\t/>\n\t\t\t</Button>\n\t\t</StyledSummaryBar>\n\t);\n};\n\nconst StyledSummaryBar = styled.div`\n\t${boxNoHeight};\n\tpadding-top: 0.25rem !important;\n\n\t${ButtonStyle} {\n\t\tmargin: 0 !important;\n\t\tpadding: 0.25rem 0.5rem;\n\t\twidth: 100%;\n\n\t\t${StyledSummaryValue} {\n\t\t\tfont-size: 14px !important;\n\t\t}\n\t}\n`;\n","import { createContext, FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport {\n\tborderRadius,\n\tboxNoHeight,\n} from '@legacyApp/client/modules/style/defaults';\nimport { BetSlipDetailsType } from '../../../types/BetSlipDetails/BetSlipDetailsType';\nimport { EventElement } from './EventElement';\nimport { TitleBar } from './TitleBar';\nimport { SummaryBar } from './SummaryBar';\nimport { CashoutBar } from './CashoutBar';\n\nexport const BetslipDetailsContext = createContext<{\n\tdata: BetSlipDetailsType;\n}>({\n\tdata: null,\n});\n\nexport const BetSlipDetails: FunctionComponent<{\n\tdata: BetSlipDetailsType;\n}> = ({ data }) => {\n\t// console.log('BetSlipDetails', {data});\n\treturn (\n\t\t<BetslipDetailsContext.Provider value={{ data }}>\n\t\t\t<StyledBetSlipDetails>\n\t\t\t\t<TitleBar />\n\t\t\t\t{data.betslip_events &&\n\t\t\t\t\tdata.betslip_events.map((el, index) => (\n\t\t\t\t\t\t<EventElement key={index} data={el} />\n\t\t\t\t\t))}\n\t\t\t\t<SummaryBar />\n\t\t\t\t{data?.total_available_cashout_odds && <CashoutBar />}\n\t\t\t</StyledBetSlipDetails>\n\t\t</BetslipDetailsContext.Provider>\n\t);\n};\n\nexport const StyledBetSlipDetails = styled.div`\n\t${boxNoHeight};\n\t${borderRadius};\n\tbackground-color: #162d47;\n\tmargin-bottom: 0.7rem;\n\toverflow: hidden;\n\n\t> span,\n\t> div {\n\t\tpadding: 0.5rem 0.7rem;\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\t> span,\n\t\t> div {\n\t\t\tpadding: 0.4rem;\n\t\t}\n\t}\n`;\n","import { FC, FunctionComponent, PropsWithChildren, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { boxNoHeight } from '@legacyApp/client/modules/style/defaults';\nimport { Icon } from '@common/components/icons';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { getTimestamp } from '@legacyApp/client/modules/app/timeService';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { MatchContext } from '../../../context/MatchContext';\nimport { OddsNameContext } from '../../../context/OddsNameContext';\nimport {\n\tMatchOddsName,\n\tStyledMatchOddsName,\n} from '../../Match/MatchOdds/MatchOddsName';\nimport { MatchOdds, StyledMatchOdds } from '../../Match/MatchOdds/MatchOdds';\nimport { MatchName } from '../../Match/MatchName/MatchName';\nimport { MatchScoreHandler } from '../../Match/MatchScore/MatchScoreHandler';\nimport { SportContext } from '../../../context/SportContext';\nimport {\n\tOfferName,\n\tStyledMatchOfferName,\n} from '../../Match/Details/Offer/OfferName/OfferName';\nimport { BetSlipDetailsEventType } from '../../../types/BetSlipDetails/BetSlipDetailsEventType';\nimport { createNameFromSlug } from '../../../methods/createNameFromSlug';\nimport { StyledMatchScoreWrapper } from '../../Match/MatchScore/ScoreWrapper';\nimport { StyledScoreSimpleHorizontal } from '../../Match/MatchScore/types/ScoreSimple';\nimport {\n\tStyledTimeInformation,\n\tTimeInformation,\n} from '../../Match/MatchDate/TimeInformation';\nimport {\n\tparseBetSlipOddsData,\n\tparseBetSlipOddsName,\n} from '../BetElement/BetSlipElementDetails';\nimport { MatchLiveBadge, StyledLive } from '../../Match/MatchDate/MatchDate';\nimport { BetSlipDetailsProgressState } from '../../../types/BetSlipDetails/BetSlipDetailsType';\nimport { StateLabel } from './StateLabel';\n\nexport const EventElementOddsNameContext: FC<\n\tPropsWithChildren<{\n\t\tdata: Partial<BetSlipDetailsEventType>;\n\t}>\n> = ({ data, children }) => {\n\tconst label = data.offer.label;\n\tconst parseOdds = useCallback(\n\t\t(props) => {\n\t\t\treturn parseBetSlipOddsName(props, label);\n\t\t},\n\t\t[label],\n\t);\n\n\tconst parseData = useCallback(\n\t\t(props) => {\n\t\t\treturn parseBetSlipOddsData(props, label);\n\t\t},\n\t\t[label],\n\t);\n\n\tconst sport = {\n\t\t...data.offer.event.sport,\n\t\tslug: data.offer.event.sport.slug,\n\t\tname: createNameFromSlug(data.offer.event.sport.slug),\n\t\tfeatured: null,\n\t\tposition: null,\n\t};\n\n\treturn (\n\t\t<MatchContext.Provider\n\t\t\tvalue={{\n\t\t\t\tmatch: {\n\t\t\t\t\t...data.offer.event,\n\t\t\t\t\ttype: data.type,\n\t\t\t\t\tsport,\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t<SportContext.Provider value={sport}>\n\t\t\t\t<OddsNameContext.Provider value={{ parse: parseOdds, parseData }}>\n\t\t\t\t\t{children}\n\t\t\t\t</OddsNameContext.Provider>\n\t\t\t</SportContext.Provider>\n\t\t</MatchContext.Provider>\n\t);\n};\n\nexport const EventElement: FunctionComponent<{\n\tdata: Partial<BetSlipDetailsEventType>;\n}> = ({ data }) => {\n\tif (!data?.offer?.event) {\n\t\treturn (\n\t\t\t<DeveloperData\n\t\t\t\tdata={data}\n\t\t\t\ttitle={'Invalid \"betslip_events\" element - jsonPath for \"offer.event\"'}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst iconId = data.offer.event.sport.slug ||\n\t\tdata.offer.event.sport.name.toLowerCase();\n\n\t// console.log('EventElement', iconId);\n\n\tconst title = (\n\t\t<StyledEventTitle>\n\t\t\t<Icon\n\t\t\t\tid={`sports/${iconId}`}\n\t\t\t\tnoIcon={<Icon color={'white'} id={'sports_bet'} />}\n\t\t\t/>{' '}\n\t\t\t<MatchName />\n\t\t\t{data.state !== BetSlipDetailsProgressState.CASHOUT && (\n\t\t\t\t<MatchOdds odds={data.decimal_odds} />\n\t\t\t)}\n\t\t</StyledEventTitle>\n\t);\n\n\t// const title = data.state !== BetSlipDetailsProgressState.PENDING ? titleElement : (\n\t// \t<Link href={`/sports/event/${data.offer.event.id}`}>\n\t// \t\t<a>\n\t// \t\t\t{titleElement}\n\t// \t\t</a>\n\t// \t</Link>\n\t// );\n\n\t// const title = titleElement;\n\n\treturn (\n\t\t<EventElementOddsNameContext data={data}>\n\t\t\t<StyledEvent>\n\t\t\t\t{title}\n\t\t\t\t<OfferName offer={data.offer} />\n\t\t\t\t<StyledMatchOddsNameBox className=\"box-no-height\">\n\t\t\t\t\t<StateLabel state={data.state} />{' '}\n\t\t\t\t\t<MatchOddsName data={data.outcome} fullName noShort />\n\t\t\t\t</StyledMatchOddsNameBox>\n\t\t\t\t{data.offer.event?.start_at &&\n\t\t\t\tdata.offer.event?.start_at * 1000 > getTimestamp() ? (\n\t\t\t\t\t<TimeInformation noParse />\n\t\t\t\t) : (\n\t\t\t\t\tisTrueOrZero(data.offer.event.home_team_score) && (\n\t\t\t\t\t\t<StyledMatchScoreBox>\n\t\t\t\t\t\t\t<MatchLiveBadge eventBetSlipState={data.state} />\n\t\t\t\t\t\t\t<MatchScoreHandler\n\t\t\t\t\t\t\t\tparams={{\n\t\t\t\t\t\t\t\t\thorizontal: true,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tscore={data.offer.event}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</StyledMatchScoreBox>\n\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</StyledEvent>\n\t\t</EventElementOddsNameContext>\n\t);\n};\n\nconst StyledMatchOddsNameBox = styled.div`\n\t${boxNoHeight};\n\tmargin-bottom: 0.3rem;\n`;\n\nconst StyledMatchScoreBox = styled.div`\n\t${boxNoHeight};\n\talign-items: center;\n\tdisplay: flex;\n\tflex-direction: row;\n\tmargin-top: 0.25rem;\n`;\n\nconst StyledEventTitle = styled.div`\n\talign-items: center;\n\tdisplay: grid;\n\tgrid-column-gap: 0.25rem;\n\tgrid-template-columns: 15px calc(100% - 60px - 0.5rem) 45px;\n\n\t> div {\n\t\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\n\t\t> span {\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n\n\t${StyledMatchOdds} {\n\t\ttext-align: right;\n\t}\n`;\n\nexport const ElementBottomBorder = css`\n\tposition: relative;\n\n\t&:before {\n\t\tbackground-color: #283d55;\n\t\tbottom: 0;\n\t\tcontent: '';\n\t\theight: 2px;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttransform: translateX(-50%);\n\t\twidth: calc(100% - 1rem);\n\t}\n`;\n\nconst StyledEvent = styled.div`\n\t${boxNoHeight};\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\tuser-select: text;\n\n\t* {\n\t\tuser-select: text;\n\t}\n\n\t&:not(:last-of-type) {\n\t\t${ElementBottomBorder}\n\t}\n\n\t${StyledTimeInformation} {\n\t\t${boxNoHeight};\n\t\tcolor: ${(props) => props.theme.colors.textDisabled};\n\t\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\t\t${fontSize({ size: '10px', sizeDesktop: '12px', sizeBigScreen: '14px' })};\n\t}\n\n\t${StyledMatchOddsName},\n\t${StyledEventTitle} {\n\t\t${fontSize({ sizeDiff: -2, sizeDesktopDiff: -2 })}\n\t}\n\n\t${StyledMatchOfferName},\n\t${StyledLive},\n\t${StyledMatchScoreWrapper} {\n\t\t${fontSize({ sizeDiff: -3, sizeDesktopDiff: -4 })}\n\t}\n\n\t${StyledMatchOdds},\n\t${StyledMatchOddsName} {\n\t\tfont-family: ${(props) => props.theme.text.fonts.Bold};\n\t\tline-height: 1;\n\t}\n\n\t${StyledMatchOfferName} {\n\t\tcolor: ${(props) => props.theme.colors.textDisabled};\n\t\tdisplay: block;\n\t\tmargin: 0.35rem 0 0.15rem;\n\t\t${boxNoHeight};\n\t}\n\n\t${StyledMatchScoreWrapper} {\n\t\tcolor: ${(props) => props.theme.colors.active};\n\t\tdisplay: inline;\n\t\twidth: unset;\n\n\t\t${StyledScoreSimpleHorizontal} {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0;\n\n\t\t\t> span {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t}\n\t}\n`;\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { darken } from 'polished';\nimport { borderRadius } from '@legacyApp/client/modules/style/defaults';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport {\n\tBetSlipDetailsProgressState,\n\tBetSlipDetailsState,\n} from '../../../types/BetSlipDetails/BetSlipDetailsType';\n\nexport const StateLabel: FunctionComponent<{ state: BetSlipDetailsState }> = ({\n\tstate,\n}) => {\n\tif (!state || state === BetSlipDetailsProgressState.PENDING) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<StyledStateLabel $state={state}>\n\t\t\t{trans({ label: state })}\n\t\t</StyledStateLabel>\n\t);\n};\n\nexport const StyledStateLabel = styled.div<{ $state?: BetSlipDetailsState }>`\n\tbackground-color: ${(props) =>\n\t\t['win', BetSlipDetailsProgressState.CASHOUT].indexOf(props.$state) === -1\n\t\t\t? darken(0.3, props.theme.colors.textDisabled)\n\t\t\t: darken(0.05, props.theme.colors.positive)};\n\tcolor: ${(props) => props.theme.colors.text};\n\tdisplay: inline-block;\n\t${fontSize({ size: '10px', sizeDesktop: '12px', sizeBigScreen: '12px' })};\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\t${borderRadius};\n\tpadding: 0 5px;\n\ttext-transform: capitalize;\n`;\n","import { FunctionComponent, ReactElement } from 'react';\nimport { InputCurrencyContainer } from '@legacyApp/client/components/inputCurrency';\nimport { useValidateStake } from '@legacyApp/hooks/game/useValidateStake';\nimport { GameType } from '@modules/games/Game/constants/availableGames';\n\nconst StakeInput: FunctionComponent<{\n\tvalue: number | string;\n\tupdate: (string) => void;\n\tupdateError?: (error) => void;\n\tgame: GameType;\n\tlabel?: string | ReactElement;\n\tprecision?: number;\n}> = ({ value, update, updateError, game, label, precision }) => {\n\tconst { error } = useValidateStake({\n\t\tvalue,\n\t\tgame,\n\t\tpreventInitialCheck: true,\n\t\tupdateError,\n\t});\n\n\t// console.log('StakeInput', {\n\t// \tvalue, error,\n\t// });\n\n\treturn (\n\t\t<InputCurrencyContainer\n\t\t\tlabel={label}\n\t\t\tname=\"stake-input\"\n\t\t\tnoConverterInfo\n\t\t\ttranslateValue={value === undefined}\n\t\t\tisDisabled={value === undefined}\n\t\t\terror={!!error}\n\t\t\tprecision={precision}\n\t\t\tvalue={value === undefined ? 'Stake' : value}\n\t\t\tupdate={update}\n\t\t/>\n\t);\n};\n\nexport { StakeInput };\n","import PropTypes from 'prop-types';\nimport { Tooltip } from '@legacyApp/client/components/tooltip';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { BalanceAmount } from './balanceAmount';\n\nconst BalanceAmountWithConverterTooltip = ({\n\tformCurrency,\n\tactiveCurrency,\n\tvalue,\n\tconverted,\n\t...props\n}) => {\n\treturn (\n\t\t<Tooltip\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t<BalanceAmount\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tvalue={formCurrency === 'usd' ? value : converted}\n\t\t\t\t\t\tcurrency={formCurrency === 'usd' ? activeCurrency : 'usd'}\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t>\n\t\t\t<BalanceAmount\n\t\t\t\t{...props}\n\t\t\t\tcurrency={formCurrency}\n\t\t\t\tvalue={formCurrency === 'usd' ? converted : value}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n};\n\nBalanceAmountWithConverterTooltip.propTypes = {\n\tvalue: PropTypes.number,\n\tactiveCurrency: PropTypes.string,\n\tconverted: PropTypes.number,\n\tformCurrency: PropTypes.string,\n};\n\nexport default enhanceComponent({\n\tBalanceAmountWithConverterTooltip,\n\tprops: {\n\t\tcurrencyConverter: true,\n\t},\n});\n","import styled from 'styled-components';\nimport { FC, ReactNode } from 'react';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { CurrencyType } from '@legacyApp/types/wallet/CurrencyType';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { currencyLogoStyle } from '@legacyApp/client/modules/style/mixins/currencyLogoStyle';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { CSSClassNameCurrencyLogo } from '@legacyApp/client/components/currencySymbol/tokenSymbol';\nimport {\n\tBalanceCurrencyValueBigStyle,\n\tBalanceCurrencyValueSmallStyle,\n} from '@common/components/number/balanceAmount/balanceCurrencyValue.style';\nimport BalanceAmountWithConverterTooltip from '@common/components/number/balanceAmount/BalanceAmountWithConverterTooltip';\n\nconst SummaryValue: FC<{\n\ttitle: string;\n\tvalue: number | ReactNode;\n\tcurrency?: CurrencyType;\n\tsimpleValue?: boolean;\n\tvalueProps?: any;\n\tnamespace?: TransNamespace;\n}> = ({ title, value, currency, valueProps, simpleValue, namespace }) => {\n\treturn (\n\t\t<StyledSummaryValue>\n\t\t\t<span className=\"cut-text\">\n\t\t\t\t{trans({ label: title, namespace: namespace || TransNamespace.SPORTS })}\n\t\t\t</span>\n\t\t\t{simpleValue ? (\n\t\t\t\tvalue\n\t\t\t) : (\n\t\t\t\t<BalanceAmountWithConverterTooltip\n\t\t\t\t\t{...valueProps}\n\t\t\t\t\tcurrency={currency}\n\t\t\t\t\tvalue={parseFloat(value.toString())}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyledSummaryValue>\n\t);\n};\n\nexport const StyledSummaryValue = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tmargin: 0.4rem 0;\n\ttext-transform: capitalize;\n\twidth: 100%;\n\n\t> span:first-of-type {\n\t\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t}\n\n\t.${CSSClassNameCurrencyLogo} {\n\t\tmargin-right: 0 !important;\n\t\t${currencyLogoStyle({ size: '14px', important: true })};\n\n\t\t@media (max-width: ${(props) => props.theme.media.maxWidthTablet}) {\n\t\t\t${currencyLogoStyle({ size: '13px', important: true })};\n\t\t}\n\t}\n\n\t&,\n\t${BalanceCurrencyValueBigStyle} {\n\t\t${fontSize({\n\t\t\tsizeDiff: -2,\n\t\t\tsizeDesktopDiff: -4,\n\t\t\tsizeBigScreenDiff: -4,\n\t\t\timportant: true,\n\t\t})}\n\t}\n\n\t${BalanceCurrencyValueSmallStyle} {\n\t\t${fontSize({\n\t\t\tsizeDiff: -5,\n\t\t\tsizeDesktopDiff: -7,\n\t\t\tsizeBigScreenDiff: -7,\n\t\t\timportant: true,\n\t\t})}\n\t\t${fontSize({\n\t\t\tlabel: 'line-height',\n\t\t\tsizeDiff: -2,\n\t\t\tsizeDesktopDiff: -4,\n\t\t\tsizeBigScreenDiff: -4,\n\t\t\timportant: true,\n\t\t})}\n\t}\n`;\n\nexport default SummaryValue;\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport { simpleTrans } from '@legacyApp/client/modules/translation/translationService';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { parseName } from '../../../MatchOdds/MatchOddsName';\nimport { MatchContext } from '../../../../../context/MatchContext';\nimport { OfferType } from '../../../../../types/Match/OfferType';\n\nexport const OfferName: FunctionComponent<{\n\toffer: OfferType;\n}> = ({ offer }) => {\n\tconst { match } = useContext(MatchContext);\n\treturn (\n\t\t<StyledMatchOfferName>\n\t\t\t{parseName({\n\t\t\t\tname: simpleTrans(offer.label, undefined, TransNamespace.SPORTS),\n\t\t\t\tmatch,\n\t\t\t})}\n\t\t</StyledMatchOfferName>\n\t);\n};\n\nexport const StyledMatchOfferName = styled.span``;\n","import styled, { css } from 'styled-components';\nimport { FunctionComponent, useEffect, useState } from 'react';\nimport { faLock } from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '@legacyApp/client/components/button';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport {\n\tborderRadius,\n\tcutTextStyle,\n} from '@legacyApp/client/modules/style/defaults';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { MatchOdds, StyledMatchOdds } from '../MatchOdds/MatchOdds';\nimport { MatchOddsName, StyledMatchOddsName } from '../MatchOdds/MatchOddsName';\nimport { sportsBetSlipClearPlacedBets } from '../../../store/sportsBetSlip/sportsBetSlip.thunk';\nimport { MatchOutcomeType } from '../../../types/Match/OutcomeType';\nimport {\n\tMatchOddsChange,\n\tStyledMatchOddsChange,\n} from '../MatchOdds/MatchOddsChange';\nimport { useSportsBetSlipBetOutcome } from '../../../store/selectors/sportsBetSlip.selectors';\nimport { checkDisabledOutcome } from './OutcomesList/OutcomesList';\n\nconst ButtonOutcome: FunctionComponent<{\n\tdata: MatchOutcomeType;\n\ttoggle: (data: MatchOutcomeType) => void;\n\tmatchId: number;\n\tdisabled: boolean;\n}> = ({ data, toggle, matchId, disabled }) => {\n\tconst isSelected = !!useSportsBetSlipBetOutcome({\n\t\t// @ts-expect-error invalid types\n\t\tmatchId,\n\t\t// @ts-expect-error invalid types\n\t\toutcomeId: data?.id,\n\t});\n\tconst dispatch = useAppDispatch();\n\n\tconst [disabledButton, setDisabled] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetDisabled(\n\t\t\t!data?.decimal_odds || checkDisabledOutcome(data?.state) || disabled,\n\t\t);\n\t}, [data?.decimal_odds, data.state, data.id, disabled]);\n\n\tconst onClick = () => {\n\t\tif (disabledButton) {\n\t\t\treturn;\n\t\t}\n\t\ttoggle(data);\n\t\tif (!isSelected) {\n\t\t\tdispatch(sportsBetSlipClearPlacedBets());\n\t\t}\n\t};\n\n\treturn (\n\t\t<StyledOutcomeButton\n\t\t\tdisabled={disabledButton}\n\t\t\t$active={isSelected}\n\t\t\tonClick={onClick}\n\t\t\tname={data?.label}\n\t\t>\n\t\t\t{data && (\n\t\t\t\t<DeveloperData\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tfontSize: '8px',\n\t\t\t\t\t\ttop: '100%',\n\t\t\t\t\t\tfontFamily: 'FontRegular',\n\t\t\t\t\t\tcolor: 'grey',\n\t\t\t\t\t}}\n\t\t\t\t\tstring={`Outcome ID: ${data.id} / ${data.state}`}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{disabledButton ? (\n\t\t\t\t<StyledMatchOddsName>\n\t\t\t\t\t<AwesomeIcon icon={faLock} className=\"small-margin-right\" />{' '}\n\t\t\t\t\t{transSports({ label: 'Suspended' })}\n\t\t\t\t</StyledMatchOddsName>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<MatchOddsName data={data} fullName />\n\t\t\t\t\t<MatchOddsChange odds={data?.decimal_odds} />\n\t\t\t\t\t<MatchOdds odds={data?.decimal_odds} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t</StyledOutcomeButton>\n\t);\n};\n\nexport const OutcomeHeight = (callback) => css`\n\t${callback(45)};\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthDesktop}) {\n\t\t${callback(40)};\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthTablet}) {\n\t\t${callback(34)};\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\t${callback(30)};\n\t}\n`;\n\nexport const StyledOutcomeButton = styled(Button)`\n\t${OutcomeHeight((height) => `height: ${height}px;`)};\n\talign-items: center;\n\tbackground-color: ${(props) =>\n\t\tprops.$active ? '#0B59B9' : props.theme.colors.darkActive};\n\tdisplay: grid;\n\tflex-direction: row;\n\tjustify-content: center;\n\tmargin: 0;\n\tpadding: 0.25rem;\n\tposition: relative;\n\n\t&:disabled {\n\t\tbackground-color: #0c294c !important;\n\t}\n\n\tspan {\n\t\tdisplay: inline-block;\n\t\t${cutTextStyle};\n\t\ttext-overflow: clip;\n\t}\n\n\t${StyledMatchOdds} {\n\t\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t\t${fontSize({ size: '11px', sizeDesktop: '14px', sizeBigScreen: '16px' })}\n\t}\n\n\t${StyledMatchOddsName} {\n\t\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\t\tmax-width: 100%;\n\t\ttext-align: center;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\t${fontSize({ size: '9px', sizeDesktop: '11px', sizeBigScreen: '13px' })}\n\t}\n\n\t${StyledMatchOddsChange} {\n\t\theight: 100%;\n\t\tleft: -1px;\n\t\tmargin-top: 0 !important;\n\t\toverflow: hidden;\n\t\tposition: absolute;\n\t\ttop: -1px;\n\t\t${borderRadius};\n\t\twidth: 100%;\n\n\t\t&:after {\n\t\t\tborder-bottom: 12px solid;\n\t\t\tborder-left: 12px solid transparent !important;\n\t\t\tborder-right: 12px solid transparent !important;\n\t\t\tborder-top: unset;\n\t\t\theight: 0;\n\t\t\tleft: -8px;\n\t\t\tposition: absolute;\n\t\t\ttop: -2px;\n\t\t\ttransform: rotate(315deg);\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&[data-change='low'] {\n\t\t\ttop: 1px;\n\n\t\t\t&:after {\n\t\t\t\tbottom: -2px;\n\t\t\t\ttop: unset;\n\t\t\t\ttransform: rotate(225deg);\n\t\t\t}\n\t\t}\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\tpadding: 0.2rem;\n\n\t\tspan {\n\t\t\t&:not(:first-of-type) {\n\t\t\t\tfont-size: 10px !important;\n\t\t\t}\n\n\t\t\t&:first-of-type {\n\t\t\t\ttop: -12px;\n\t\t\t\tfont-size: 7px;\n\t\t\t}\n\t\t}\n\n\t\t${StyledMatchOddsChange} {\n\t\t\t&:after {\n\t\t\t\tborder-bottom-width: 8px;\n\t\t\t\tborder-left-width: 8px !important;\n\t\t\t\tborder-right-width: 8px !important;\n\t\t\t\tleft: -6px;\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport default enhanceComponent({\n\tButtonOutcome,\n});\n","export const getMatchLink = (id: number): string => {\n\treturn `/sports/event/${id}`;\n};\n","import styled, { css } from 'styled-components';\nimport {\n\tFunctionComponent,\n\tReactNode,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from 'react';\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { RectangleLoader } from '@common/components/contentLoaders/RectangleLoader';\nimport { LoaderListWrapper } from '@common/components/contentLoaders/LoaderListWrapper';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { LinkTo } from '@common/components/default/LinkTo/LinkTo';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { ButtonStyle } from '@legacyApp/client/components/button/button.style';\nimport {\n\tcutTextStyle,\n\tverticalMatchDetailsLayoutTitle,\n} from '@legacyApp/client/modules/style/defaults';\nimport { AwesomeIcon } from '@common/components/icons/AwesomeIcon';\nimport { SportContext } from '../../../../context/SportContext';\nimport { OutcomeStateType } from '../../../../types/Match/OutcomeType';\nimport {\n\tMatchOfferType,\n\tOfferStateType,\n} from '../../../../types/Match/OfferType';\nimport ButtonOutcome from '../ButtonOutcome';\nimport { sportsBetSlipToggleBet } from '../../../../store/sportsBetSlip/sportsBetSlip.thunk';\nimport { MatchContext } from '../../../../context/MatchContext';\nimport { getMatchLink } from '../../../../methods/getMatchLink';\n\nexport const checkDisabledOffer = (state: OfferStateType): boolean => {\n\treturn ['closed', 'missing'].indexOf(state) > -1;\n};\n\nexport const checkSuspendedOffer = (state: OfferStateType): boolean => {\n\treturn ['suspended'].indexOf(state) > -1;\n};\n\nexport const checkDisabledOutcome = (state: OutcomeStateType): boolean => {\n\treturn ['suspended'].indexOf(state) > -1;\n};\n\nconst OutcomesList: FunctionComponent<{\n\tmarket: MatchOfferType;\n\tpreloadLength?: number;\n\tpreloadElement?: ReactNode;\n\thideDisabled?: boolean;\n}> = ({ market, preloadLength = 3, preloadElement, hideDisabled }) => {\n\tconst dispatch = useAppDispatch();\n\tconst { match } = useContext(MatchContext);\n\tconst { id, slug } = useContext(SportContext);\n\tconst toggle = (data) => dispatch(sportsBetSlipToggleBet(data));\n\tconst [isOfferDisabled, setIsDisabledOffer] = useState(\n\t\tcheckDisabledOffer(market?.state),\n\t);\n\n\tuseEffect(() => {\n\t\tsetIsDisabledOffer(checkDisabledOffer(market?.state));\n\t}, [market?.state]);\n\n\treturn (\n\t\t<StyledOutcomesList\n\t\t\t$noOffer={isOfferDisabled}\n\t\t\t$childCount={market?.outcomes?.length || preloadLength}\n\t\t>\n\t\t\t<StyledOutcomesListLabel>\n\t\t\t\t{transSports({ label: market.label })}\n\t\t\t</StyledOutcomesListLabel>\n\t\t\t{market && (\n\t\t\t\t<DeveloperData\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tfontSize: '8px',\n\t\t\t\t\t\tbottom: '140%',\n\t\t\t\t\t\tfontFamily: 'FontRegular',\n\t\t\t\t\t\tcolor: 'grey',\n\t\t\t\t\t}}\n\t\t\t\t\tstring={`Offer ID: ${market.id} / ${market.state}`}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!isOfferDisabled ? (\n\t\t\t\t<LoaderListWrapper\n\t\t\t\t\tloaded={!!market?.state}\n\t\t\t\t\tlist={market?.outcomes || []}\n\t\t\t\t\tpreloadElement={\n\t\t\t\t\t\tpreloadElement ||\n\t\t\t\t\t\t((el, index) => (\n\t\t\t\t\t\t\t<RectangleLoader\n\t\t\t\t\t\t\t\tid={`${index}-${match.id}`}\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\theight={10}\n\t\t\t\t\t\t\t\twidth={30}\n\t\t\t\t\t\t\t\tborderRadius={1}\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\tpreloadLength={preloadLength}\n\t\t\t\t\tlistElementCallback={(el) => (\n\t\t\t\t\t\t<ButtonOutcome\n\t\t\t\t\t\t\tmatchId={match?.id}\n\t\t\t\t\t\t\tdisabled={checkSuspendedOffer(market?.state)}\n\t\t\t\t\t\t\tdata={el}\n\t\t\t\t\t\t\tkey={el?.id}\n\t\t\t\t\t\t\ttoggle={() =>\n\t\t\t\t\t\t\t\ttoggle({\n\t\t\t\t\t\t\t\t\tdata: { ...match, sport: match.sport || { id, slug } },\n\t\t\t\t\t\t\t\t\toutcome: { ...el, offer_label: market.label },\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) : hideDisabled ? null : match.total_offers ? (\n\t\t\t\t<LinkTo href={getMatchLink(match.id)}>\n\t\t\t\t\t<a>\n\t\t\t\t\t\t<StyledNoOfferButton localTheme={{ type: 'clear' }}>\n\t\t\t\t\t\t\t{transSports({ label: 'Check betting offer' })}\n\t\t\t\t\t\t\t<AwesomeIcon icon={faChevronRight} />\n\t\t\t\t\t\t</StyledNoOfferButton>\n\t\t\t\t\t</a>\n\t\t\t\t</LinkTo>\n\t\t\t) : (\n\t\t\t\t<DeveloperData string={'No offers for this match'} />\n\t\t\t)}\n\t\t</StyledOutcomesList>\n\t);\n};\n\nexport const StyledNoOfferButton = styled(ButtonStyle)<{\n\tlocalTheme: object;\n}>`\n\t${cutTextStyle};\n\tcolor: ${(props) => props.theme.colors.textDisabled};\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\tmargin-right: 1rem;\n\ttext-align: right;\n\twidth: 100%;\n\n\ti,\n\tsvg {\n\t\tfont-size: 14px;\n\t\tmargin-left: 0.5rem;\n\t}\n`;\n\nexport const StyledOutcomesListLabel = styled.div`\n\t${verticalMatchDetailsLayoutTitle};\n\tjustify-content: center;\n\twidth: 100%;\n`;\n\nexport const StyledOutcomesList = styled.div<{\n\t$childCount: number;\n\t$noOffer: boolean;\n}>`\n\tposition: relative;\n\t${(props) =>\n\t\tprops.$noOffer\n\t\t\t? ''\n\t\t\t: css`\n\t\t\t\t\tdisplay: grid;\n\t\t\t\t\tgrid-column-gap: 0.5rem;\n\t\t\t\t\tgrid-template-columns: ${props.$childCount\n\t\t\t\t\t\t? props.$childCount > 3\n\t\t\t\t\t\t\t? 'repeat(3, 1fr)'\n\t\t\t\t\t\t\t: `repeat(${props.$childCount}, 1fr)`\n\t\t\t\t\t\t: '100%'};\n\n\t\t\t\t\t${props.$childCount > 3\n\t\t\t\t\t\t? css`\n\t\t\t\t\t\t\t\tgrid-row-gap: 2rem;\n\t\t\t\t\t\t `\n\t\t\t\t\t\t: ''}\n\t\t\t `}\n\n\tsvg {\n\t\theight: unset;\n\t}\n`;\n\nexport default enhanceComponent({\n\tOutcomesList,\n});\n","import styled from 'styled-components';\nimport { FC, FunctionComponent, useContext } from 'react';\nimport { isLive } from '@legacyApp/client/modules/app/sportsService';\nimport { TransSports } from '@legacyApp/client/modules/translation/translate';\nimport { verticalMatchDetailsLayoutTitle } from '@legacyApp/client/modules/style/defaults';\nimport { MatchContext } from '../../../context/MatchContext';\nimport { BetSlipDetailsState } from '../../../types/BetSlipDetails/BetSlipDetailsType';\nimport { TimeInformation } from './TimeInformation';\n\nexport const MatchLiveBadge: FC<{\n\teventBetSlipState?: BetSlipDetailsState;\n}> = ({ eventBetSlipState }) => {\n\tconst { match } = useContext(MatchContext);\n\n\tconst isMatchLive = isLive(match, eventBetSlipState);\n\n\treturn isMatchLive ? (\n\t\t<StyledLive>\n\t\t\t<TransSports label={'live'} />\n\t\t</StyledLive>\n\t) : null;\n};\n\nconst MatchDate: FunctionComponent<{\n\tnoDate?: boolean;\n}> = ({ noDate }) => {\n\tconst { match } = useContext(MatchContext);\n\n\tconst isMatchLive = isLive(match);\n\n\tif (!isMatchLive && noDate) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledDate>\n\t\t\t<MatchLiveBadge />\n\t\t\t{!noDate && <TimeInformation />}\n\t\t</StyledDate>\n\t);\n};\n\nexport const StyledDate = styled.div`\n\t${verticalMatchDetailsLayoutTitle};\n\n\t> span {\n\t\tdisplay: block !important;\n\t}\n`;\n\nexport const StyledLive = styled.span`\n\tcolor: ${(props) => props.theme.colors.positive};\n\tdisplay: inline-block;\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\tmargin-right: 4px;\n\ttext-transform: uppercase;\n`;\n\nexport { MatchDate };\n","import { useContext, useEffect, useState } from 'react';\nimport { Loadable } from '@legacyApp/client/components/loader/loadable/loadable';\nimport { minute } from '@legacyApp/client/modules/app/time';\nimport {\n\tAMERICAN_FOOTBALL_ID,\n\tAUSSIE_RULES_ID,\n\tBADMINTON_ID,\n\tBANDY_ID,\n\tBASEBALL_ID,\n\tBASKETBALL_ID,\n\tBEACH_VOLLEYBALL_ID,\n\tBOXING_ID,\n\tCRICKET_ID,\n\tDARTS_ID,\n\tFIELD_HOCKEY_ID,\n\tFLOORBALL_ID,\n\tFOOTBALL_ID,\n\tFUTSAL_ID,\n\tHANDBALL_ID,\n\tICE_HOCKEY_ID,\n\tMMA_ID,\n\tNETBALL_ID,\n\tRUGBY_ID,\n\tSNOOKER_ID,\n\tTABLE_TENNIS_ID,\n\tTENNIS_ID,\n\tVOLLEYBALL_ID,\n\tWATERPOLO_ID,\n} from '../constants/sports';\nimport { MatchContext } from '../context/MatchContext';\nimport { SportContext } from '../context/SportContext';\n\nexport interface TimestampComponentProps {\n\troundLabel?: string;\n\troundMaxLength?: number;\n\troundLength?: number;\n\tmaxRounds?: number;\n}\n\nconst simpleComponent = Loadable(\n\t{ loader: () => import('../components/Match/MatchDate/types/SimpleCounter') },\n\tundefined,\n\tundefined,\n\ttrue,\n);\n\nconst TimestampComponents = [\n\t{\n\t\tsports: [\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tFOOTBALL_ID, // overtime with halves and penalties\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundMaxLength: 49 * minute,\n\t\t\t\t\troundLength: 45 * minute,\n\t\t\t\t\tmaxRounds: 2,\n\t\t\t\t\troundLabel: 'half',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tFIELD_HOCKEY_ID, // overtime with halves and penalties\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundMaxLength: 32 * minute,\n\t\t\t\t\troundLength: 35 * minute,\n\t\t\t\t\tmaxRounds: 2,\n\t\t\t\t\troundLabel: 'half',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tHANDBALL_ID, // overtime with halves and penalties\n\t\t\t\t\tRUGBY_ID, // overtime with halves (golden point only rugby league, golden point on second half rugby union) and penalties\n\t\t\t\t\tFUTSAL_ID, // overtime with halves and penalties\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'half',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tBASKETBALL_ID, // overtime 5 min periods until the winner - [1Q, 2Q, 3Q, 4Q, ...overtime]\n\t\t\t\t\tNETBALL_ID, // overtime 5 min periods until the winner - [1Q, 2Q, 3Q, 4Q, ...overtime]\n\t\t\t\t\tAMERICAN_FOOTBALL_ID, // [1Q, 2Q, 3Q, 4Q, overtime]\n\t\t\t\t\tAUSSIE_RULES_ID, // [1Q, 2Q, 3Q, 4Q, overtime]\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'quarter',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tICE_HOCKEY_ID, // 1 overtime (golden point) and penalties - [1st, 2nd, 3rd, overtime, penalty],\n\t\t\t\t\tWATERPOLO_ID, // [1st, 2nd, 3rd, 4th, overtime, penalty]\n\t\t\t\t\tFLOORBALL_ID, // [1st, 2nd, 3rd, 4th, overtime, penalty]\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'period',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tBASEBALL_ID, // 9 innings that could be extended until the winner - [1, 2, 3, 4, 5, 6, 7, 8, 9]\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'inning',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tTENNIS_ID, // sets with offer and tiebreaks\n\t\t\t\t\tVOLLEYBALL_ID, // 5 extended sets\n\t\t\t\t\tBADMINTON_ID, // 3 extended sets\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'set',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tTABLE_TENNIS_ID, // sets with offer and tiebreaks\n\t\t\t\t],\n\t\t\t\tprops: {\n\t\t\t\t\troundLabel: 'game',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tComponent: Loadable(\n\t\t\t{\n\t\t\t\tloader: () =>\n\t\t\t\t\timport('../components/Match/MatchDate/types/RoundsCounter'),\n\t\t\t},\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t),\n\t},\n\t{\n\t\tsports: [\n\t\t\t{\n\t\t\t\tid: [\n\t\t\t\t\tCRICKET_ID,\n\t\t\t\t\tSNOOKER_ID,\n\t\t\t\t\tBANDY_ID,\n\t\t\t\t\tBEACH_VOLLEYBALL_ID,\n\t\t\t\t\tDARTS_ID,\n\t\t\t\t\tBOXING_ID,\n\t\t\t\t\tMMA_ID,\n\t\t\t\t\t// ESPORTS_ID,\n\t\t\t\t],\n\t\t\t\tprops: {},\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst getData = ({ sportId }: { sportId: number }) => {\n\tconst data = TimestampComponents.find(\n\t\t(el) => !!el.sports.some((el) => el.id.indexOf(sportId) > -1),\n\t);\n\t// console.log('useTimestampComponent', {\n\t// \tdata,\n\t// \tsportId,\n\t// });\n\tif (!data) {\n\t\treturn null;\n\t}\n\treturn {\n\t\tComponent: data.Component || simpleComponent,\n\t\tprops: data.sports.find((el) => el.id.indexOf(sportId) > -1)?.props,\n\t};\n};\n\nexport const useTimestampComponent = () => {\n\tconst { match } = useContext(MatchContext);\n\tconst { id } = useContext(SportContext);\n\n\tconst [data, setData] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetData(getData({ sportId: id || match?.sport?.id }));\n\t}, [id, match?.sport?.id]);\n\n\treturn data;\n};\n","import { FC } from 'react';\nimport { useTimestampComponent } from '../../../hooks/useTimestampComponent';\n\nexport const LiveTimeInformation: FC = () => {\n\tconst data = useTimestampComponent();\n\tconst { Component, props } = data || {};\n\n\t// console.log('LiveTimeInformation', data);\n\n\tif (Component) {\n\t\treturn <Component {...props} />;\n\t}\n\n\treturn null;\n};\n","import { FC, useContext } from 'react';\nimport styled from 'styled-components';\nimport {\n\tformatToFullDateNoSeconds,\n\tgetTimestamp,\n} from '@legacyApp/client/modules/app/timeService';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { TimerCountDown } from '@common/components/timerCountDown';\nimport { useTimeDiff } from '@legacyApp/hooks/timer/useTimeDiff';\nimport { mathService } from '@legacyApp/client/modules/math/mathService';\nimport { hour, minute } from '@legacyApp/client/modules/app/time';\nimport { MatchContext } from '../../../context/MatchContext';\nimport { LiveTimeInformation } from './LiveTimeInformation';\n\nexport const TimeInformation: FC<{\n\tnoParse?: boolean;\n}> = ({ noParse }) => {\n\tconst { match } = useContext(MatchContext);\n\n\tconst [diff, setDiffValue] = useTimeDiff(match?.start_at, minute);\n\n\tif (!match?.start_at) {\n\t\treturn null;\n\t}\n\n\tconst eventTimestamp: number = getTimestamp(match?.start_at);\n\n\t// console.log('TimeInformation', {\n\t// \tdiff,\n\t// \tnoParse,\n\t// \teventTimestamp,x\n\t// \tcurr: getTimestamp(),\n\t// });\n\n\tif (!noParse && diff) {\n\t\tif (diff < 0) {\n\t\t\tif (mathService.abs(diff) < hour) {\n\t\t\t\treturn (\n\t\t\t\t\t<StyledTimeInformation>\n\t\t\t\t\t\t<span>{trans({ label: 'Starts in' })}</span>{' '}\n\t\t\t\t\t\t<TimerCountDown\n\t\t\t\t\t\t\tprecise\n\t\t\t\t\t\t\tcallback={setDiffValue}\n\t\t\t\t\t\t\tdate={eventTimestamp}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</StyledTimeInformation>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (diff > 0) {\n\t\t\treturn <LiveTimeInformation />;\n\t\t}\n\t}\n\n\treturn (\n\t\t<StyledTimeInformation>\n\t\t\t{formatToFullDateNoSeconds(eventTimestamp)}\n\t\t</StyledTimeInformation>\n\t);\n};\n\nexport const StyledTimeInformation = styled.span`\n\tspan {\n\t\tdisplay: inline !important;\n\t}\n`;\n","import { FC } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Icon } from '@common/components/icons';\nimport { transSports } from '@legacyApp/client/modules/translation/translate';\nimport { simpleTrans } from '@legacyApp/client/modules/translation/translationService';\nimport { capitalize } from '@legacyApp/client/modules/app/appService';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { createNameFromSlug } from '../../methods/createNameFromSlug';\n\nconst SPORTS_MAP = {\n\tmma: 'MMA',\n\tesports: 'eSports',\n\tsoccer: 'Football',\n};\n\nconst mapSportName = (name) => {\n\tif (!name?.toLowerCase) {\n\t\treturn name;\n\t}\n\treturn SPORTS_MAP[name.toLowerCase()] ?? capitalize(createNameFromSlug(name));\n};\n\nexport const SportName: FC<{\n\ticonId?: string; // slug\n\tseoLabel?: boolean;\n\tname: string;\n\tnoTranslationCheck?: boolean;\n}> = ({ iconId, seoLabel, name, noTranslationCheck }) => {\n\tconst sportNameMapped = mapSportName(name);\n\n\treturn (\n\t\t<>\n\t\t\t{iconId && (\n\t\t\t\t<>\n\t\t\t\t\t<Icon id={`sports/${iconId?.toLowerCase?.()}`} />{' '}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\t<StyledSportNameText $allowTransform={sportNameMapped === name}>\n\t\t\t\t{transSports({\n\t\t\t\t\tlabel: seoLabel ? 'Crypto {{sport_name}} Betting' : sportNameMapped,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tsport_name:\n\t\t\t\t\t\t\tsimpleTrans(sportNameMapped, undefined, TransNamespace.SPORTS) ||\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t},\n\t\t\t\t\tnoTranslationCheck,\n\t\t\t\t})}\n\t\t\t</StyledSportNameText>\n\t\t</>\n\t);\n};\n\nexport const StyledSportNameText = styled.span<{\n\t$allowTransform?: boolean;\n}>`\n\ttext-transform: none !important;\n\t${(props) =>\n\t\tprops.$allowTransform\n\t\t\t? ''\n\t\t\t: css`\n\t\t\t\t\ttext-transform: none !important;\n\t\t\t `}\n`;\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport { cutTextStyle } from '@legacyApp/client/modules/style/defaults';\nimport { RectangleLoader } from '@common/components/contentLoaders/RectangleLoader';\nimport { MatchContext } from '../../../context/MatchContext';\nimport { TeamType } from '../../../types/Match/TeamType';\nimport { SportName } from '../../SportName/SportName';\n\nexport const CompetitorName: FunctionComponent<{\n\tdata: TeamType;\n\tshort?: boolean;\n}> = ({ data, short }) => {\n\treturn (\n\t\t<StyledCompetitorName>\n\t\t\t{(short && data?.short_name ? data?.short_name : data?.name) || (\n\t\t\t\t<div>\n\t\t\t\t\t<RectangleLoader id={'team-name'} width={50} height={10} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</StyledCompetitorName>\n\t);\n};\n\nexport const MatchName: FunctionComponent<{ short?: boolean }> = ({\n\tshort,\n}) => {\n\tconst { match } = useContext(MatchContext);\n\tif (match?.home_team && match?.away_team) {\n\t\treturn (\n\t\t\t<StyledMatchName>\n\t\t\t\t<CompetitorName data={match?.home_team} short={short} />\n\t\t\t\t<StyledSeparator>-</StyledSeparator>\n\t\t\t\t<CompetitorName short={short} data={match?.away_team} />\n\t\t\t</StyledMatchName>\n\t\t);\n\t}\n\tif (match?.sport?.name) {\n\t\treturn (\n\t\t\t<StyledMatchName>\n\t\t\t\t<SportName name={match.sport.name} />\n\t\t\t\t<span className=\"padding-side-5\">/</span>\n\t\t\t\t<SportName name={match.category.name} />\n\t\t\t\t<span className=\"padding-side-5\">/</span>\n\t\t\t\t<SportName name={match.tournament.name} />\n\t\t\t</StyledMatchName>\n\t\t);\n\t}\n\n\treturn null;\n};\n\nexport const StyledCompetitorName = styled.span`\n\t&:first-of-type {\n\t\tdiv {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\n\tdiv {\n\t\tmax-width: 110px;\n\t\twidth: 100%;\n\t}\n`;\n\nconst StyledSeparator = styled.span`\n\tmargin: 0 0.25rem;\n`;\n\nexport const StyledMatchName = styled.div`\n\t${cutTextStyle};\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\n\tspan {\n\t\tdisplay: inline-block;\n\t\t${cutTextStyle};\n\t}\n`;\n","import styled from 'styled-components';\nimport React, { FunctionComponent } from 'react';\nimport { config } from '@legacyApp/client/config';\nimport { isFunction } from '@common/methods/isFunction';\n\nconst MatchOdds: FunctionComponent<{\n\todds: number;\n}> = ({ odds }) => {\n\treturn (\n\t\t<StyledMatchOdds>\n\t\t\t{isFunction(odds?.toFixed)\n\t\t\t\t? odds.toFixed(config.games.sports.oddsDecimal) || 'Invalid odds'\n\t\t\t\t: null}\n\t\t</StyledMatchOdds>\n\t);\n};\n\nexport const StyledMatchOdds = styled.span`\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t@media (max-width: ${(props) => props.theme.media.maxWidthSmallTablet}) {\n\t\tfont-size: 11px;\n\t}\n`;\n\nexport { MatchOdds };\n","import styled, { css, keyframes } from 'styled-components';\nimport React, { FunctionComponent } from 'react';\nimport { usePrevious } from '@legacyApp/hooks/render/usePrevious';\nimport { ChangedOddsType, useOddsChange } from '../../../hooks/useOddsChange';\n\nconst MatchOddsChange: FunctionComponent<{\n\todds: number;\n\tforceChangeType?: ChangedOddsType;\n\tchange?: ChangedOddsType;\n}> = ({ odds, forceChangeType, change }) => {\n\tconst prevOdds = usePrevious(odds);\n\tconst changeType = useOddsChange(prevOdds, odds);\n\tconst type =\n\t\t(change !== null && change !== undefined ? change : changeType) ||\n\t\tforceChangeType;\n\treturn (\n\t\t<>\n\t\t\t{!!type && (\n\t\t\t\t<StyledMatchOddsChange\n\t\t\t\t\tdata-change={type}\n\t\t\t\t\t$noAnimation={!!forceChangeType}\n\t\t\t\t\t$changed={type}\n\t\t\t\t\tclassName={`icon__arrow-down ${\n\t\t\t\t\t\ttype === 'high' ? 'opened' : ''\n\t\t\t\t\t} relative`}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport const StyledMatchOddsChange = styled.i<{\n\t$changed?: ChangedOddsType;\n\t$noAnimation?: boolean;\n}>`\n\t${(props) =>\n\t\tprops.$changed && !props.$noAnimation\n\t\t\t? css`\n\t\t\t\t\tanimation: ${Blink} 1s linear infinite;\n\t\t\t `\n\t\t\t: ''}\n\n\t&:after {\n\t\tborder-color: ${(props) =>\n\t\t\tprops.$changed === 'high'\n\t\t\t\t? props.theme.colors.positive\n\t\t\t\t: props.$changed === 'low'\n\t\t\t\t? props.theme.colors.negative\n\t\t\t\t: ''}!important;\n\t}\n`;\n\nconst Blink = keyframes`\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n\t100% {\n\t\topacity: 0;\n\t}\n`;\n\nexport { MatchOddsChange };\n","import { FunctionComponent, ReactElement, useContext } from 'react';\nimport styled from 'styled-components';\nimport { OmitInterface } from '@legacyApp/types/default/OmitInterface';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { simpleTrans } from '@legacyApp/client/modules/translation/translationService';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { isFunction } from '@common/methods/isFunction';\nimport { OddsNameContext } from '../../../context/OddsNameContext';\nimport { OutcomeType } from '../../../types/Match/OutcomeType';\nimport { MatchType } from '../../../types/Match/MatchType';\nimport { MatchContext } from '../../../context/MatchContext';\n\nexport type MatchOddsNameData = OmitInterface<OutcomeType, 'decimal_odds'>;\n\nexport interface MatchOddsNameParseProps {\n\tname: MatchOddsNameParseResponse;\n\tmatch?: MatchType;\n\tfullName?: boolean;\n\tparse?: MatchOddsNameParse;\n\tnoShort?: boolean;\n\tdata?: MatchOddsNameData;\n}\n\nexport type MatchOddsNameParseResponse = string | ReactElement;\n\nexport type MatchOddsNameParse = ({\n\tname,\n\tmatch,\n\tfullName,\n\tparse,\n\tnoShort,\n\tdata,\n}: MatchOddsNameParseProps) => MatchOddsNameParseResponse;\n\nexport const parseName: MatchOddsNameParse = ({\n\tname,\n\tmatch,\n\tfullName,\n\tparse,\n\tnoShort,\n\tdata,\n}) => {\n\tif (!name) {\n\t\treturn name;\n\t}\n\t// console.log('parseName', name, match, fullName);\n\tconst nameKey = noShort ? 'name' : 'short_name';\n\tif (fullName) {\n\t\tif (`${name}` === '1') {\n\t\t\tname = match?.home_team?.[nameKey];\n\t\t}\n\t\tif (`${name}` === '2') {\n\t\t\tname = match?.away_team?.[nameKey];\n\t\t}\n\t\tif (`${name}`.toLowerCase() === 'x') {\n\t\t\tname = simpleTrans('Draw', undefined, TransNamespace.SPORTS);\n\t\t}\n\t}\n\tif (`${name}`.indexOf('{homeTeam}') > -1 && match?.home_team?.[nameKey]) {\n\t\tif (typeof name === 'string') {\n\t\t\tname = name.split('{homeTeam}').join(match?.home_team?.[nameKey]);\n\t\t}\n\t}\n\tif (`${name}`.indexOf('{awayTeam}') > -1 && match?.away_team?.[nameKey]) {\n\t\tif (typeof name === 'string') {\n\t\t\tname = name.split('{awayTeam}').join(match?.away_team?.[nameKey]);\n\t\t}\n\t}\n\tif (parse) {\n\t\tname = parse({ name, match, fullName, data });\n\t}\n\t// console.log('MatchOddsName', {name});\n\n\treturn name;\n};\n\nexport const MatchOddsName: FunctionComponent<{\n\tdata?: MatchOddsNameData;\n\tfullName?: boolean;\n\tnoShort?: boolean;\n}> = ({ data, fullName, noShort }) => {\n\tconst { match } = useContext(MatchContext);\n\tconst { parse, parseData } = useContext(OddsNameContext);\n\tif (!data) {\n\t\treturn <DeveloperData title={'Invalid outcome data'} data={data} />;\n\t}\n\tconst newData = isFunction(parseData) ? parseData(data) : data;\n\treturn (\n\t\t<StyledMatchOddsName>\n\t\t\t{parseName({ name: data?.label, match, fullName, parse, noShort, data })}{' '}\n\t\t\t{newData?.decimal_line}\n\t\t</StyledMatchOddsName>\n\t);\n};\n\nexport const StyledMatchOddsName = styled.span`\n\ttext-transform: capitalize;\n`;\n","import { FunctionComponent } from 'react';\nimport { RectangleLoader } from '@common/components/contentLoaders/RectangleLoader';\nimport { ColumnLayout } from '@common/components/layout/ColumnLayout/ColumnLayout';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { ScoreContext } from '../../../context/ScoreContext';\nimport { RoundType, ScoreType } from '../../../types/Match/ScoreType';\nimport { ScoreParamsType } from '../../../types/Match/ScoreParamsType';\nimport sortService, {\n\tDIRECTION,\n} from '../../../../../LegacyApp/client/modules/app/sortService';\nimport { ScoreWrapper } from './ScoreWrapper';\nimport { StyledScoreSimpleHorizontal } from './types/ScoreSimple';\n\nexport const sortScoreRounds = (rounds: RoundType[]) => {\n\tif (!rounds?.length) {\n\t\treturn rounds;\n\t}\n\treturn rounds\n\t\t.sort((a, b) => sortService.sort(DIRECTION.ASC, a.round, b.round))\n\t\t.map((round) => {\n\t\t\tif (!round?.games?.length) {\n\t\t\t\treturn round;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...round,\n\t\t\t\tgames: round.games.sort((a, b) =>\n\t\t\t\t\tsortService.sort(DIRECTION.ASC, a.game, b.game),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n};\n\nconst MatchScoreHandler: FunctionComponent<{\n\tscore: ScoreType;\n\tparams?: ScoreParamsType;\n}> = ({ score, params }) => {\n\t// const score = {\n\t// \t'id': 115118,\n\t// \t'home_team_score': 0,\n\t// \t'away_team_score': 1,\n\t// \t'home_team_score_overtime': null,\n\t// \t'away_team_score_overtime': null,\n\t// \t'home_team_score_penalties': null,\n\t// \t'away_team_score_penalties': null,\n\t// \t'open_for_live': 1,\n\t// \t'has_scoring': true,\n\t// \t'rounds': [\n\t// \t\t{\n\t// \t\t\t'round': 1,\n\t// \t\t\t'home_team_score': 6,\n\t// \t\t\t'away_team_score': 7,\n\t// \t\t\t'created_at': 1631821535,\n\t// \t\t\t'games': [\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 1,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': 'A'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 2,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '15'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 3,\n\t// \t\t\t\t// \t'home_team_point': '15',\n\t// \t\t\t\t// \t'away_team_point': '40'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 4,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '15'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 5,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': 'A'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 6,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '15'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 7,\n\t// \t\t\t\t// \t'home_team_point': '15',\n\t// \t\t\t\t// \t'away_team_point': '40'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 8,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '15'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 9,\n\t// \t\t\t\t// \t'home_team_point': '30',\n\t// \t\t\t\t// \t'away_team_point': '40'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 10,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '0'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 11,\n\t// \t\t\t\t// \t'home_team_point': 'A',\n\t// \t\t\t\t// \t'away_team_point': '40'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 12,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': 'A'\n\t// \t\t\t\t// },\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 13,\n\t// \t\t\t\t// \t'home_team_point': '3',\n\t// \t\t\t\t// \t'away_team_point': '7'\n\t// \t\t\t\t// }\n\t// \t\t\t]\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\t'round': 2,\n\t// \t\t\t'home_team_score': 0,\n\t// \t\t\t'away_team_score': 0,\n\t// \t\t\t'created_at': 1631824974,\n\t// \t\t\t'games': [\n\t// \t\t\t\t// {\n\t// \t\t\t\t// \t'game': 1,\n\t// \t\t\t\t// \t'home_team_point': '40',\n\t// \t\t\t\t// \t'away_team_point': '15'\n\t// \t\t\t\t// }\n\t// \t\t\t]\n\t// \t\t}\n\t// \t]\n\t// };\n\n\treturn (\n\t\t<ScoreContext.Provider\n\t\t\tvalue={{\n\t\t\t\tscore: {\n\t\t\t\t\t...score,\n\t\t\t\t\trounds: sortScoreRounds(score?.rounds),\n\t\t\t\t},\n\t\t\t\tparams,\n\t\t\t}}\n\t\t>\n\t\t\t{isTrueOrZero(score?.home_team_score) &&\n\t\t\tisTrueOrZero(score?.away_team_score) ? (\n\t\t\t\t<ScoreWrapper />\n\t\t\t) : (\n\t\t\t\t<div>\n\t\t\t\t\t{params?.horizontal ? (\n\t\t\t\t\t\t<StyledScoreSimpleHorizontal>\n\t\t\t\t\t\t\t<RectangleLoader\n\t\t\t\t\t\t\t\tid={'horizontal-home'}\n\t\t\t\t\t\t\t\twidth={10}\n\t\t\t\t\t\t\t\theight={15}\n\t\t\t\t\t\t\t\tborderRadius={1}\n\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t-{' '}\n\t\t\t\t\t\t\t<RectangleLoader\n\t\t\t\t\t\t\t\tid={'horizontal-away'}\n\t\t\t\t\t\t\t\twidth={10}\n\t\t\t\t\t\t\t\theight={15}\n\t\t\t\t\t\t\t\tborderRadius={1}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</StyledScoreSimpleHorizontal>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<ColumnLayout\n\t\t\t\t\t\t\tcells={[\n\t\t\t\t\t\t\t\t<RectangleLoader\n\t\t\t\t\t\t\t\t\tid={'column-home'}\n\t\t\t\t\t\t\t\t\tkey={1}\n\t\t\t\t\t\t\t\t\twidth={10}\n\t\t\t\t\t\t\t\t\theight={15}\n\t\t\t\t\t\t\t\t\tborderRadius={1}\n\t\t\t\t\t\t\t\t/>,\n\t\t\t\t\t\t\t\t<RectangleLoader\n\t\t\t\t\t\t\t\t\tid={'column-away'}\n\t\t\t\t\t\t\t\t\tkey={2}\n\t\t\t\t\t\t\t\t\twidth={10}\n\t\t\t\t\t\t\t\t\theight={15}\n\t\t\t\t\t\t\t\t\tborderRadius={1}\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</div>\n\t\t\t)}\n\t\t</ScoreContext.Provider>\n\t);\n};\n\nexport { MatchScoreHandler };\n","import { useContext, useEffect, useState } from 'react';\nimport { Loadable } from '@legacyApp/client/components/loader/loadable/loadable';\nimport {\n\tAMERICAN_FOOTBALL_ID,\n\tAUSSIE_RULES_ID,\n\tBADMINTON_ID,\n\tBANDY_ID,\n\tBASEBALL_ID,\n\tBASKETBALL_ID,\n\tBEACH_VOLLEYBALL_ID,\n\tBOXING_ID,\n\tCRICKET_ID,\n\tDARTS_ID,\n\tESPORTS_ID,\n\tFIELD_HOCKEY_ID,\n\tFLOORBALL_ID,\n\tFOOTBALL_ID,\n\tFUTSAL_ID,\n\tHANDBALL_ID,\n\tICE_HOCKEY_ID,\n\tMMA_ID,\n\tNETBALL_ID,\n\tRUGBY_ID,\n\tSNOOKER_ID,\n\tTABLE_TENNIS_ID,\n\tTENNIS_ID,\n\tVOLLEYBALL_ID,\n\tWATERPOLO_ID,\n} from '../constants/sports';\nimport { ScoreContext } from '../context/ScoreContext';\nimport { ScoreRoundsProps } from '../components/Match/MatchScore/types/ScoreRounds';\nimport { ScoreParamsType } from '../types/Match/ScoreParamsType';\n\nconst simpleComponent = Loadable(\n\t{ loader: () => import('../components/Match/MatchScore/types/ScoreSimple') },\n\tundefined,\n\tundefined,\n\ttrue,\n);\n\nconst ScoreComponents = [\n\t{\n\t\tids: [MMA_ID, BOXING_ID],\n\t\tsimple: {\n\t\t\tComponent: () => null,\n\t\t},\n\t\textended: {\n\t\t\tComponent: () => null,\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tFOOTBALL_ID, // overtime with halves and penalties\n\t\t\tHANDBALL_ID, // overtime with halves and penalties\n\t\t\tRUGBY_ID, // overtime with halves (golden point only rugby league, golden point on second half rugby union) and penalties\n\t\t\tFUTSAL_ID, // overtime with halves and penalties\n\t\t\tFIELD_HOCKEY_ID,\n\t\t],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreHalf'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tBASKETBALL_ID, // overtime 5 min periods until the winner - [1Q, 2Q, 3Q, 4Q, ...overtime]\n\t\t\tAMERICAN_FOOTBALL_ID, // [1Q, 2Q, 3Q, 4Q, overtime]\n\t\t\tAUSSIE_RULES_ID, // [1Q, 2Q, 3Q, 4Q, overtime]\n\t\t\tNETBALL_ID,\n\t\t],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreRounds'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsCount: 4,\n\t\t\t\troundsLabels: ['1Q', '2Q', '3Q', '4Q'],\n\t\t\t\tisSummary: true,\n\t\t\t} as ScoreRoundsProps,\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tICE_HOCKEY_ID, // 1 overtime (golden point) and penalties - [1st, 2nd, 3rd, overtime, penalty],\n\t\t],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreRounds'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsCount: 3,\n\t\t\t\troundsLabels: ['1st', '2nd', '3rd'],\n\t\t\t\tisSummary: true,\n\t\t\t} as ScoreRoundsProps,\n\t\t},\n\t},\n\t{\n\t\tids: [ESPORTS_ID],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport(\n\t\t\t\t\t\t\t'../components/Match/MatchScore/types/ScoreRoundsConditional'\n\t\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsCount: 1,\n\t\t\t\troundsLabels: ['M1', 'M2', 'M3', 'M4', 'M5'],\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tWATERPOLO_ID, // [1st, 2nd, 3rd, 4th, overtime, penalty]\n\t\t\tFLOORBALL_ID, // [1st, 2nd, 3rd, 4th, overtime, penalty]\n\t\t],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreRounds'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsCount: 4,\n\t\t\t\troundsLabels: ['1st', '2nd', '3rd', '4th'],\n\t\t\t\tisSummary: true,\n\t\t\t} as ScoreRoundsProps,\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tBASEBALL_ID, // 9 innings that could be extended until the winner - [1, 2, 3, 4, 5, 6, 7, 8, 9]\n\t\t],\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreRounds'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsCount: 9,\n\t\t\t\troundsLabels: [\n\t\t\t\t\t'1st',\n\t\t\t\t\t'2nd',\n\t\t\t\t\t'3rd',\n\t\t\t\t\t'4th',\n\t\t\t\t\t'5th',\n\t\t\t\t\t'6th',\n\t\t\t\t\t'7th',\n\t\t\t\t\t'8th',\n\t\t\t\t\t'9th',\n\t\t\t\t\t'10th',\n\t\t\t\t\t'11th',\n\t\t\t\t\t'12th',\n\t\t\t\t\t'13th',\n\t\t\t\t],\n\t\t\t\tisSummary: true,\n\t\t\t} as ScoreRoundsProps,\n\t\t},\n\t},\n\t{\n\t\tids: [CRICKET_ID, SNOOKER_ID, BANDY_ID, BEACH_VOLLEYBALL_ID, DARTS_ID],\n\t},\n\t{\n\t\tids: [\n\t\t\tTENNIS_ID, // sets with offer and tiebreaks\n\t\t],\n\t\tsimple: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSimpleSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t},\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tTABLE_TENNIS_ID, // sets with offer and tiebreaks\n\t\t],\n\t\tsimple: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSimpleSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\tcolumns: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: '',\n\t\t\t\t\t\tid: 'games',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: '',\n\t\t\t\t\t\tid: 'sets',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\troundsLabels: ['G1', 'G2', 'G3', 'G4', 'G5'],\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tids: [\n\t\t\tVOLLEYBALL_ID, // 5 extended sets\n\t\t\tBADMINTON_ID, // 3 extended sets\n\t\t],\n\t\tsimple: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSimpleSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t\tprops: {\n\t\t\t\tcolumns: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: '',\n\t\t\t\t\t\tid: 'games',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: '',\n\t\t\t\t\t\tid: 'sets',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\textended: {\n\t\t\tComponent: Loadable(\n\t\t\t\t{\n\t\t\t\t\tloader: () =>\n\t\t\t\t\t\timport('../components/Match/MatchScore/types/ScoreSets'),\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t),\n\t\t},\n\t},\n] as const;\n\nconst getData = ({\n\tparams,\n\tsportId,\n}: {\n\tparams: ScoreParamsType;\n\tsportId: number;\n}) => {\n\tconst data = ScoreComponents.find((el) =>\n\t\tel.ids.some((el) => el === sportId),\n\t);\n\tconst type = `${params?.extended ? 'extended' : 'simple'}`;\n\t// console.log('useScoreComponent', {\n\t// \ttype,\n\t// \tdata,\n\t// \tsportId,\n\t// \tparams,\n\t// });\n\tif (!data || data[type] === null) {\n\t\treturn null;\n\t}\n\treturn data[type] || { Component: simpleComponent };\n};\n\nexport const useScoreComponent = ({ sportId }: { sportId: number }) => {\n\tconst { params } = useContext(ScoreContext);\n\n\tconst [data, setData] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetData(getData({ params, sportId }));\n\t}, [sportId, params]);\n\n\treturn {\n\t\tdata,\n\t};\n};\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport { DeveloperData } from '@common/components/default/DeveloperData/DeveloperData';\nimport { fontSize } from '@legacyApp/client/modules/style/mixins/fontSize';\nimport { useScoreComponent } from '../../../hooks/useScoreComponent';\nimport { SportContext } from '../../../context/SportContext';\nimport { MatchContext } from '../../../context/MatchContext';\n\nconst ScoreWrapper: FunctionComponent = () => {\n\tconst { id } = useContext(SportContext);\n\n\tconst { match } = useContext(MatchContext);\n\n\tconst { data } = useScoreComponent({ sportId: id || match?.sport?.id });\n\n\tconst { Component, props } = data || {};\n\n\t// console.log('ScoreWrapper', {Component, props, id, match});\n\n\treturn (\n\t\t<StyledMatchScoreWrapper>\n\t\t\t{Component ? (\n\t\t\t\t<Component {...(props || {})} />\n\t\t\t) : (\n\t\t\t\t<DeveloperData\n\t\t\t\t\tstyle={{ width: '80px' }}\n\t\t\t\t\tdata={{ props, id, match }}\n\t\t\t\t\ttitle={`Unhandled score type: ${id}`}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyledMatchScoreWrapper>\n\t);\n};\n\nexport const StyledMatchScoreWrapper = styled.div`\n\tfont-family: ${(props) => props.theme.text.fonts.Black};\n\t${fontSize({ size: '12px', sizeDesktop: '14px', sizeBigScreen: '16px' })};\n`;\n\nexport { ScoreWrapper };\n","import { FunctionComponent, useContext } from 'react';\nimport styled from 'styled-components';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { ColumnLayout } from '@common/components/layout/ColumnLayout/ColumnLayout';\nimport { ScoreContext } from '../../../../context/ScoreContext';\n\nconst ScoreSimple: FunctionComponent = () => {\n\tconst { score, params } = useContext(ScoreContext);\n\t// if (params?.horizontal) console.log('ScoreSimple', {\n\t// \tscore,\n\t// \tparams,\n\t// });\n\n\tif (params?.horizontal) {\n\t\treturn (\n\t\t\t<StyledScoreSimpleHorizontal>\n\t\t\t\t{score?.home_team_score} <span>-</span> {score?.away_team_score}\n\t\t\t</StyledScoreSimpleHorizontal>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ColumnLayout\n\t\t\tcells={[\n\t\t\t\t<span key={'home'}>{score?.home_team_score}</span>,\n\t\t\t\t<span key={'away'}>{score?.away_team_score}</span>,\n\t\t\t]}\n\t\t/>\n\t);\n};\n\nexport const StyledScoreSimpleHorizontal = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tjustify-content: center;\n\tpadding: 0 0.5rem;\n\twidth: auto;\n\n\t> span {\n\t\tcolor: ${(props) => props.theme.colors.active};\n\t\tpadding: 0 0.3rem;\n\t}\n\n\t> svg {\n\t\theight: 20px;\n\t}\n`;\n\nexport default enhanceComponent({ ScoreSimple });\n","export const NO_ODDS_ACCEPT = 0;\nexport const ONLY_HIGHER_ACCEPT = 1;\nexport const ALL_ACCEPT = 2;\n","export const FOOTBALL_ID = 1;\nexport const TENNIS_ID = 2;\nexport const BASKETBALL_ID = 3;\nexport const ICE_HOCKEY_ID = 4;\nexport const VOLLEYBALL_ID = 5;\nexport const TABLE_TENNIS_ID = 6;\nexport const HANDBALL_ID = 7;\nexport const BASEBALL_ID = 8;\nexport const BADMINTON_ID = 9;\nexport const RUGBY_ID = 10;\nexport const CRICKET_ID = 11;\nexport const AMERICAN_FOOTBALL_ID = 12;\nexport const FUTSAL_ID = 13;\nexport const WATERPOLO_ID = 14;\nexport const SNOOKER_ID = 15;\nexport const FLOORBALL_ID = 16;\nexport const BANDY_ID = 17;\nexport const BEACH_VOLLEYBALL_ID = 18;\nexport const DARTS_ID = 19;\nexport const AUSSIE_RULES_ID = 20;\nexport const BOXING_ID = 21;\nexport const MMA_ID = 22;\nexport const NETBALL_ID = 23;\nexport const FIELD_HOCKEY_ID = 24;\nexport const ESPORTS_ID = 25;\n\nexport const SPORTS = {\n\tfootball: FOOTBALL_ID,\n\ttennis: TENNIS_ID,\n\tbasketball: BASKETBALL_ID,\n\t'ice-hockey': ICE_HOCKEY_ID,\n\tvolleyball: VOLLEYBALL_ID,\n\t'table-tennis': TABLE_TENNIS_ID,\n\thandball: HANDBALL_ID,\n\tbaseball: BASEBALL_ID,\n\tbadminton: BADMINTON_ID,\n\trugby: RUGBY_ID,\n\tcricket: CRICKET_ID,\n\t'american-football': AMERICAN_FOOTBALL_ID,\n\tfutsal: FUTSAL_ID,\n\twaterpolo: WATERPOLO_ID,\n\tsnooker: SNOOKER_ID,\n\tfloorball: FLOORBALL_ID,\n\tbandy: BANDY_ID,\n\t'beach-volley': BEACH_VOLLEYBALL_ID,\n\tdarts: DARTS_ID,\n\t'aussie-rules': AUSSIE_RULES_ID,\n\tboxing: BOXING_ID,\n\tmma: MMA_ID,\n\tnetball: NETBALL_ID,\n\t'field-hockey': FIELD_HOCKEY_ID,\n\tesports: ESPORTS_ID,\n};\n","import { NEXT_CONFIG } from '@common/constants/config/nextConfig';\nimport { minute, second } from '@legacyApp/client/modules/app/time';\n\nconst DISABLE_INTERVALS = NEXT_CONFIG.DEV;\nconst checkInterval = (interval) => (DISABLE_INTERVALS ? null : interval);\n\nexport const LIVE_INTERVAL = checkInterval(3 * second);\n// export const UPCOMING_INTERVAL = checkInterval(5 * second);\n\nexport const ALL_TOURNAMENTS_LIST_INTERVAL = checkInterval(5 * minute);\nexport const FEATURED_TOURNAMENTS_LIST_INTERVAL = checkInterval(5 * minute);\n\n// score and odds data\nexport const EVENTS_DATA_INTERVAL = LIVE_INTERVAL;\n\n// betslip history\nexport const BETSLIP_HISTORY_INTERVAL = checkInterval(30 * second);\n\n// MAIN PAGE\n// sports list\nexport const SPORTS_LIST_MENU_INTERVAL = checkInterval(5 * minute);\n// top cards\nexport const MAIN_PAGE_LIVE_EVENTS_CARDS_INTERVAL = checkInterval(minute);\nexport const MAIN_PAGE_PREMATCH_EVENTS_CARDS_INTERVAL = checkInterval(minute);\n// live highlights\nexport const MAIN_PAGE_LIVE_SPORTS_LIVE_HIGHLIGHTS_INTERVAL =\n\tcheckInterval(minute);\nexport const MAIN_PAGE_LIVE_EVETNS_LIVE_HIGHLIGHTS_INTERVAL =\n\tcheckInterval(minute);\n// trending\nexport const MAIN_PAGE_PREMATCH_SPORTS_TRENDING_INTERVAL = checkInterval(\n\t3 * minute,\n);\nexport const MAIN_PAGE_PREMATCH_EVETNS_TRENDING_INTERVAL =\n\tcheckInterval(minute);\n\n// LIVE PAGE\n// events list\nexport const LIVE_PAGE_EVENTS_TABLE_INTERVAL = checkInterval(5 * second);\nexport const LIVE_PAGE_SPORTS_TABLE_INTERVAL = checkInterval(10 * second);\n\n// SPORT PAGE\n// events list\nexport const SPORT_PAGE_LIVE_EVENTS_TABLE_INTERVAL = checkInterval(minute);\nexport const SPORT_PAGE_PREMATCH_EVETNS_TABLE_INTERVAL = checkInterval(minute);\n\n// TOURNAMENT PAGE\n// events list\nexport const TOURNAMENT_PAGE_LIVE_EVENTS_TABLE_INTERVAL = checkInterval(minute);\nexport const TOURNAMENT_PAGE_PREMATCH_EVETNS_TABLE_INTERVAL =\n\tcheckInterval(minute);\n\n// TEAM PAGE\n// events list\nexport const TEAM_PAGE_LIVE_EVENTS_TABLE_INTERVAL = checkInterval(minute);\nexport const TEAM_PAGE_PREMATCH_EVETNS_TABLE_INTERVAL = checkInterval(minute);\n\n// EVENT PAGE\nexport const EVENT_PAGE_LIVE_OFFERS_INTERVAL = checkInterval(5 * second);\nexport const EVENT_PAGE_UPCOMING_OFFERS_INTERVAL = checkInterval(15 * second);\n","import { createContext } from 'react';\nimport { UseBetSlipHistoryGetListType } from '../hooks/useBetSlipHistory';\n\nexport interface BetSlipHistoryContextType {\n\tgetList?: UseBetSlipHistoryGetListType;\n}\n\nexport const BetSlipHistoryContext = createContext<BetSlipHistoryContextType>({\n\tgetList: null,\n});\n","import { createContext } from 'react';\nimport { MatchType } from '../types/Match/MatchType';\n\nexport const MatchContext = createContext<{\n\tmatch: MatchType;\n\tvisible?: boolean;\n}>({\n\tmatch: null,\n\tvisible: true,\n});\n","import { createContext } from 'react';\nimport {\n\tMatchOddsNameData,\n\tMatchOddsNameParse,\n} from '../components/Match/MatchOdds/MatchOddsName';\n\nexport type OddsNameContextParseData = (\n\tdata: MatchOddsNameData,\n) => MatchOddsNameData;\n\nexport interface OddsNameContextType {\n\tparse?: MatchOddsNameParse;\n\tparseData?: OddsNameContextParseData;\n}\n\nexport const OddsNameContext = createContext<OddsNameContextType>({\n\tparse: null,\n\tparseData: null,\n});\n","import { createContext } from 'react';\nimport { ScoreType } from '../types/Match/ScoreType';\nimport { ScoreParamsType } from '../types/Match/ScoreParamsType';\n\nexport const ScoreContext = createContext<{\n\tscore: ScoreType;\n\tparams?: ScoreParamsType;\n}>({\n\tscore: null,\n\tparams: null,\n});\n","import { createContext } from 'react';\nimport { SportContextType } from '../types/Sport/SportContextType';\n\nexport const SportContext = createContext<SportContextType>({\n\tid: null,\n\tslug: null,\n\tname: null,\n});\n","import { createContext } from 'react';\nimport { SportbookListContextType } from '../types/SportbookListContextType';\n\nexport const SportsbookListContext = createContext<SportbookListContextType>({\n\tid: null,\n});\n","import { useEffect, useState } from 'react';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { getBetSlipEventsTotalOdds } from '../methods/getBetSlipEventsTotalOdds';\nimport { BetSlipDetailsType } from '../types/BetSlipDetails/BetSlipDetailsType';\n\nexport const useBetSlipTotalOddsAndProfit = (data: BetSlipDetailsType) => {\n\tconst { betslip_events, amount, profit, total_odds } = data;\n\n\tconst [totalOdds, setTotalOdds] = useState(total_odds || 0);\n\tconst [estimatedProfit, setEstimatedProfit] = useState(Number(profit) || 0);\n\n\tuseEffect(() => {\n\t\tconst odds = total_odds\n\t\t\t? total_odds\n\t\t\t: getBetSlipEventsTotalOdds(betslip_events);\n\t\tsetTotalOdds(odds);\n\t\tif (profit === null) {\n\t\t\tsetEstimatedProfit(roundNumber((odds - 1) * parseFloat(amount)));\n\t\t}\n\t}, [betslip_events, amount, profit, totalOdds, total_odds]);\n\n\t// console.log('useBetSlipTotalOddsAndProfit', { data, totalOdds, estimatedProfit });\n\n\treturn {\n\t\ttotalOdds,\n\t\tprofit: estimatedProfit,\n\t};\n};\n","import { BetSlipDetailsEventType } from '../types/BetSlipDetails/BetSlipDetailsEventType';\n\nexport const getBetSlipEventsTotalOdds = (\n\tbetslip_events: BetSlipDetailsEventType[],\n) => {\n\treturn betslip_events?.length\n\t\t? betslip_events.reduce((a: number, b) => a * b.decimal_odds, 1)\n\t\t: 1;\n};\n","import { useAppSelector } from '@legacyApp/hooks/store/useAppSelector';\nimport { BetSlipBet, BetSlipErrorType } from '../types/BetSlip/BetSlipBet';\nimport { useSportsBetSlipType } from '../store/selectors/sportsBetSlip.selectors';\n\nexport const checkBetSlipError = (\n\terror: BetSlipErrorType,\n\tnotBoolean?: boolean,\n) => {\n\treturn error\n\t\t? !!Object.keys(error).filter(\n\t\t\t\t(key) =>\n\t\t\t\t\t!!error[key] && (notBoolean ? typeof error[key] !== 'boolean' : true),\n\t\t ).length\n\t\t: false;\n};\n\nexport const useCheckOnlyBetError = ({ bet }: { bet?: BetSlipBet }) => {\n\tconst type = useSportsBetSlipType();\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { stake, profit, ...betError } = bet?.error || {};\n\n\treturn checkBetSlipError(type.id === 'multi' ? betError : bet?.error, true);\n};\n\nexport const useCheckBetError = ({ bet }: { bet?: BetSlipBet }) => {\n\tconst { type, error } = useAppSelector((state) => state.sportsBetSlip);\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { stake, ...betError } = bet?.error || {};\n\n\treturn checkBetSlipError(\n\t\ttype.id === 'multi' ? error?.message || betError : bet?.error,\n\t\ttrue,\n\t);\n};\n","import queryString from 'querystring';\nimport { fetchApi } from '@legacyApp/client/store/fetch/fetch.thunk';\nimport { getSportsApiUrl } from '@legacyApp/client/modules/app/sportsService';\nimport { AppThunk } from '@legacyApp/types/store/ThunkAction';\nimport { loop } from '@legacyApp/client/modules/app/appService';\nimport { EVENTS_DATA_INTERVAL } from '../../constants/updateIntervals';\nimport {\n\tEventsDataElementId,\n\tEventsDataType,\n\tEventsDataTypes,\n\tEventsEventIdType,\n\tsportsEventsDataAddId,\n\tsportsEventsDataLoading,\n\tsportsEventsDataUpdateData,\n} from './sportsEventsData.actions';\n\nlet timeout = null;\nlet initTimeout = null;\n\nexport const sportsEventsDataAdd = (\n\tdataType: EventsDataType,\n\teventId: EventsEventIdType,\n\telementId: EventsDataElementId,\n): AppThunk => {\n\treturn (dispatch) => {\n\t\tdispatch(sportsInitEventsDataUpdate());\n\t\tdispatch(sportsEventsDataAddId({ dataType, eventId, elementId }));\n\t};\n};\n\nexport const sportsInitEventsDataUpdate = (repeat?: boolean): AppThunk => {\n\treturn (dispatch) => {\n\t\tif (initTimeout) {\n\t\t\tclearTimeout(initTimeout);\n\t\t}\n\t\tinitTimeout = setTimeout(() => {\n\t\t\t// console.log('sportsInitEventsDataUpdate', {repeat});\n\t\t\tif (!repeat) {\n\t\t\t\tdispatch(updateEventsData());\n\t\t\t}\n\t\t\tif (timeout) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\t\t\tif (EVENTS_DATA_INTERVAL) {\n\t\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t\tdispatch(updateEventsData());\n\t\t\t\t}, EVENTS_DATA_INTERVAL);\n\t\t\t}\n\t\t}, 50);\n\t};\n};\n\nconst _getIds = (state, dataType) => {\n\tconst ids = state.sportsEventsData?.ids[dataType];\n\tconst idsData = {};\n\tObject.keys(ids || {}).forEach((key) => {\n\t\tconst [id, type] = key.split('__');\n\t\tidsData[type || 'events'] ??= [];\n\t\tidsData[type || 'events'].push(id);\n\t});\n\treturn idsData;\n};\n\nconst _getDataTypes = (state) => {\n\tconst dataTypes = Object.keys(\n\t\tstate.sportsEventsData?.ids || {},\n\t) as EventsDataType[];\n\t// console.log('updateEventsData', {dataTypes});\n\tif (!dataTypes.length) {\n\t\treturn false;\n\t}\n\tconst isData = dataTypes.some((dataType) => {\n\t\tconst idsData = _getIds(state, dataType);\n\t\treturn Object.keys(idsData).some((type) => idsData[type].length);\n\t});\n\treturn isData ? dataTypes : false;\n};\n\nconst _parseDataTypeToApiUrlType = (dataType: EventsDataType) => {\n\tif (dataType === 'score') {\n\t\treturn 'results';\n\t}\n\treturn dataType;\n};\n\nexport const updateEventsData = (): AppThunk => {\n\treturn (dispatch, getState) => {\n\t\tconst state = getState();\n\t\t// if (state.sportsEventsData?.loading) return;\n\t\tdispatch(sportsEventsDataLoading(true));\n\t\tconst dataTypes = _getDataTypes(state);\n\t\tif (!dataTypes) {\n\t\t\treturn dispatch(sportsEventsDataLoading(false));\n\t\t}\n\t\tloop(dataTypes, (dataType: keyof EventsDataTypes) => {\n\t\t\tconst idsData = _getIds(state, dataType);\n\t\t\treturn loop(Object.keys(idsData), (type: string) => {\n\t\t\t\t// console.log('updateEventsData', dataType, type, idsData[type]);\n\t\t\t\tif (!idsData[type].length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst data = {};\n\t\t\t\tidsData[type].forEach(\n\t\t\t\t\t(id) =>\n\t\t\t\t\t\t(data[`${id}__${type}`] = { id, state: 'missing', outcomes: [] }),\n\t\t\t\t);\n\t\t\t\treturn dispatch(\n\t\t\t\t\tfetchApi({\n\t\t\t\t\t\turl: getSportsApiUrl(\n\t\t\t\t\t\t\t`/${_parseDataTypeToApiUrlType(\n\t\t\t\t\t\t\t\tdataType,\n\t\t\t\t\t\t\t)}/${type}?${queryString.stringify({ 'id[]': idsData[type] })}`,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tloaderId: `getEventsData_${dataType}_${type}`,\n\t\t\t\t\t\t// fromState: EVENTS_DATA_INTERVAL / 2,\n\t\t\t\t\t}),\n\t\t\t\t).then((response) => {\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (response?.data?.length) {\n\t\t\t\t\t\tresponse.data.forEach((el) => {\n\t\t\t\t\t\t\tdata[`${el.id}__${type}`] = el;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tdispatch(\n\t\t\t\t\t\tsportsEventsDataUpdateData({\n\t\t\t\t\t\t\tdataType,\n\t\t\t\t\t\t\tdata,\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}).then(() => {\n\t\t\tdispatch(sportsEventsDataLoading(false));\n\t\t\tdispatch(sportsInitEventsDataUpdate(true));\n\t\t});\n\t};\n};\n","import { useContext, useEffect, useState } from 'react';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { useAppSelector } from '@legacyApp/hooks/store/useAppSelector';\nimport { usePrevious } from '@legacyApp/hooks/render/usePrevious';\nimport { useOnMount } from '@common/hooks/useOnMount';\nimport { sportsEventsDataAdd } from '../store/sportsEventsData/sportsEventsData.thunk';\nimport {\n\tEventsDataElementId,\n\tEventsDataTypes,\n\tsportsEventsDataElementRemoved,\n\tsportsEventsDataRemoveId,\n} from '../store/sportsEventsData/sportsEventsData.actions';\nimport { MatchOfferType } from '../types/Match/OfferType';\nimport { ScoreType } from '../types/Match/ScoreType';\nimport { SportsbookListContext } from '../context/SportsbookListContext';\n\nexport type EventsDataIdTypesType = 'events' | 'offers';\n\nexport type DataType = MatchOfferType | ScoreType;\n\nexport function useEventData<T extends keyof EventsDataTypes>(\n\tid: number,\n\telementId: EventsDataElementId,\n\tdataType: T,\n\ttype?: EventsDataIdTypesType,\n\tinitial?: EventsDataTypes[T],\n): {\n\tdata: EventsDataTypes[T];\n\tsetActive: (val: boolean) => void;\n} {\n\tconst key = `${id}__${type || 'events'}`;\n\n\tconst listData = useContext(SportsbookListContext);\n\n\tconst dataId = listData?.id || elementId;\n\n\tconst [active, setActive] = useState(false);\n\tconst dispatch = useAppDispatch();\n\n\tconst prevKey = usePrevious(key);\n\tconst prevDataId = usePrevious(dataId);\n\tconst prevDataType = usePrevious(dataType);\n\n\tconst ids = useAppSelector(\n\t\t(state) => state.sportsEventsData?.ids?.[dataType],\n\t);\n\tconst data = useAppSelector(\n\t\t(state) => state.sportsEventsData?.data?.[dataType]?.[key],\n\t) as EventsDataTypes[T];\n\n\tconst isSportsActive = useAppSelector((state) => !!state.sportsEventsData);\n\n\tuseEffect(() => {\n\t\t// console.log('useEventData - active toggled', active, {\n\t\t// \tactive,\n\t\t// \tdata,\n\t\t// initial,\n\t\t// \tids,\n\t\t// \tid,\n\t\t// \tkey,\n\t\t// \telementId,\n\t\t// \tlistData,\n\t\t// \tdataType,\n\t\t// \ttype,\n\t\t// });\n\n\t\tif (!isSportsActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (active) {\n\t\t\tdispatch(sportsEventsDataAdd(dataType, key, dataId));\n\t\t}\n\t\tif (!active && ids?.[key]?.length) {\n\t\t\tdispatch(\n\t\t\t\tsportsEventsDataRemoveId({ dataType, eventId: key, elementId: dataId }),\n\t\t\t);\n\t\t}\n\t\tif (prevDataId !== dataId || prevKey !== key || prevDataType !== dataType) {\n\t\t\tdispatch(\n\t\t\t\tsportsEventsDataRemoveId({\n\t\t\t\t\tdataType: prevDataType,\n\t\t\t\t\teventId: prevKey,\n\t\t\t\t\telementId: prevDataId,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}, [\n\t\tisSportsActive,\n\t\tactive,\n\t\tkey,\n\t\tdataType,\n\t\tdispatch,\n\t\telementId,\n\t\tids,\n\t\tlistData.id,\n\t\tprevDataId,\n\t\tdataId,\n\t\tprevKey,\n\t\tprevDataType,\n\t]);\n\n\tuseOnMount(() => {\n\t\treturn () => {\n\t\t\t// console.log('useEventData - unmount', active, {\n\t\t\t// \tactive,\n\t\t\t// \tdata,\n\t\t\t// \tinitial,\n\t\t\t// \tlistData,\n\t\t\t// \tids,\n\t\t\t// \tid,\n\t\t\t// \tkey,\n\t\t\t// \telementId,\n\t\t\t// \tdataType,\n\t\t\t// \ttype,\n\t\t\t// });\n\t\t\tdispatch(\n\t\t\t\tsportsEventsDataElementRemoved({\n\t\t\t\t\tdataType,\n\t\t\t\t\teventId: key,\n\t\t\t\t\telementId: dataId,\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\t});\n\n\treturn {\n\t\tdata: {\n\t\t\toutcomes: undefined,\n\t\t\tstate: undefined,\n\t\t\t...(initial || {}),\n\t\t\t...data,\n\t\t},\n\t\tsetActive,\n\t};\n}\n","import { useEffect, useState } from 'react';\nimport { useTimeout } from 'rooks';\n\nexport type ChangedOddsType = 'low' | 'high' | false;\n\nexport const useOddsChange = (\n\tcurrent: number,\n\tnext: number,\n): ChangedOddsType => {\n\tconst [changeState, setChange] = useState<ChangedOddsType>(false);\n\n\tconst timeout = useTimeout(() => setChange(false), 5000);\n\n\tuseEffect(() => {\n\t\tlet type: ChangedOddsType = false;\n\t\tif (next < current) {\n\t\t\ttype = 'low';\n\t\t}\n\t\tif (next > current) {\n\t\t\ttype = 'high';\n\t\t}\n\t\tsetChange(type);\n\n\t\tif (timeout?.isActive) {\n\t\t\ttimeout.clear();\n\t\t}\n\t\ttimeout.start();\n\n\t\treturn () => {\n\t\t\tif (timeout?.isActive) {\n\t\t\t\ttimeout.clear();\n\t\t\t}\n\t\t};\n\t}, [next, current, timeout]);\n\n\treturn changeState;\n};\n","import { capitalize } from '@legacyApp/client/modules/app/appService';\nimport { isFunction } from '@common/methods/isFunction';\n\nexport const createNameFromSlug = (name: string): string => {\n\t// console.log('createNameFromSlug', {name});\n\tif (!name) {\n\t\treturn null;\n\t}\n\treturn isFunction(name.split) ? capitalize(name.split('-').join(' ')) : name;\n};\n","import Redux from 'redux';\nimport { actionSimple } from '@legacyApp/client/modules/app/actionService';\nimport { ScoreType } from '../../types/Match/ScoreType';\nimport { MatchOfferType } from '../../types/Match/OfferType';\nimport {\n\tSPORTS_EVENTS_DATA_ADD_ID,\n\tSPORTS_EVENTS_DATA_ELEMENT_REMOVED,\n\tSPORTS_EVENTS_DATA_LOADING,\n\tSPORTS_EVENTS_DATA_REMOVE_DATA,\n\tSPORTS_EVENTS_DATA_REMOVE_ID,\n\tSPORTS_EVENTS_DATA_UPDATE_DATA,\n} from './sportsEventsData.constants';\n\nexport interface EventsDataTypes {\n\tscore: ScoreType;\n\todds: MatchOfferType;\n}\n\nexport type EventsDataType = keyof EventsDataTypes;\n\nexport type EventsEventIdType = string | number;\nexport type EventsDataElementId = string;\n\nexport const sportsEventsDataAddId = ({\n\tdataType,\n\teventId,\n\telementId,\n}: {\n\tdataType: EventsDataType;\n\teventId: EventsEventIdType;\n\telementId: EventsDataElementId;\n}): Redux.AnyAction => {\n\treturn {\n\t\ttype: SPORTS_EVENTS_DATA_ADD_ID,\n\t\tdataType,\n\t\teventId,\n\t\telementId,\n\t};\n};\n\nexport const sportsEventsDataRemoveId = ({\n\tdataType,\n\teventId,\n\telementId,\n}: {\n\tdataType: EventsDataType;\n\teventId: EventsEventIdType;\n\telementId: EventsDataElementId;\n}): Redux.AnyAction => {\n\treturn {\n\t\ttype: SPORTS_EVENTS_DATA_REMOVE_ID,\n\t\tdataType,\n\t\teventId,\n\t\telementId,\n\t};\n};\n\nexport const sportsEventsDataElementRemoved = ({\n\tdataType,\n\teventId,\n\telementId,\n}: {\n\tdataType: EventsDataType;\n\teventId: EventsEventIdType;\n\telementId: EventsDataElementId;\n}): Redux.AnyAction => {\n\treturn {\n\t\ttype: SPORTS_EVENTS_DATA_ELEMENT_REMOVED,\n\t\tdataType,\n\t\teventId,\n\t\telementId,\n\t};\n};\n\nexport const sportsEventsDataRemoveData = ({\n\tdataType,\n\teventId,\n}: {\n\tdataType: EventsDataType;\n\teventId: EventsEventIdType;\n}): Redux.AnyAction => {\n\treturn {\n\t\ttype: SPORTS_EVENTS_DATA_REMOVE_DATA,\n\t\tdataType,\n\t\teventId,\n\t};\n};\n\nexport const sportsEventsDataUpdateData = ({\n\tdataType,\n\tdata,\n}: {\n\tdataType: EventsDataType;\n\tdata: object;\n}): Redux.AnyAction => {\n\treturn {\n\t\ttype: SPORTS_EVENTS_DATA_UPDATE_DATA,\n\t\tdataType,\n\t\tdata,\n\t};\n};\n\nexport const sportsEventsDataLoading = actionSimple(SPORTS_EVENTS_DATA_LOADING);\n","export const SPORTS_EVENTS_DATA_ADD_ID = 'SPORTS_EVENTS_DATA_ADD_ID';\nexport const SPORTS_EVENTS_DATA_REMOVE_ID = 'SPORTS_EVENTS_DATA_REMOVE_ID';\nexport const SPORTS_EVENTS_DATA_UPDATE_DATA = 'SPORTS_EVENTS_DATA_UPDATE_DATA';\nexport const SPORTS_EVENTS_DATA_REMOVE_DATA = 'SPORTS_EVENTS_DATA_REMOVE_DATA';\nexport const SPORTS_EVENTS_DATA_ELEMENT_REMOVED =\n\t'SPORTS_EVENTS_DATA_ELEMENT_REMOVED';\nexport const SPORTS_EVENTS_DATA_LOADING = 'SPORTS_EVENTS_DATA_LOADING';\n"],"names":["CheckboxStyle","styled","className","boxNoHeight","CheckboxWrapperStyle","StyledCheckboxBox","props","color","isColor","theme","colors","active","isError","negative","css","ConverterValue","actionEnabled","currency","value","precision","countPrecision","defaultPrecision","config","checkTablet","deviceType","this","converterCurrency","mapApiCurrencyToLayoutCurrency","price","isTrueOrZero","activeSwitch","parsePrecision","content","noClick","onClick","mathService","trans","label","options","React","enhanceComponent","ConverterValueContainer","connect","state","stats","user","activeCurrency","converter","confirm","app","dispatch","switch","data","converterSwitchCurrency","ConverterValueStyle","onclick","box","fontSize","size","sizeDesktop","noclick","InputCurrency","setState","converted","toUsd","undefined","updateConverted","updateValue","setValue","formCurrency","update","toNative","setConverted","prevProps","noChildrenWrapper","name","inputClasses","error","noConverterInfo","onFocusOut","onChangeDelayed","onChange","type","noTippy","as","InputCurrencyContainer","converterToUsd","converterToNative","useValidate","validate","preventInitialCheck","updateError","useState","setError","prevValue","usePrevious","prevValidate","useEffect","result","jsonToString","useValidateProfitCallback","useAppSelector","useCallback","game","validateProfitAmount","useValidateProfit","validateCallback","useValidateStakeCallback","useAppDispatch","isLogged","validateBetAmountThunk","checkBalance","useValidateStake","useTimeDiff","start_at","interval","diff","setDiff","setDiffValue","start","eventTimestamp","getTimestamp","currentTimestamp","roundNumber","useInterval","callback","id","LoaderListWrapper","list","listElement","loaderWrapper","loaded","preloadLength","preloadElement","listElementCallback","noDataElement","length","map","Wrapper","Fragment","sequenceArray","el","index","isFunction","ColumnLayout","cells","children","StyledColumn","$cells","StyledCell","text","fonts","Black","sizeBigScreen","cutTextStyle","media","maxWidthSmallTablet","BalanceCurrencyValueBigStyle","classnames","chatViewport","viewportPadding","minWidth","calcStyle","a","minWidthSmallTablet","b","BalanceCurrencyValueSmallStyle","minWidthDesktop","$color","positive","getTimestamp_","date","TimerCountDown","precise","dispatchCallback","renderer","timestamp","setTimestamp","prevDate","renderer_","days","hours","minutes","seconds","completed","formatted","hoursPrecise","Date","toTimeString","getState","balances","balance","balancesArray","validateBetAmount","activeGame","BetSlipElementTitle","bet","useContext","BetSlipContext","match","MatchContext","matchId","outcomeId","onDelete","sportsBetSlipDeleteBet","StyledBetSlipElementTitle","StyledMatchName","sport","slug","MatchDate","noDate","MatchName","short","StyledCloseButton","localTheme","AwesomeIcon","icon","faTimes","sizeDiff","sizeDesktopDiff","sizeBigScreenDiff","StyledDate","Button","layout","transition","createContext","BetElement","useSportsBetSlipBetData","M","Provider","sportsBetSlipUpdateBetsListElement","StyledBetElement","BetSlipElementMessage","BetSlipElementDetails","BetSlipElementForm","borderRadius","InputWrapperStyle","inputButton","StyledSummaryValue","important","CSSClassNameCurrencyLogo","currencyLogoStyle","maxWidthTablet","THREE_WAY_HANDICAP","StyledMatchOffer","StyledOutcomesList","textDisabled","Regular","parseThreeWayHandicapDecimalLine","indexOf","parseFloat","parseThreeWayData","decimal_line","StyledOfferLineTitle","rgba","BetSlipElementOdds","outcome","useSportsBetSlipBetOutcome","placingBet","useSportsBetSlipPlacingBet","decimal_odds","odds","setOdds","updatedOutcome","setUpdatedOutcome","useEventData","offer_id","setActive","oddsChangeType","useOddsChange","isDisabled","useCheckBetError","acceptType","useSportsBetSlipAcceptType","getUpdated","outcomes","find","placed_at","useOnMount","checkDisabledOutcome","checkSuspendedOffer","OFFER_SUSPENDED_ERROR","checkDisabledOffer","OFFER_CLOSED_ERROR","default","NO_ODDS_ACCEPT","ALL_ACCEPT","newOdds","oddsChanged","StyledBetSlipElementOdds","$disabled","style","position","fontFamily","whiteSpace","textAlign","top","left","string","MatchOddsChange","change","forceChangeType","MatchOdds","result_odds","borderColor","StyledMatchOddsChange","isOfferThreeWayHandicap","offer_label","parseBetSlipOddsData","parseBetSlipOddsName","StyledOddsName","transSports","parseOdds","parseData","parse","StyledBetElementDetails","StyledName","MatchOddsName","fullName","OfferName","O","offer","StyledMatchOfferName","StyledMatchOddsName","StyledMatchOdds","ProfitInput","translateValue","getBetFromBetSlipList","betsList","useSportsBetSlipType","sportsBetSlip","bets","setBet","useBetSlipElementOdds","disabled","StyledBetSlipElementForm","StakeInput","GameType","scientificToDecimal","stake","profit","BetSlipInput","ButtonStyle","BetSlipError","multiMatch","errorKey","Object","keys","filter","key","isBetSlipError","useCheckOnlyBetError","isPlacedMulti","isMessage","info","StyledBetSlipElementMessage","$success","faExclamationCircle","faCalendarCheck","darken","alertError","Timestamp","time","StyledTimestamp","formatToFullDate","TypeLabel","StyledTypeLabel","split","join","TitleBar","refElement","useRef","disableOpenModal","setDisableOpenModal","BetslipDetailsContext","openCallback","useOpenBetModal","hash","dataType","current","closest","TitleBarStyled","ref","StateLabel","published_at","faExternalLinkAlt","StyledStateLabel","SummaryBar","useBetSlipTotalOddsAndProfit","totalOdds","StyledSummaryBar","SummaryValue","title","simpleValue","amount","BetSlipDetailsProgressState","valueProps","getCashoutValue","createLoadingId","LOADING_IDS","CashoutBar","cashoutOdds","total_available_cashout_odds","getList","BetSlipHistoryContext","loadingId","setLoadingId","fetch","useFetchApi","submitCashout","url","getSportsApiUrl","method","loaderId","parameters","Authorization","body","uuid","total_cashout_odds","then","response","userBalance","updateBalance","showAlert","cashout_value","Number","cashout_currency","toUpperCase","newLoadingId","useCashout","BetSlipDetails","StyledBetSlipDetails","betslip_events","EventElement","EventElementOddsNameContext","event","createNameFromSlug","featured","iconId","toLowerCase","StyledEventTitle","noIcon","StyledEvent","StyledMatchOddsNameBox","noShort","noParse","home_team_score","StyledMatchScoreBox","eventBetSlipState","params","horizontal","score","ElementBottomBorder","StyledTimeInformation","StyledLive","StyledMatchScoreWrapper","Bold","StyledScoreSimpleHorizontal","$state","BalanceAmountWithConverterTooltip","currencyConverter","namespace","TransNamespace","toString","parseName","simpleTrans","StyledOutcomeButton","height","maxWidthDesktop","$active","darkActive","ButtonOutcome","toggle","isSelected","disabledButton","setDisabled","sportsBetSlipClearPlacedBets","DeveloperData","faLock","getMatchLink","StyledNoOfferButton","StyledOutcomesListLabel","verticalMatchDetailsLayoutTitle","$noOffer","$childCount","OutcomesList","market","hideDisabled","SportContext","isOfferDisabled","setIsDisabledOffer","bottom","total_offers","LinkTo","href","faChevronRight","RectangleLoader","width","sportsBetSlipToggleBet","MatchLiveBadge","isLive","simpleComponent","Loadable","loader","TimestampComponents","sports","FOOTBALL_ID","roundMaxLength","minute","roundLength","maxRounds","roundLabel","FIELD_HOCKEY_ID","HANDBALL_ID","RUGBY_ID","FUTSAL_ID","BASKETBALL_ID","NETBALL_ID","AMERICAN_FOOTBALL_ID","AUSSIE_RULES_ID","ICE_HOCKEY_ID","WATERPOLO_ID","FLOORBALL_ID","BASEBALL_ID","TENNIS_ID","VOLLEYBALL_ID","BADMINTON_ID","TABLE_TENNIS_ID","Component","CRICKET_ID","SNOOKER_ID","BANDY_ID","BEACH_VOLLEYBALL_ID","DARTS_ID","BOXING_ID","MMA_ID","useTimestampComponent","setData","sportId","some","getData","LiveTimeInformation","TimeInformation","hour","formatToFullDateNoSeconds","SPORTS_MAP","mma","esports","soccer","SportName","seoLabel","noTranslationCheck","sportNameMapped","capitalize","mapSportName","StyledSportNameText","$allowTransform","sport_name","CompetitorName","StyledCompetitorName","short_name","home_team","away_team","StyledSeparator","category","tournament","toFixed","prevOdds","changeType","$noAnimation","$changed","Blink","keyframes","nameKey","OddsNameContext","newData","sortScoreRounds","rounds","sort","sortService","DIRECTION","round","games","MatchScoreHandler","away_team_score","ScoreComponents","ids","simple","extended","roundsCount","roundsLabels","isSummary","ESPORTS_ID","columns","useScoreComponent","ScoreContext","ScoreWrapper","ScoreSimple","ONLY_HIGHER_ACCEPT","DISABLE_INTERVALS","NEXT_CONFIG","checkInterval","LIVE_INTERVAL","second","EVENTS_DATA_INTERVAL","BETSLIP_HISTORY_INTERVAL","visible","SportsbookListContext","total_odds","setTotalOdds","estimatedProfit","setEstimatedProfit","reduce","getBetSlipEventsTotalOdds","checkBetSlipError","notBoolean","betError","message","timeout","initTimeout","sportsInitEventsDataUpdate","repeat","clearTimeout","setTimeout","updateEventsData","_getIds","sportsEventsData","idsData","forEach","push","_parseDataTypeToApiUrlType","sportsEventsDataLoading","dataTypes","_getDataTypes","loop","fetchApi","queryString","sportsEventsDataUpdateData","elementId","initial","listData","dataId","prevKey","prevDataId","prevDataType","isSportsActive","eventId","sportsEventsDataAddId","sportsEventsDataAdd","sportsEventsDataRemoveId","sportsEventsDataElementRemoved","next","changeState","setChange","useTimeout","isActive","clear","SPORTS_EVENTS_DATA_ADD_ID","SPORTS_EVENTS_DATA_REMOVE_ID","SPORTS_EVENTS_DATA_ELEMENT_REMOVED","sportsEventsDataRemoveData","SPORTS_EVENTS_DATA_REMOVE_DATA","SPORTS_EVENTS_DATA_UPDATE_DATA","actionSimple","SPORTS_EVENTS_DATA_LOADING"],"mappings":"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","debug_id":"3f7881ca-e262-5fea-ab13-2269a978f3b9"}