{"version":3,"file":"static/chunks/81207-54e71217a66a7eb1.js","sources":["webpack://_N_E/./src/common/components/AspectRatioWrapper/AspectRatioWrapper.styled.tsx","webpack://_N_E/./src/common/icons/slots/ArrowIcon.tsx","webpack://_N_E/./src/modules/games/LimboGame/LimboCounter/LimboCounter.styled.js","webpack://_N_E/./src/modules/games/PlinkoGame/components/PlinkoResult/PlinkoResult.styled.ts","webpack://_N_E/./src/modules/modals/components/BetModal/BetDetails.tsx","webpack://_N_E/./src/modules/modals/components/BetModal/BetModal.styled.ts","webpack://_N_E/./src/modules/slots/components/GameImage.tsx","webpack://_N_E/./src/modules/slots/components/ProviderLogo.tsx","webpack://_N_E/./src/modules/slots/components/SlotDropsAndWinsWatermark.tsx","webpack://_N_E/./src/modules/slots/components/SlotInfo.tsx","webpack://_N_E/./src/modules/slots/components/SlotTile.tsx","webpack://_N_E/./src/modules/slots/components/search/SlotsSearchModal.tsx","webpack://_N_E/./src/modules/slots/components/search/SlotsSearchResult.tsx","webpack://_N_E/./src/modules/slots/hooks/useFetchGames.ts","webpack://_N_E/./src/modules/slots/hooks/useFetchSearchTerm.ts","webpack://_N_E/./src/modules/slots/services/Slots.mapper.ts","webpack://_N_E/./src/ui/components/badge/index.tsx","webpack://_N_E/./src/ui/components/badge/mixins/BadgeType.mixin.ts","webpack://_N_E/./src/ui/components/badge/mixins/BadgeSize.mixin.ts"],"sourceRoot":"","sourcesContent":["import styled, { css } from 'styled-components';\n\ninterface AspectRatioWrapperProps {\n\tratio?: number;\n\tmaxHeight?: number | string;\n\toverflow?: string;\n\theight?: string;\n}\n\nexport const StyledAspectRatioWrapper = styled.div<AspectRatioWrapperProps>`\n\t${(props) =>\n\t\tprops.height\n\t\t\t? css`\n\t\t\t\t\theight: ${props.height};\n\t\t\t `\n\t\t\t: ''}\n\t${(props) =>\n\t\tprops.maxHeight\n\t\t\t? css`\n\t\t\t\t\tmax-height: ${props.maxHeight};\n\t\t\t `\n\t\t\t: ''}\n\t${(props) =>\n\t\tprops.overflow\n\t\t\t? css`\n\t\t\t\t\toverflow: ${props.overflow};\n\t\t\t `\n\t\t\t: ''}\n\tposition: relative;\n\t${(props) =>\n\t\tprops.ratio\n\t\t\t? css`\n\t\t\t\t\t:before {\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tpadding-top: ${(1 / props.ratio) * 100}%;\n\t\t\t\t\t}\n\t\t\t `\n\t\t\t: ''}\n`;\n\nStyledAspectRatioWrapper.defaultProps = {\n\tratio: 16 / 9,\n\tmaxHeight: 'auto',\n};\n\nexport const StyledAspectRatioInner = styled.div`\n\theight: 100%;\n\tleft: 0;\n\tposition: absolute;\n\ttop: 0;\n\ttransition: 300ms;\n\twidth: 100%;\n`;\n","import { Svg } from '@legacyApp/client/components/svg/Svg';\n\nexport const ArrowIcon = () =>\n\tSvg({\n\t\tcontent: (\n\t\t\t<>\n\t\t\t\t<path\n\t\t\t\t\td=\"M537.783,613v-18.84a3.005,3.005,0,0,1,4.508-2.6l16.316,9.42,16.316,9.42a3.005,3.005,0,0,1,0,5.205l-16.316,9.42-16.316,9.42a3,3,0,0,1-4.508-2.6Z\"\n\t\t\t\t\ttransform=\"translate(-537.783 -591.152)\"\n\t\t\t\t\tfill=\"#1dbb2f\"\n\t\t\t\t/>\n\t\t\t</>\n\t\t),\n\t\twidth: 38,\n\t\theight: 43,\n\t});\n","import styled, { css } from 'styled-components';\n\nconst getMobileFontSize = (props) => {\n\t// 80 / 50\n\tconst fontScale = 80 / 50;\n\tlet fontSize = (props.$screenWidth / (props.$length || 3)) * 0.8 * fontScale;\n\tif (fontSize > (props.$noTarget ? 40 : 80)) {\n\t\tfontSize = props.$noTarget ? 40 : 80;\n\t}\n\treturn css`\n\t\tfont-size: ${fontSize}px;\n\t\ti,\n\t\tsvg {\n\t\t\tfont-size: ${fontSize * 0.6}px;\n\t\t\tmargin-left: ${fontSize / fontScale / 4}px;\n\t\t\tpadding-top: ${fontSize * 0.3}px;\n\t\t}\n\t`;\n};\n\nexport const StyledLimboCounter = styled.div.attrs({\n\tclassName: 'game--limbo__result',\n})`\n\t${(props) =>\n\t\tprops.$screenWidth\n\t\t\t? getMobileFontSize(props)\n\t\t\t: css`\n\t\t\t\t\tfont-size: ${props.$noTarget ? '50' : '100'}px;\n\t\t\t `};\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: center;\n\tmargin: 10px 0;\n\twhite-space: nowrap;\n\twidth: 100%;\n\n\t${(props) =>\n\t\tprops.$screenWidth\n\t\t\t? ''\n\t\t\t: css`\n\t\t\t\t\ti,\n\t\t\t\t\tsvg {\n\t\t\t\t\t\tfont-size: ${props.$noTarget ? '40' : '70'}px;\n\t\t\t\t\t\tmargin-left: ${props.$noTarget ? '10' : '20'}px;\n\t\t\t\t\t\tpadding-top: ${props.$noTarget ? '15' : '25'}px;\n\t\t\t\t\t}\n\t\t\t `};\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthTablet}) {\n\t\t${(props) =>\n\t\t\tprops.$screenWidth\n\t\t\t\t? ''\n\t\t\t\t: css`\n\t\t\t\t\t\tfont-size: ${props.$noTarget ? '40' : '80'}px;\n\t\t\t\t `};\n\t\tmargin: 5px 0 0;\n\n\t\t${(props) =>\n\t\t\tprops.$screenWidth\n\t\t\t\t? ''\n\t\t\t\t: css`\n\t\t\t\t\t\ti,\n\t\t\t\t\t\tsvg {\n\t\t\t\t\t\t\tfont-size: ${props.$noTarget ? '28' : '50'}px;\n\t\t\t\t\t\t\tmargin-left: ${props.$noTarget ? '5' : '10'}px;\n\t\t\t\t\t\t\tpadding-top: ${props.$noTarget ? '12' : '20'}px;\n\t\t\t\t\t\t}\n\t\t\t\t `};\n\t}\n\n\t@media (max-width: ${(props) => props.theme.media.maxWidthVerySmall}) {\n\t\tmargin: 0;\n\t}\n`;\n","import styled from 'styled-components';\nimport { Risk } from '@modules/games/Game/types/GameRisk';\n\ninterface PlinkoGameBodyStyledProps {\n\t$resultIndex?: number;\n\t$risk?: Risk;\n}\n\nexport const PlinkoResultStyled = styled.div<PlinkoGameBodyStyledProps>`\n\tpadding-bottom: 10px;\n\tpadding-top: 20px;\n\twidth: 100%;\n`;\n","import React, { FC, PropsWithChildren, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { useAppMobile } from '@common/selectors/app.selectors';\nimport { formatToFullDate } from '@legacyApp/client/modules/app/timeService';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { UserType } from '@legacyApp/types/user/UserType';\n\nimport { UserLogin } from '@common/components/user/UserLogin/UserLogin';\nimport { GameIcon } from '@modules/games/Game/components/Game.components/gameIcon';\nimport { HiddenDataStyled } from '@ui/hidden-data/hidden-data.styled';\nimport { second } from '@legacyApp/client/modules/app/time';\n\nexport const BetDetails: FC<\n\tPropsWithChildren<{\n\t\tuser: UserType;\n\t\tid: string;\n\t\tpublished_at: number;\n\t\tgame: string;\n\t\tIcon?: ReactNode;\n\t}>\n> = ({ user, id, published_at, Icon, game }) => {\n\tconst isMobile = useAppMobile();\n\n\tconst Icon_ = Icon || <GameIcon name={game} />;\n\n\treturn (\n\t\t<BetDetailsStyled>\n\t\t\t<BetDetailsIdStyled className=\"text-overflow-ellipsis width-100\">\n\t\t\t\t{isMobile ? (\n\t\t\t\t\t<span>{game && Icon_} </span>\n\t\t\t\t) : (\n\t\t\t\t\t<span className=\"text-style-sm-medium text-capitalize\">\n\t\t\t\t\t\t{game && Icon_} {game}:\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<span className=\"user-select-all break-all text-style-sm-regular\">\n\t\t\t\t\t#{id}\n\t\t\t\t</span>\n\t\t\t</BetDetailsIdStyled>\n\n\t\t\t<div className=\"text-style-sm-regular inline-flex align-middle gap-1 [&>span]:flex [&>span]:items-center\">\n\t\t\t\t<span style={{ color: 'var(--color-dark-200)' }}>\n\t\t\t\t\t{trans({ label: 'Placed by' })}:{' '}\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"text-underline\"\n\t\t\t\t\tstyle={{ color: 'var(--color-blue-dark)' }}\n\t\t\t\t>\n\t\t\t\t\t{user && <UserLogin user={user} />}\n\t\t\t\t</span>{' '}\n\t\t\t\t<span style={{ color: 'var(--color-dark-200)' }}>\n\t\t\t\t\t{trans({ label: 'at' })}\n\t\t\t\t</span>{' '}\n\t\t\t\t<span style={{ color: 'var(--color-blue-dark)' }}>\n\t\t\t\t\t{formatToFullDate(published_at * second)}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</BetDetailsStyled>\n\t);\n};\n\nexport const BetDetailsIdStyled = styled.div`\n\timg {\n\t\theight: 12px;\n\t}\n`;\n\nexport const BetDetailsStyled = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\twidth: 100%;\n\n\t${HiddenDataStyled} {\n\t\tdisplay: inline-flex !important;\n\t\tposition: relative;\n\n\t\tspan {\n\t\t\tcolor: var(--color-blue-dark) !important;\n\t\t}\n\n\t\tsvg {\n\t\t\tpath {\n\t\t\t\tfill: var(--color-blue-dark);\n\t\t\t}\n\t\t}\n\t}\n`;\n","import styled from 'styled-components';\nimport { StyledGameSlider } from '@modules/games/DiceGame/components/GameSlider/GameSlider.styled';\nimport { PlinkoResultStyled } from '../../../games/PlinkoGame/components/PlinkoResult/PlinkoResult.styled';\nimport { StyledLimboCounter } from '../../../games/LimboGame/LimboCounter/LimboCounter.styled';\nimport { BetDetailsStyled } from './BetDetails';\n\nexport const StyledBetModal = styled.div`\n\tmargin: 0 -12px;\n\toverflow-x: hidden;\n\tpadding: 0 12px;\n\twidth: calc(100% + 24px);\n\n\t&:first-of-type {\n\t\tmargin-top: -12px;\n\t}\n\n\t${BetDetailsStyled} {\n\t\tpadding-bottom: 12px;\n\t\tmargin-bottom: 24px;\n\t\tborder-bottom: 1px solid var(--color-dark-600);\n\t}\n\n\t${PlinkoResultStyled} {\n\t\tmargin: 12px 0 24px;\n\t}\n\n\t${StyledLimboCounter} {\n\t\tmargin: 24px 0 24px;\n\t}\n\n\t${StyledGameSlider} {\n\t\tmargin-left: -45px !important;\n\t\tpadding-left: 60px !important;\n\t\tpadding-right: 60px !important;\n\t\twidth: calc(100% + 90px) !important;\n\n\t\t@media (max-width: ${(props) => props.theme.media_v2.max_tablet_medium}) {\n\t\t\tpadding-left: 70px !important;\n\t\t\tpadding-right: 70px !important;\n\t\t}\n\t}\n`;\n","import { FC } from 'react';\nimport styled from 'styled-components';\nimport { Slot } from '../store/slots.types';\nimport { ProviderLogo } from './ProviderLogo';\n\nexport const GameImage: FC<Slot> = ({ image_url, name, provider_slug }) => {\n\tif (!image_url) {\n\t\treturn <ProviderLogo slug={provider_slug} />;\n\t}\n\treturn <GameImageStyled src={image_url} alt={name} />;\n};\n\nexport const GameImageStyled = styled.img``;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\nimport { parseImageSrc } from '@common/components/default/Image/Image';\nimport Icon from '../../../common/components/icons/Icon';\n\nconst FallbackImage = {\n\tmicrogaming: true,\n};\n\nexport const ProviderLogo: FC<{\n\tslug: string;\n\tname?: string;\n}> = ({ slug, name }) => {\n\tif (!slug) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<ProviderLogoStyled>\n\t\t\t<Icon\n\t\t\t\tid={`slots/providers/${slug}`}\n\t\t\t\tfallbackImg={\n\t\t\t\t\tFallbackImage[slug]\n\t\t\t\t\t\t? parseImageSrc(`/img/slots/providers/${slug}.png`)\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\tname={name}\n\t\t\t/>\n\t\t</ProviderLogoStyled>\n\t);\n};\n\nexport const ProviderLogoStyled = styled.span`\n\tdisplay: inline-block;\n\theight: 100%;\n\tmax-height: 100%;\n\toverflow: hidden;\n\twidth: 100%;\n\n\t> svg {\n\t\tfill: white;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t> img {\n\t\twidth: 100%;\n\t}\n\n\t> span {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tfont-size: 1.3rem;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\ttext-align: center;\n\t}\n`;\n","import { FC } from 'react';\nimport styled from 'styled-components';\nimport { Image } from '@common/components/default/Image/Image';\nimport { GameDetailsDTO, Slot } from '../store/slots.types';\n\nconst checkIsDropsAndWins = (game: Slot | GameDetailsDTO) => {\n\tif ('tags' in game && !!game?.tags?.length) {\n\t\treturn game.tags?.indexOf('drops-and-wins') > -1;\n\t}\n\tif ('categories' in game && !!game?.categories?.length) {\n\t\treturn (\n\t\t\tgame.categories?.findIndex(\n\t\t\t\t(category) => category.slug === 'drops-and-wins',\n\t\t\t) > -1\n\t\t);\n\t}\n\treturn false;\n};\n\nexport const SlotDropsAndWinsWatermark: FC<Slot | GameDetailsDTO> = (game) => {\n\tif (!checkIsDropsAndWins(game)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StyledSlotWaterMark>\n\t\t\t<Image src={'/img/slots/dropsandwins.png'} alt={'Drops and wins logo'} />\n\t\t</StyledSlotWaterMark>\n\t);\n};\n\nexport const StyledSlotWaterMark = styled.div`\n\theight: 35%;\n\tleft: 0;\n\tposition: absolute;\n\ttop: 0;\n\tz-index: 1;\n\n\t:before {\n\t\tcontent: '';\n\t\tbackground: radial-gradient(\n\t\t\tcircle,\n\t\t\tvar(--color-blue-dark) 0%,\n\t\t\tvar(--color-blue-dark) 15%,\n\t\t\trgba(255, 255, 255, 0) 40%\n\t\t);\n\t\tposition: absolute;\n\t\theight: 400%;\n\t\tdisplay: block;\n\t\twidth: 400%;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, -50%);\n\t\tz-index: 0;\n\t}\n\n\timg {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\tz-index: 1;\n\t}\n`;\n","import styled from 'styled-components';\nimport { FC } from 'react';\nimport { LinkTo } from 'src/common/components/default/LinkTo/LinkTo';\nimport { generateSlotProviderUrl } from 'src/modules/slots/services/Slots.service';\n\ninterface SlotInfoProps {\n\tslotName: string;\n\tproviderSlug: string;\n\tproviderName: string;\n}\n\nexport const StyledSlotInfo = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmargin-top: 12px;\n`;\n\nexport const StyledSlotInfoName = styled.div`\n\tcolor: var(--color-white);\n\tmargin-bottom: 4px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n`;\n\nexport const SlotInfo: FC<SlotInfoProps> = ({\n\tslotName,\n\tproviderSlug,\n\tproviderName,\n}) => {\n\treturn (\n\t\t<StyledSlotInfo>\n\t\t\t<StyledSlotInfoName className=\"text-style-sm-medium\">\n\t\t\t\t{slotName}\n\t\t\t</StyledSlotInfoName>\n\t\t\t<LinkTo\n\t\t\t\thref={generateSlotProviderUrl(providerSlug)}\n\t\t\t\tclassName=\"text-style-overline overflow-hidden text-ellipsis\"\n\t\t\t\tstyle={{ color: 'var(--color-dark-200)' }}\n\t\t\t>\n\t\t\t\t{providerName}\n\t\t\t</LinkTo>\n\t\t</StyledSlotInfo>\n\t);\n};\n","import { FC } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Badge, BadgeStyled, BadgeType } from '@ui/badge';\nimport { ArrowIcon } from '@icons/slots/ArrowIcon';\nimport { generateUrl, ROUTE } from 'src/common/routes';\nimport {\n\tStyledAspectRatioInner,\n\tStyledAspectRatioWrapper,\n} from 'src/common/components/AspectRatioWrapper/AspectRatioWrapper.styled';\nimport { Slot } from 'src/modules/slots/store/slots.types';\nimport { PROVIDER_ADMIN_ID_FROM } from 'src/modules/slots/hooks/useFetchProviders';\nimport { BalanceConvertedCurrencies } from 'src/modules/balance/store/balance.constants';\nimport { BalanceAmount } from 'src/common/components/number/balanceAmount';\nimport { LinkTo } from 'src/common/components/default/LinkTo/LinkTo';\nimport { roundNumber } from 'src/common/methods/roundNumber/roundNumber';\nimport { SlotInfo } from 'src/modules/slots/components/SlotInfo';\nimport { SlotDropsAndWinsWatermark } from 'src/modules/slots/components/SlotDropsAndWinsWatermark';\nimport {\n\tGameImage,\n\tGameImageStyled,\n} from 'src/modules/slots/components/GameImage';\nimport { ProviderLogoStyled } from 'src/modules/slots/components/ProviderLogo';\n\nexport const SlotTile: FC<Slot> = (game) => {\n\tconst {\n\t\tname,\n\t\timage_url,\n\t\tprovider_name,\n\t\tprovider_slug,\n\t\trtp_value,\n\t\tslug,\n\t\tview_aspect_ratio,\n\t\tprovider_id,\n\t\tamount_usd,\n\t} = game;\n\n\treturn (\n\t\t<LinkTo\n\t\t\tpassHref\n\t\t\tforceATag\n\t\t\thref={\n\t\t\t\t!slug\n\t\t\t\t\t? ''\n\t\t\t\t\t: generateUrl(\n\t\t\t\t\t\t\tprovider_id < PROVIDER_ADMIN_ID_FROM\n\t\t\t\t\t\t\t\t? ROUTE.slotPage\n\t\t\t\t\t\t\t\t: ROUTE.slotAdminPage,\n\t\t\t\t\t\t\t{ slug },\n\t\t\t\t\t )\n\t\t\t}\n\t\t>\n\t\t\t<StyledSlotTileContainer>\n\t\t\t\t<StyledSlotTileFeatured>\n\t\t\t\t\t<StyledSlotTileInfo>\n\t\t\t\t\t\t<ArrowIcon />\n\t\t\t\t\t\t{!!rtp_value && (\n\t\t\t\t\t\t\t<StyledSlotTileRTP>RTP: {rtp_value}%</StyledSlotTileRTP>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</StyledSlotTileInfo>\n\t\t\t\t\t<SlotDropsAndWinsWatermark {...game} />\n\t\t\t\t\t<StyledImageWrapper\n\t\t\t\t\t\t$isBadge={!!amount_usd}\n\t\t\t\t\t\t$src={image_url}\n\t\t\t\t\t\tratio={view_aspect_ratio}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StyledAspectRatioInner>\n\t\t\t\t\t\t\t<StyledSlotsTileImage>\n\t\t\t\t\t\t\t\t<GameImage {...game} />\n\t\t\t\t\t\t\t</StyledSlotsTileImage>\n\t\t\t\t\t\t</StyledAspectRatioInner>\n\t\t\t\t\t\t{amount_usd && (\n\t\t\t\t\t\t\t<Badge type={BadgeType.SUCCESS}>\n\t\t\t\t\t\t\t\t<BalanceAmount\n\t\t\t\t\t\t\t\t\tnoFormat\n\t\t\t\t\t\t\t\t\tclassName=\"text-style-xs-medium\"\n\t\t\t\t\t\t\t\t\tvalue={roundNumber(amount_usd, 2).toFixed(2)}\n\t\t\t\t\t\t\t\t\tbalanceConverted={BalanceConvertedCurrencies.USD}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</StyledImageWrapper>\n\t\t\t\t</StyledSlotTileFeatured>\n\t\t\t\t{/*<pre>{JSON.stringify(game, undefined, 2)}</pre>*/}\n\t\t\t\t{name && provider_slug && provider_name && (\n\t\t\t\t\t<SlotInfo\n\t\t\t\t\t\tslotName={name}\n\t\t\t\t\t\tproviderSlug={provider_slug}\n\t\t\t\t\t\tproviderName={provider_name}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyledSlotTileContainer>\n\t\t</LinkTo>\n\t);\n};\n\nconst StyledSlotTileContainer = styled.div`\n\tcursor: pointer;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n`;\n\nconst StyledSlotsTileImage = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\theight: 100%;\n\tjustify-content: center;\n\twidth: 100%;\n\n\t${GameImageStyled} {\n\t\theight: 100%;\n\t}\n\n\t${ProviderLogoStyled} {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\n\t\timg,\n\t\tsvg {\n\t\t\twidth: 80%;\n\t\t}\n\t}\n`;\n\nconst StyledSlotTileInfo = styled.div`\n\talign-items: center;\n\tbackground-color: rgba(0, 0, 0, 0.7);\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tjustify-content: center;\n\topacity: 0;\n\tposition: absolute;\n\ttransition: 300ms;\n\twidth: 100%;\n\tz-index: 2;\n`;\n\nconst StyledSlotTileRTP = styled.div`\n\tbottom: 10px;\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\tfont-size: 8px;\n\tposition: absolute;\n\tright: 20px;\n`;\n\nexport const StyledSlotTileFeatured = styled.div`\n\tbackground-color: #030f1e;\n\tborder-radius: 12px;\n\tflex-grow: 1;\n\theight: auto;\n\toverflow: hidden;\n\tposition: relative;\n\n\t&:hover {\n\t\t${StyledSlotTileInfo} {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t${StyledAspectRatioInner} {\n\t\t\ttransform: scale(1.05);\n\t\t}\n\n\t\t${BadgeStyled} {\n\t\t\tbottom: -30px;\n\t\t}\n\t}\n`;\n\nconst StyledImageWrapper = styled(StyledAspectRatioWrapper)<{\n\t$src: string;\n\t$isBadge?: boolean;\n}>`\n\tposition: relative;\n\n\t&:before {\n\t\tbackground: url(${(props) => props.$src});\n\t\tbackground-size: cover;\n\t\tbackground-size: 100% 100%;\n\t\tfilter: blur(10px);\n\t}\n\n\t${StyledAspectRatioInner} {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t}\n\n\t${BadgeStyled} {\n\t\tbottom: 8px;\n\t\tleft: 8px;\n\t\tposition: absolute;\n\t\tz-index: 3;\n\t}\n\n\t${(props) =>\n\t\tprops.$isBadge\n\t\t\t? css`\n\t\t\t\t\tbox-shadow: inset 0 -20px 40px -20px black;\n\t\t\t\t\tposition: relative;\n\n\t\t\t\t\t:after {\n\t\t\t\t\t\t//box-shadow: inset 0 -20px 40px -20px black;\n\t\t\t\t\t\tbackground: linear-gradient(to top, #0e1f33 0%, transparent 70%);\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\tleft: 0;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: 0;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tz-index: 1;\n\t\t\t\t\t}\n\t\t\t `\n\t\t\t: null}\n`;\n","import { FunctionComponent, useCallback } from 'react';\nimport styled from 'styled-components';\nimport {\n\ttrans,\n\ttransSlots,\n} from '@legacyApp/client/modules/translation/translate';\nimport { InputWrapperContainer } from '@legacyApp/client/components/input/inputWrapper.container';\nimport { simpleTrans } from '@legacyApp/client/modules/translation/translationService';\nimport { boxNoHeight } from '@legacyApp/client/modules/style/defaults';\nimport { Loader } from '@legacyApp/client/components/loader/loader';\nimport { TransNamespace } from '@legacyApp/client/modules/translation/TransNamespace';\nimport { useGetDataArray } from '@legacyApp/hooks/fetch/useGetDataArray';\nimport { useFetchSearchTerm } from '../../hooks/useFetchSearchTerm';\nimport { useFetchGames } from '../../hooks/useFetchGames';\nimport { StyledBetModal } from '../../../modals/components/BetModal/BetModal.styled';\nimport { Slot } from '../../store/slots.types';\nimport { SlotsSearchResult } from './SlotsSearchResult';\n\nexport const StyledNoResults = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\tmargin: 1rem;\n`;\n\nexport const useFetchSearchDefault = () => {\n\tconst { callback } = useFetchGames();\n\tconst gamesCallback = useCallback(\n\t\t() =>\n\t\t\tcallback(\n\t\t\t\t{\n\t\t\t\t\torderBy: 'top',\n\t\t\t\t\tcount: 5,\n\t\t\t\t},\n\t\t\t\t{ fromState: true },\n\t\t\t),\n\t\t[callback],\n\t);\n\tconst { data: list } = useGetDataArray<Slot>('top', gamesCallback);\n\n\treturn {\n\t\tlist,\n\t};\n};\n\nconst SlotsSearchModal: FunctionComponent = () => {\n\tconst { results, loading, setTerm, term } = useFetchSearchTerm();\n\tconst { list } = useFetchSearchDefault();\n\n\treturn (\n\t\t<div className=\"user-modal user-select-text\">\n\t\t\t<h3 className=\"user-modal__title\">{trans({ label: 'Search' })}</h3>\n\t\t\t<StyledBetModal\n\t\t\t\tclassName={'user-modal__top-section flex-start-column no-border'}\n\t\t\t>\n\t\t\t\t<InputWrapperContainer\n\t\t\t\t\tvalue={term}\n\t\t\t\t\tname={'slots-search-query'}\n\t\t\t\t\tonChangeDelayed={setTerm}\n\t\t\t\t\tnoTranslatePlaceholder\n\t\t\t\t\tplaceholder={`${simpleTrans(\n\t\t\t\t\t\t'Game',\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tTransNamespace.SLOTS,\n\t\t\t\t\t)}, ${simpleTrans(\n\t\t\t\t\t\t'Providers',\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tTransNamespace.SLOTS,\n\t\t\t\t\t)}, ${simpleTrans('Category', undefined, TransNamespace.SLOTS)}...`}\n\t\t\t\t/>\n\t\t\t\t<StyledSearchResultBox>\n\t\t\t\t\t<Loader active={loading} />\n\t\t\t\t\t{term.length ? (\n\t\t\t\t\t\tresults?.length ? (\n\t\t\t\t\t\t\tresults.map((slot) => (\n\t\t\t\t\t\t\t\t<SlotsSearchResult\n\t\t\t\t\t\t\t\t\tkey={`${slot.game_id}_${slot.operator_id}`}\n\t\t\t\t\t\t\t\t\tslot={slot}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t) : loading ? null : (\n\t\t\t\t\t\t\t<StyledNoResults>\n\t\t\t\t\t\t\t\t{trans({ label: 'No results' })}\n\t\t\t\t\t\t\t</StyledNoResults>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\t\t\t\t</StyledSearchResultBox>\n\t\t\t\t{!results?.length && !!list?.length && (\n\t\t\t\t\t<StyledSearchResultBox>\n\t\t\t\t\t\t<h3 className=\"margin-top no-margin-bottom\">\n\t\t\t\t\t\t\t{transSlots({ label: 'Try our recommended games' })}:\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t{list.map((slot) => (\n\t\t\t\t\t\t\t<SlotsSearchResult\n\t\t\t\t\t\t\t\tkey={`${slot.game_id}_${slot.operator_id}`}\n\t\t\t\t\t\t\t\tslot={slot}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</StyledSearchResultBox>\n\t\t\t\t)}\n\t\t\t</StyledBetModal>\n\t\t</div>\n\t);\n};\n\nexport const StyledSearchResultBox = styled.div`\n\t${boxNoHeight};\n\tmin-height: 30px;\n\tposition: relative;\n`;\n\nexport default SlotsSearchModal;\n","import { FunctionComponent } from 'react';\nimport styled from 'styled-components';\nimport { LinkTo } from '@common/components/default/LinkTo/LinkTo';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { closeModal } from '../../../modals/store/modal.actions';\nimport { Slot } from '../../store/slots.types';\nimport { generateSlotUrl } from '../../services/Slots.service';\nimport { SlotDropsAndWinsWatermark } from '../SlotDropsAndWinsWatermark';\nimport { StyledSlotTileFeatured } from '../SlotTile';\nimport { GameImage, GameImageStyled } from '../GameImage';\nimport { ProviderLogoStyled } from '../ProviderLogo';\n\nexport const SlotsSearchResult: FunctionComponent<{\n\tslot: Slot;\n}> = ({ slot }) => {\n\tconst dispatch = useAppDispatch();\n\treturn (\n\t\t<StyledResult>\n\t\t\t<LinkTo\n\t\t\t\thref={generateSlotUrl(slot)}\n\t\t\t\tonClick={() => dispatch(closeModal())}\n\t\t\t>\n\t\t\t\t<StyledResultLayout>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<StyledSlotTileFeatured>\n\t\t\t\t\t\t\t<SlotDropsAndWinsWatermark {...slot} />\n\t\t\t\t\t\t\t<StyledSlotsImage>\n\t\t\t\t\t\t\t\t<GameImage {...slot} />\n\t\t\t\t\t\t\t</StyledSlotsImage>\n\t\t\t\t\t\t</StyledSlotTileFeatured>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<StyledResultName>{slot.name}</StyledResultName>\n\t\t\t\t\t\t<StyledResultProvider>{slot.provider_name}</StyledResultProvider>\n\t\t\t\t\t</div>\n\t\t\t\t</StyledResultLayout>\n\t\t\t</LinkTo>\n\t\t</StyledResult>\n\t);\n};\n\nexport const StyledResult = styled.div`\n\t&:not(:last-of-type) {\n\t\tborder-bottom: 1px solid rgba(255, 255, 255, 0.4);\n\t}\n`;\n\nexport const StyledResultLayout = styled.div`\n\talign-items: center;\n\tdisplay: grid;\n\tfont-family: ${(props) => props.theme.text.fonts.Regular};\n\tgap: 1px 24px;\n\tgrid-template-areas: '. .';\n\tgrid-template-columns: 0.3fr 0.7fr;\n\tgrid-template-rows: 1fr;\n\tjustify-content: center;\n\tpadding: 1.5rem 1rem;\n\twidth: 100%;\n`;\n\nexport const StyledResultName = styled.div`\n\tfont-size: 18px;\n`;\n\nexport const StyledResultProvider = styled.div`\n\tfont-size: 12px;\n\topacity: 0.4;\n`;\n\nexport const StyledSlotsImage = styled.div`\n\tdisplay: grid;\n\twidth: 100%;\n\n\t${GameImageStyled} {\n\t\twidth: 100%;\n\t}\n\n\t${ProviderLogoStyled} {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\theight: 80px;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\n\t\timg,\n\t\tsvg {\n\t\t\twidth: 80%;\n\t\t}\n\t}\n`;\n","import { useCallback, useRef } from 'react';\nimport { FetchProps, useFetchApi } from '@legacyApp/hooks/fetch/useFetchApi';\nimport { UseGetDataArrayCallback } from '@legacyApp/hooks/fetch/useGetDataArray';\nimport {\n\tgenerateSlotGameListUrl,\n\tSlotGameListQuery,\n} from '../services/Slots.service';\nimport { normalizeSlots } from '../services/Slots.mapper';\nimport { Slot } from '../store/slots.types';\n\nexport const useFetchGames = () => {\n\tconst { fetch: fetchApi, cancel } = useFetchApi();\n\tconst pages = useRef([]);\n\n\tconst callback: UseGetDataArrayCallback<Slot, SlotGameListQuery> =\n\t\tuseCallback(\n\t\t\tasync (query: SlotGameListQuery, props?: FetchProps) => {\n\t\t\t\tconst page = query.page || 1;\n\t\t\t\tcancel();\n\t\t\t\treturn await fetchApi({\n\t\t\t\t\turl: generateSlotGameListUrl(query),\n\t\t\t\t\tdisableErrorHandler: true,\n\t\t\t\t\t...(props || {}),\n\t\t\t\t})\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tif (!response) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\t\tcount: null,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (page === 1) {\n\t\t\t\t\t\t\tpages.current = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpages.current[page] = normalizeSlots(\n\t\t\t\t\t\t\tresponse?.data?.list || response?.list || [],\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst data = [].concat(...pages.current);\n\t\t\t\t\t\tdata.shift();\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\tcount: response?.data?.length || response?.length || 0,\n\t\t\t\t\t\t};\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata: [],\n\t\t\t\t\t\t\tcount: 0,\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t},\n\t\t\t[cancel, fetchApi],\n\t\t);\n\n\treturn {\n\t\tcallback,\n\t};\n};\n","import { useCallback, useState } from 'react';\nimport { useFetchApi } from '@legacyApp/hooks/fetch/useFetchApi';\nimport { useTimeout } from '@legacyApp/hooks/app/useTimeout';\nimport { Slot, SlotSearchFetchData } from '../store/slots.types';\nimport { generateSearchUrl } from '../services/Slots.service';\nimport { normalizeSlots } from '../services/Slots.mapper';\n\nconst DEFAULT_LOADING = false;\nconst DEFAULT_RESULTS = [];\n\nexport const useFetchSearchTerm = () => {\n\tconst { fetch, cancel } = useFetchApi();\n\tconst { setTimeout } = useTimeout();\n\n\tconst [term_, setTerm] = useState('');\n\tconst [loading_, setLoading] = useState(DEFAULT_LOADING);\n\tconst [results, setResults] = useState<Slot[]>(DEFAULT_RESULTS);\n\n\tconst fetchSearch = useCallback(\n\t\tasync (term: string): Promise<SlotSearchFetchData> => {\n\t\t\tcancel();\n\t\t\treturn await fetch({\n\t\t\t\turl: generateSearchUrl(term),\n\t\t\t}).then((value) => value);\n\t\t},\n\t\t[cancel, fetch],\n\t);\n\n\tconst setTermCallback = useCallback(\n\t\t(term) => {\n\t\t\tsetTerm(term);\n\t\t\tif (term && term.length > 1) {\n\t\t\t\tsetLoading(true);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tfetchSearch(term).then((response) => {\n\t\t\t\t\t\tif (response?.error) {\n\t\t\t\t\t\t\treturn setLoading(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst slots = normalizeSlots(response?.data || []);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\t\tsetResults(slots);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t});\n\t\t\t\t}, 300);\n\t\t\t} else {\n\t\t\t\tsetResults(DEFAULT_RESULTS);\n\t\t\t}\n\t\t},\n\t\t[fetchSearch, setTimeout],\n\t);\n\n\treturn {\n\t\tloading: loading_,\n\t\tresults,\n\t\tsetTerm: setTermCallback,\n\t\tterm: term_,\n\t};\n};\n","import { Observable, of } from 'rxjs';\nimport { Mapper } from '@common/types/mapper.types';\nimport { Slot, SlotDTO } from '../store/slots.types';\n\nexport const mapSlotDTMtoSlot = (unmappedSlot: SlotDTO): Slot => {\n\treturn {\n\t\t...unmappedSlot,\n\t\tview_aspect_ratio: (eval(unmappedSlot.view_aspect_ratio) as number) || 1,\n\t};\n};\n\nexport const normalizeSlots = (unmappedSlots: SlotDTO[]): Slot[] => {\n\tif (!unmappedSlots.length) {\n\t\treturn [];\n\t}\n\n\treturn unmappedSlots.map(mapSlotDTMtoSlot);\n};\n\nexport class SlotsMapper implements Mapper<SlotDTO[], Slot[]> {\n\tprivate mapSlots(unmappedSlots: SlotDTO[]) {\n\t\treturn unmappedSlots.map(mapSlotDTMtoSlot);\n\t}\n\n\tpublic map(unmappedSlots: SlotDTO[]): Observable<Slot[]> {\n\t\tif (!unmappedSlots.length) {\n\t\t\treturn of([]);\n\t\t}\n\t\tconst mappedSlots: Slot[] = this.mapSlots(unmappedSlots);\n\t\treturn of(mappedSlots);\n\t}\n}\n","import { FC, PropsWithChildren } from 'react';\nimport styled from 'styled-components';\nimport { BadgeTypeMixin } from '@ui/badge/mixins/BadgeType.mixin';\nimport { BadgeSizeMixin } from '@ui/badge/mixins/BadgeSize.mixin';\nimport classnames from 'classnames';\nimport { Size } from '@uiTypes/Size';\n\nexport enum BadgeType {\n\tSUCCESS = 'success',\n\tRAINBOW = 'rainbow',\n\tNEUTRAL = 'neutral',\n\tORANGE = 'orange',\n}\n\nexport interface BadgeProps {\n\ttype?: BadgeType;\n\tsize?: Size;\n\tclassName?: string;\n}\n\nexport const Badge: FC<PropsWithChildren<BadgeProps>> = ({\n\tchildren,\n\ttype,\n\tsize,\n\tclassName,\n}) => {\n\treturn (\n\t\t<BadgeStyled\n\t\t\tclassName={classnames('text-style-sm-semibold', className)}\n\t\t\t$size={size}\n\t\t\t$type={type}\n\t\t>\n\t\t\t{children}\n\t\t</BadgeStyled>\n\t);\n};\n\nexport interface BadgeStyledProps {\n\t$type: BadgeType;\n\t$size?: Size;\n}\n\nexport const BadgeStyled = styled.div.attrs<BadgeStyledProps>((props) => ({\n\tclassName: props.$type,\n}))<BadgeStyledProps>`\n\talign-items: center;\n\tborder-radius: 20px;\n\tdisplay: inline-flex;\n\tjustify-content: center;\n\ttransition: 300ms;\n\twidth: auto;\n\n\t${BadgeTypeMixin};\n\t${BadgeSizeMixin};\n`;\n","import { BadgeStyledProps, BadgeType } from '@ui/badge';\nimport { css } from 'styled-components';\n\nexport const BadgeTypeMixin = (props: BadgeStyledProps) => {\n\tconst { $type } = props;\n\n\tif ($type === BadgeType.RAINBOW) {\n\t\treturn css`\n\t\t\tbackground: var(--color-misc-rainbow);\n\t\t\tcolor: var(--color-white);\n\t\t`;\n\t}\n\n\tif ($type === BadgeType.SUCCESS) {\n\t\treturn css`\n\t\t\tbackground-color: var(--color-other-success);\n\t\t\tcolor: var(--color-white);\n\t\t`;\n\t}\n\n\tif ($type === BadgeType.ORANGE) {\n\t\treturn css`\n\t\t\tbackground-color: var(--color-other-orange);\n\t\t\tcolor: var(--color-white);\n\t\t`;\n\t}\n\n\tif ($type === BadgeType.NEUTRAL) {\n\t\treturn css`\n\t\t\tbackground-color: var(--color-dark-300);\n\t\t\tcolor: var(--color-white);\n\t\t`;\n\t}\n\n\treturn css`\n\t\tbackground-color: var(--color-misc-secondary-button);\n\t\tcolor: var(--color-white);\n\t`;\n};\n","import { BadgeStyledProps } from '@ui/badge';\nimport { css } from 'styled-components';\nimport { Size } from '@uiTypes/Size';\n\nexport const BadgeSizeMixin = (props: BadgeStyledProps) => {\n\tconst { $size } = props;\n\n\tif ($size === Size.MEDIUM) {\n\t\treturn css`\n\t\t\tpadding: 0 6px;\n\t\t`;\n\t}\n\n\treturn css`\n\t\tpadding: 2px 8px;\n\t`;\n};\n"],"names":["StyledAspectRatioWrapper","styled","props","height","css","maxHeight","overflow","ratio","defaultProps","StyledAspectRatioInner","ArrowIcon","Svg","content","d","transform","fill","width","StyledLimboCounter","className","$screenWidth","fontSize","$length","$noTarget","getMobileFontSize","theme","media","maxWidthTablet","maxWidthVerySmall","PlinkoResultStyled","BetDetails","user","id","published_at","Icon","game","isMobile","useAppMobile","Icon_","name","BetDetailsStyled","BetDetailsIdStyled","style","color","trans","label","formatToFullDate","second","HiddenDataStyled","StyledBetModal","StyledGameSlider","media_v2","max_tablet_medium","GameImage","image_url","provider_slug","GameImageStyled","src","alt","slug","FallbackImage","microgaming","ProviderLogo","ProviderLogoStyled","fallbackImg","parseImageSrc","SlotDropsAndWinsWatermark","tags","length","indexOf","categories","findIndex","category","checkIsDropsAndWins","StyledSlotWaterMark","StyledSlotInfo","StyledSlotInfoName","SlotInfo","slotName","providerSlug","providerName","href","generateSlotProviderUrl","SlotTile","provider_name","rtp_value","view_aspect_ratio","provider_id","amount_usd","passHref","forceATag","generateUrl","PROVIDER_ADMIN_ID_FROM","ROUTE","StyledSlotTileContainer","StyledSlotTileFeatured","StyledSlotTileInfo","StyledSlotTileRTP","StyledImageWrapper","$isBadge","$src","StyledSlotsTileImage","type","BadgeType","noFormat","value","roundNumber","toFixed","balanceConverted","BalanceConvertedCurrencies","text","fonts","Regular","BadgeStyled","StyledNoResults","useFetchSearchDefault","callback","useFetchGames","gamesCallback","useCallback","orderBy","count","fromState","list","useGetDataArray","data","StyledSearchResultBox","boxNoHeight","useFetchSearchTerm","results","loading","setTerm","term","onChangeDelayed","noTranslatePlaceholder","placeholder","simpleTrans","undefined","TransNamespace","active","map","slot","game_id","operator_id","transSlots","SlotsSearchResult","dispatch","useAppDispatch","StyledResult","generateSlotUrl","onClick","closeModal","StyledResultLayout","StyledSlotsImage","StyledResultName","StyledResultProvider","useFetchApi","fetchApi","fetch","cancel","pages","useRef","query","page","url","generateSlotGameListUrl","disableErrorHandler","then","response","current","normalizeSlots","concat","shift","DEFAULT_RESULTS","setTimeout","useTimeout","useState","term_","loading_","setLoading","setResults","fetchSearch","generateSearchUrl","error","slots","mapSlotDTMtoSlot","unmappedSlot","eval","unmappedSlots","SlotsMapper","of","mappedSlots","this","mapSlots","Badge","children","size","classnames","$size","$type","RAINBOW","SUCCESS","ORANGE","NEUTRAL","Size"],"mappings":"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","debug_id":"fb36b8bc-b8a3-5d1c-aad8-38b877bc73da"}