{"version":3,"file":"static/js/e-sports.7c775a76.chunk.js","mappings":"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","sources":["components/EmptyResultBoxes/EmptyMatches/index.tsx","components/EmptyResultBoxes/style.ts","components/Loading/index.tsx","components/MatchCardInline/Skeleton.tsx","components/MatchCardInline/style.ts","components/Modal/CustomHeader/index.tsx","components/Modal/index.tsx","components/Popup/style.ts","components/Popup/index.tsx","components/Shared/MatchCardInlineUSA/__partials/Skeleton/index.tsx","components/UI/Skeletons/CompetitionSkeleton/USAlayout.tsx","components/UI/Skeletons/CompetitionSkeleton/index.tsx","components/Viewport/index.tsx","hooks/useCurrency.ts","hooks/usePopupScrollDisable.ts","hooks/useScrollToTop.ts","newcomponents/Shared/sportsbook/SportsbookGameListHeaderSkeleton/index.tsx","newcomponents/Shared/sportsbook/SportsbookGameListWrapper/components/SportSelect/index.tsx","newcomponents/Shared/sportsbook/SportsbookGameListWrapper/helpers.ts","newcomponents/Shared/sportsbook/SportsbookGameListWrapper/index.tsx","newcomponents/Shared/sportsbook/SportsbookGameListWrapper/skeleton.tsx","newcomponents/UI/Checkbox/index.tsx","newcomponents/UI/CustomModal/index.tsx","newcomponents/UI/HorizontalMenu/index.tsx","newcomponents/UI/Select/index.tsx","newelements/Sportsbook/Widgets/helpers/SportsbookWidgetsHeightWrapper.tsx","newcomponents/Shared/sportsbook/SportNFTsModal/SportNft.tsx","newcomponents/Shared/sportsbook/SportNFTsModal/index.tsx","newelements/Sportsbook/index.tsx","utils/generic/fetch-sports-configs-data.ts","newhooks/generic/useCustomHistory.ts","newhooks/generic/useEventbus.tsx","newhooks/generic/useUpdateEffect.ts","newhooks/generic/useIsFirstRender.ts","newhooks/sportsbook/useMarketTypes.ts","newhooks/sportsbook/useSportsbookMountPoint.ts","providers/SportDataProvider/index.tsx","services/afterSignIn.ts","services/sportsbook/notifications.ts","store/selectors/app-data.ts","store/selectors/betslip/configs.ts","store/selectors/betslip/features.ts","store/selectors/betslip/freeBet.ts","utils/betslip/freeBetHelpers.ts","store/selectors/betslip/openBets.ts","store/selectors/betslip/bets.ts","store/selectors/betslip/odds.ts","store/selectors/betslip/stake.ts","store/selectors/betslip/profitBoost.ts","store/selectors/betslip/calculations.ts","store/selectors/betslip/counterOffer.ts","store/selectors/betslip/index.ts","store/selectors/socket.ts","services/get-permissible-odds.ts","utils/betslip/odd-formats-helper.ts","utils/casino/casino.ts","utils/constants/account/country-codes.ts","utils/constants/app/curreny-list.ts","utils/constants/app/rtl.ts","utils/constants/betslip/index.ts","utils/constants/betslip/odd-formats.ts","utils/constants/sportsbook/esport.ts","utils/constants/sportsbook/sportsbook-widgets-ids.ts","utils/constants/sportsbook/usa-specific-sports.ts","utils/date-manipulation/date-format.ts","utils/generic/currency-format.ts","utils/helpers/validators.ts","utils/string-manipulation/capitalize.ts","../node_modules/copy-to-clipboard/index.js","../node_modules/react-infinite-scroll-component/node_modules/tslib/tslib.es6.js","../node_modules/react-infinite-scroll-component/node_modules/throttle-debounce/dist/index.esm.js","../node_modules/react-swipeable/es/index.js","../node_modules/toggle-selection/index.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/swiper-slide.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/get-browser.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/shared/process-lazy-preloader.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/onLoad.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/shared/create-element-if-not-defined.js","../node_modules/swiper/modules/navigation/navigation.js","../node_modules/swiper/shared/classes-to-selector.js","../node_modules/swiper/modules/pagination/pagination.js","../node_modules/swiper/modules/autoplay/autoplay.js","../node_modules/swiper/modules/grid/grid.js"],"sourcesContent":["import { FC, MutableRefObject, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { Result } from 'antd';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { capitalize } from 'utils/string-manipulation/capitalize';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Button } from 'newcomponents/UI/Button';\nimport { useContentHeight } from 'hooks/useContentHeight';\nimport { getMenuJsonData } from 'store/selectors/app-data';\nimport { ResultSubTitle, ResultTitle } from '../style';\nimport './index.less';\n\nconst EXTRA_HEIGHT = 20;\n\ntype Props = {\n isLive?: boolean;\n cover?: boolean;\n withLink?: boolean;\n isEvent?: boolean;\n calendar?: boolean;\n isESport?: boolean;\n useFullContentHeight?: boolean;\n noGameText?: string;\n};\n\nexport const EmptyMatches: FC = ({\n isLive,\n cover,\n withLink,\n isEvent,\n calendar,\n isESport,\n useFullContentHeight = false,\n noGameText\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const menuJsonData = useSelector(getMenuJsonData);\n const contentHeight = useContentHeight(false, EXTRA_HEIGHT);\n const resultRef = useRef() as MutableRefObject;\n\n const getType = (register: 'u' | 'l' | 'c' = 'c', reverse = false) => {\n const type = (reverse ? !isLive : isLive)\n ? 'live'\n : calendar\n ? 'calendar'\n : 'prematch';\n\n switch (register) {\n case 'u':\n return type.toUpperCase();\n case 'l':\n return type.toLowerCase();\n case 'c':\n return capitalize(type);\n }\n };\n\n useEffect(() => {\n if (isMobile()) {\n return;\n }\n\n const elem = resultRef.current.closest(\n `[class*=${isEvent ? 'EventsWrapper' : 'SBCol'}]`\n ) as HTMLElement;\n\n const prevPosition = elem?.style.position;\n const prevOverflow = elem?.style.overflow;\n\n if (elem) {\n elem.style.position = 'relative';\n elem.style.overflow = 'initial';\n }\n\n return () => {\n if (elem) {\n elem.style.position = prevPosition;\n elem.style.overflow = prevOverflow;\n }\n };\n }, [resultRef]);\n\n return (\n {t('sportsbook.noGame')}}\n {...(cover\n ? {\n style: {\n background: 'var(--v3-black-2)',\n position: isMobile() ? 'static' : 'absolute',\n top: 0,\n bottom: 0,\n width:\n isMobile() || !withLink || isEvent || isESport\n ? '100%'\n : '136%',\n zIndex: 11,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n right: 0,\n ...(isMobile() && { padding: 0 })\n }\n }\n : {\n style: {\n background: 'var(--v3-black-0)',\n ...(useFullContentHeight\n ? {\n minHeight: contentHeight,\n borderRadius: 6\n }\n : {})\n }\n })}\n icon={\n \n }\n subTitle={\n \n }\n {...(withLink &&\n !isEvent && {\n extra: (\n \n isESport\n ? history.replace(\n `${SpringConfigs.PAGE_URLS['esport']}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/AllESports?type=${getType('l', true)}` ||\n `${\n window.location.origin +\n menuJsonData.find(instance => {\n return (\n instance.type === 'esport' &&\n instance.category === 'esport'\n );\n })?.path\n }/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }/AllESports?type=${getType('l', true)}`\n )\n : (window.location.href =\n SpringConfigs.PAGE_URLS[getType('l', true)] ||\n window.location.origin +\n menuJsonData.find(instance => {\n return (\n instance.type === getType('l', true) ||\n instance.category === getType('l', true)\n );\n })?.path)\n }\n >\n {t(`emptyMessages.emptyMatches${getType()}Action`)}\n \n )\n })}\n />\n );\n};\n","import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const ResultTitle = styled.div`\n font-size: ${isMobile() ? '18px' : '24px'};\n font-weight: 600;\n line-height: 1.2;\n padding-bottom: ${isMobile() ? '8px' : '12px'};\n color: var(--v3-primary-5);\n`;\n\nexport const ResultSubTitle = styled.div`\n width: 308px;\n max-width: 100%;\n margin: 0 auto;\n text-align: center;\n font-size: 14px;\n font-weight: 400;\n color: var(--v3-black-65);\n line-height: 1.5;\n`;\n","import { ReactElement, useEffect, useLayoutEffect } from 'react';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport './index.less';\n\n/**\n * @prop onAfterLoad: You can use this event with lazy component to track loading state.\n * @prop onBeforeLoad: This is to capture loading end state\n */\ntype Props = {\n size?: EIconSize._16 | EIconSize._24 | EIconSize._32 | EIconSize._48;\n className?: string;\n onAfterLoad?: () => void;\n onBeforeLoad?: () => void;\n color?: string;\n};\n\nexport const Loading = ({\n size,\n className = '',\n onAfterLoad,\n onBeforeLoad,\n color = 'var(--v3-primary-color)'\n}: Props): ReactElement => {\n useLayoutEffect(() => onBeforeLoad?.(), []);\n\n useEffect(() => () => onAfterLoad?.(), []);\n\n return (\n
\n \n
\n );\n};\n","import { ReactElement } from 'react';\nimport { ColSizes, ROW_GUTTER } from 'utils/constants/app/ui';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { Action, Header, Title, Wrapper } from './style';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\n\nconst MatchCardInlineSkeletonCount = 3;\n\ntype TMatchCardInlineSkeletonProps = {\n hideOdds?: boolean;\n selectedGames?: boolean;\n isBoostedOdd?: boolean;\n};\n\nexport const MatchCardInlineSkeleton = ({\n hideOdds,\n selectedGames,\n isBoostedOdd\n}: TMatchCardInlineSkeletonProps): ReactElement => {\n return (\n
\n
\n \n <Skeleton\n title={{ style: { width: 100, margin: 0, height: 10 } }}\n paragraph={false}\n active\n />\n \n \n \n \n
\n \n \n {hideOdds ? null : (\n \n )}\n\n {hideOdds ? null : (\n \n {createArray(MatchCardInlineSkeletonCount).map(key => (\n \n \n \n ))}\n \n )}\n \n
\n );\n};\n","import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const Team = styled.div`\n display: flex;\n line-height: 1;\n align-items: center;\n padding-bottom: 8px;\n\n &:first-child:last-child {\n padding-bottom: 0;\n }\n`;\n\nexport const Title = styled.div<{\n bolt?: boolean;\n selectedGames?: boolean;\n whiteText?: boolean;\n $justify?: boolean;\n}>`\n color: var(--v3-${props => (props.whiteText ? 'white' : 'text-color')});\n ${props => props.bolt && 'font-weight: 600;'}\n ${props => props.$justify && 'justify-content: space-between;'}\n ${props =>\n props.selectedGames\n ? `\n justify-content: flex-end;\n `\n : `\n flex: 1;\n `}\n \n font-size: 12px;\n line-height: 16px;\n display: flex;\n align-items: center;\n`;\n\nexport const Header = styled.div<{\n selectedGames?: boolean;\n calendar?: boolean;\n whiteText?: boolean;\n}>`\n ${props =>\n props.selectedGames\n ? `\n padding: 0;\n margin: 0 12px;\n height: 44px;`\n : ` \n padding: 0 8px;\n margin: 0;\n height: ${props.calendar ? '36' : '32'}px;\n `}\n\n display: flex;\n align-items: center;\n border-bottom: 1px solid\n ${props =>\n props.whiteText ? 'var(--v3-black-15-fixed)' : 'var(--v3-black-4)'};\n\n .calendar-left {\n display: flex;\n align-items: center;\n\n &-icon {\n margin-right: 7px;\n }\n }\n\n .calendar-right {\n display: flex;\n gap: 8px;\n align-items: center;\n color: var(--v3-black-45);\n margin-left: 8px;\n\n &-time {\n font-weight: 600;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.1px;\n color: var(--v3-text-color);\n }\n }\n`;\n\nexport const Wrapper = styled.div<{\n selectedGames?: boolean;\n calendar?: boolean;\n isBoostedOdd?: boolean;\n}>`\n margin-bottom: ${props =>\n props.calendar ? '4' : props.isBoostedOdd ? '0' : '2'}px;\n\n ${props =>\n props.selectedGames\n ? `padding: 8px 12px 12px 12px;\n `\n : ` padding: 8px;\n `}\n`;\n\nexport const Container = styled.div<{\n active: boolean;\n selectedGames?: boolean;\n bgImg?: string;\n calendar?: boolean;\n isLive?: boolean;\n}>`\n position: relative;\n ${props =>\n props.calendar\n ? `border-radius: 6px;\n box-shadow: var(--v3-shadow-strong);\n `\n : ''}\n cursor: pointer;\n background-color: var(--v3-black-0);\n ${props =>\n props.selectedGames && props.bgImg\n ? `background-image: url(${props.bgImg});\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n `\n : ''}\n &:last-child {\n ${Wrapper} {\n margin-bottom: unset;\n }\n }\n ${props =>\n !isMobile() &&\n ` \n ${\n props.active\n ? `\n border-left: 4px solid var(--v3-primary-6); \n `\n : ''\n }\n `}\n`;\n\nexport const Action = styled.div`\n color: var(--v3-primary-4);\n margin-left: 4px;\n font-size: 16px;\n display: flex;\n align-items: center;\n`;\n","import { ReactElement } from 'react';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport './index.less';\n\ntype TCustomHeaderProps = {\n title: string;\n iconLib: string;\n iconName: string;\n iconTheme: string;\n onCancel?: () => void;\n};\n\nexport const CustomHeader = ({\n title,\n iconLib,\n iconName,\n iconTheme,\n onCancel\n}: TCustomHeaderProps): ReactElement => {\n return (\n
\n
\n \n {title}\n
\n\n \n
\n );\n};\n","import React, {\n CSSProperties,\n ReactElement,\n useEffect,\n useMemo,\n useRef\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ModalFuncProps } from 'antd';\nimport { v4 as uuidv4 } from 'uuid';\nimport { EIconSize, ModalPadding, ModalWidth } from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport { CustomHeader } from './CustomHeader';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { CustomModal } from 'newcomponents/UI/CustomModal';\nimport { usePopupScrollDisable } from 'hooks/usePopupScrollDisable';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { setOpenedModals } from 'store/actions/app-data';\nimport { getOpenedModals } from 'store/selectors/app-data';\nimport { getBetslipOpen } from 'store/selectors/betslip';\nimport './index.less';\n\ntype Props = ModalFuncProps & {\n title?: string | React.ReactNode | null;\n visible: boolean;\n closable?: boolean;\n onCancel?: (arg0: React.UIEvent) => void;\n image?:\n | {\n lib: string;\n name: string;\n theme: string;\n size?: number;\n color?: string;\n }\n | false;\n children: React.ReactNode;\n closeIcon?: React.ReactNode;\n maxWidth?: number | string;\n align?: 'left' | 'center' | 'right';\n maskClosable?: boolean;\n padding?: number;\n wrapperPadding?: number;\n width?: number | string;\n centered?: boolean;\n bodyStyle?: Record;\n style?: Record;\n maskStyle?: Record;\n zIndex?: number;\n contentPadding?: number | string;\n className?: string;\n renderInBody?: boolean;\n preventScrollDisable?: boolean;\n hideBorder?: boolean;\n destroyOnClose?: boolean;\n getContainer?: string | false;\n wrapperContainerPadding?: string;\n placement?: 'top' | 'bottom' | 'left' | 'right';\n fullPage?: boolean;\n borderRadius?: string;\n footer?: ReactElement | null;\n closeIconStyle?: CSSProperties;\n fixBody?: boolean;\n renderCloseIconInMask?: boolean;\n customHeader?: {\n title: string;\n iconLib: string;\n iconName: string;\n iconTheme: string;\n onClose: () => void;\n };\n};\n\nexport const Modal = ({\n title,\n image,\n children,\n zIndex,\n align = 'left',\n maxWidth = ModalWidth.MAX_1272,\n padding,\n wrapperPadding,\n bodyStyle,\n style,\n closeIcon,\n visible,\n preventScrollDisable = false,\n hideBorder,\n destroyOnClose = true,\n fixBody = true,\n customHeader,\n contentPadding,\n wrapClassName,\n getContainer,\n wrapperContainerPadding,\n placement,\n fullPage,\n footer,\n maskStyle,\n borderRadius,\n closeIconStyle,\n ...rest\n}: Props): ReactElement => {\n const dispatch = useDispatch();\n const openedModals = useSelector(getOpenedModals);\n const open = useSelector(getBetslipOpen);\n const modalId = useRef(uuidv4());\n const { accounts } = useSearchParams();\n\n const _preventScrollDisable = useMemo(() => {\n return (\n !!accounts ||\n openedModals.size > 0 ||\n (open && isMobile()) ||\n preventScrollDisable\n );\n }, [accounts, openedModals.size, open, preventScrollDisable]);\n\n usePopupScrollDisable(visible, _preventScrollDisable, fixBody);\n\n const updateOpenedModal = (updateType: 'add' | 'delete') => {\n if (openedModals.size) {\n const openedModalsCopy = new Set(openedModals);\n openedModalsCopy[updateType](modalId.current);\n dispatch(setOpenedModals(openedModalsCopy));\n }\n };\n\n useEffect(() => {\n if (visible) {\n updateOpenedModal('add');\n\n return () => {\n updateOpenedModal('delete');\n };\n }\n }, [visible]);\n\n return (\n \n )\n }\n visible={visible}\n closeIconStyle={closeIconStyle}\n >\n {customHeader && (\n {\n if (customHeader.onClose) {\n customHeader.onClose();\n }\n }}\n />\n )}\n {image && (\n
\n \n
\n )}\n {!!title &&
{title}
}\n
{children}
\n \n );\n};\n\nexport const ModalButtons = ({\n direction = 'row',\n children,\n className,\n ...props\n}: {\n direction?: 'row' | 'column';\n children: React.ReactNode;\n className?: string;\n}): ReactElement => {\n return (\n \n {children}\n \n );\n};\n","import styled, { keyframes } from 'styled-components';\n\nconst animationTypeOpen: Record = {\n toLeft: keyframes`{\n 0% {transform: translateX(100%);}\n 100% {transform: translateX(0);}\n }`,\n toRight: keyframes`{\n 0% {transform: translateX(-100%);}\n 100% {transform: translateX(0);}\n }`,\n toTop: keyframes`{\n 0% {transform: translateY(100%);}\n 100% {transform: translateY(0);}\n }`,\n toBottom: keyframes`{\n 0% {transform: translateY(-100%);}\n 100% {transform: translateY(0);}\n }`\n};\n\nconst animationTypeClose: Record = {\n toLeft: keyframes`{\n 0% {transform: translateX(0);}\n 100% {transform: translateX(100%);}\n }`,\n toRight: keyframes`{\n 0% {transform: translateX(0);}\n 100% {transform: translateX(-100%);}\n }`,\n toTop: keyframes`{\n 0% {transform: translateY(0);}\n 100% {transform: translateY(100%);}\n }`,\n toBottom: keyframes`{\n 0% {transform: translateY(0);}\n 100% {transform: translateY(-100%);}\n }`\n};\n\nexport const CustomMask = styled.div<{ maskBackground?: string }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 100%;\n background: ${props =>\n props.maskBackground ? props.maskBackground : 'rgba(0,0,0,0.3)'};\n z-index: 1;\n`;\n\nexport const Container = styled.div<{\n show: boolean;\n animationTime?: string;\n $maskPosTop?: string;\n}>`\n position: fixed;\n height: -webkit-fill-available;\n height: -moz-available;\n height: fill-available;\n top: ${props => (props.$maskPosTop ? props.$maskPosTop : 0)};\n left: 0;\n right: 0;\n opacity: ${props => (props.show ? 1 : 0)};\n z-index: 11;\n pointer-events: ${props => (props.show ? 'all' : 'none')};\n overflow: hidden;\n transition: opacity\n ${props => (props.animationTime ? props.animationTime : '0.3s')};\n\n ${CustomMask} {\n top: ${props => (props.$maskPosTop ? props.$maskPosTop : 0)};\n }\n`;\nexport const CustomData = styled.div<{\n animationType: string;\n animationTime?: string;\n posTop?: string;\n posBottom?: string;\n posLeft?: string;\n posRight?: string;\n}>`\n position: absolute;\n height: 100%;\n bottom: ${props => (props.posBottom ? props.posBottom : 0)};\n top: ${props => (props.posTop ? props.posTop : 0)};\n left: ${props => (props.posLeft ? props.posLeft : 0)};\n right: ${props => (props.posRight ? props.posRight : 0)};\n display: flex;\n flex-direction: column;\n z-index: 3;\n background: var(--v3-black-0);\n\n &.customPopup--open {\n animation: ${props => animationTypeOpen[props.animationType]}\n ${props => (props.animationTime ? props.animationTime : '0.3s')} ease\n forwards;\n }\n\n &.customPopup--close {\n animation: ${props => animationTypeClose[props.animationType]}\n ${props => (props.animationTime ? props.animationTime : '0.3s')} ease\n forwards;\n }\n`;\n","import {\n CSSProperties,\n memo,\n ReactElement,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef\n} from 'react';\nimport cc from 'classcat';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { Container, CustomData, CustomMask } from './style';\nimport { Portal } from 'components/Shared/Portal';\n\ntype Props = {\n open: boolean;\n className?: string;\n children: any;\n onMaskClick?: (arg: boolean) => void;\n mask?: boolean;\n maskBackground?: string;\n maskPosTop?: {\n usePosTop?: boolean;\n posTop?: string;\n };\n animationType?: 'toRight' | 'toLeft' | 'toTop' | 'toBottom' | 'none';\n animationTime?: string;\n posTop?: string;\n posBottom?: string;\n posLeft?: string;\n posRight?: string;\n style?: CSSProperties;\n onBeforeOpen?: () => void;\n onAnimationEnd?: (value?: boolean) => void;\n initiallyLoaded?: boolean;\n};\n\nexport const Popup = memo(\n ({\n open,\n children,\n onMaskClick,\n mask,\n animationType,\n animationTime,\n className,\n posBottom,\n posLeft,\n posRight,\n posTop,\n maskPosTop,\n maskBackground,\n style = {},\n onBeforeOpen,\n onAnimationEnd,\n initiallyLoaded = false\n }: Props): ReactElement | null => {\n const loaded = useRef(initiallyLoaded);\n\n const animationTypeFromParams = useMemo(() => {\n if (animationType) {\n return animationType;\n }\n\n return 'toLeft';\n }, [animationType]);\n\n useLayoutEffect(() => {\n onBeforeOpen?.();\n }, []);\n\n useEffect(() => {\n if (open) {\n loaded.current = true;\n }\n }, [open]);\n\n if (SpringConfigs.MOCKED_DATA) {\n return null;\n }\n\n return (\n \n \n {mask && (\n onMaskClick?.(true)}\n />\n )}\n {\n onAnimationEnd?.(open);\n }}\n >\n {(open || loaded.current) && children}\n \n \n \n );\n }\n);\n","import { ReactElement, useEffect, useState } from 'react';\nimport cc from 'classcat';\nimport {\n TWO_WAY_OUTCOME_SPORTS,\n USA_SPEC_SPORTS\n} from 'utils/constants/sportsbook/usa-specific-sports';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport '../../index.less';\n\ntype TMatchCardInlineUSASkeletonProps = {\n sportAlias?: string;\n hideMoreWages?: boolean;\n detailedTeamsInfo?: boolean;\n};\n\nconst matchCardInlineUSASkeletonDefaultProps = {\n sportAlias: undefined\n} as TMatchCardInlineUSASkeletonProps;\n\nconst MATCH_CARD_INLINE_USA_LENGTH = 3;\n\nexport const MatchCardInlineUSASkeleton = ({\n sportAlias,\n hideMoreWages,\n detailedTeamsInfo\n}: TMatchCardInlineUSASkeletonProps = matchCardInlineUSASkeletonDefaultProps): ReactElement => {\n const configs = useSportsbookConfigs();\n const isLive = configs.pageType === ESportsbookPageTypes.live;\n\n const [isClassic, setIsClassic] = useState(\n USA_SPEC_SPORTS.includes(sportAlias || '')\n );\n\n const [isClassicColumn, setIsClassicColumn] = useState(\n TWO_WAY_OUTCOME_SPORTS.includes(sportAlias || '')\n );\n\n useEffect(() => {\n setIsClassic(USA_SPEC_SPORTS.includes(sportAlias || ''));\n setIsClassicColumn(TWO_WAY_OUTCOME_SPORTS.includes(sportAlias || ''));\n }, [sportAlias]);\n\n return (\n <>\n \n
\n \n {detailedTeamsInfo && (\n \n )}\n \n
\n
\n
\n {detailedTeamsInfo && (\n \n )}\n \n
\n
\n {detailedTeamsInfo && (\n \n )}\n \n
\n
\n \n
\n
\n {createArray(\n isClassicColumn ? 2 : MATCH_CARD_INLINE_USA_LENGTH\n ).map(event => (\n \n
\n \n
\n \n {isClassic && (\n \n )}\n
\n ))}\n
\n \n \n {!hideMoreWages && (\n \n {detailedTeamsInfo && (\n \n )}\n \n \n )}\n \n );\n};\n","import { ReactElement } from 'react';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype Props = {\n sportAlias?: string;\n showTitle?: boolean;\n detailedTeamsInfo?: boolean;\n};\n\nexport const USALayoutSkeleton = ({\n sportAlias,\n showTitle = true,\n detailedTeamsInfo\n}: Props): ReactElement => {\n return (\n
\n {showTitle && (\n
\n
\n \n
\n {!detailedTeamsInfo && (\n \n )}\n
\n )}\n \n
\n );\n};\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport { COMPETITION_SKELETON_DEFAULT_LENGTH } from 'utils/constants/app/magic-numbers-app';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport { USALayoutSkeleton } from './USAlayout';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport './index.less';\n\ntype Props = {\n sportAlias?: string;\n category?: ENotRealSports | string;\n count?: number;\n includeCollapse?: boolean;\n hideMargin?: boolean;\n className?: string;\n};\n\nexport const CompetitionSkeleton = ({\n category,\n sportAlias,\n count,\n includeCollapse,\n hideMargin,\n className\n}: Props): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const isLive = configs.pageType === ESportsbookPageTypes.live;\n const length = count ? count : COMPETITION_SKELETON_DEFAULT_LENGTH;\n\n return (\n (\n \n }\n >\n {children || <> }\n \n )}\n >\n \n {createArray(length).map(key =>\n (SpringConfigs.IS_AMERICAN_LAYOUT || +configs.spbLayoutType === 1) &&\n isMobile() ? (\n \n ) : (\n \n )\n )}\n \n \n );\n};\n","import { ComponentType, ReactElement, Suspense } from 'react';\nimport { isMobile } from 'utils/is-mobile';\n\ntype Props = {\n mobile: ComponentType;\n desktop: ComponentType;\n innerProps?: object;\n fallback?: ReactElement;\n conditions?: {\n mobile?: boolean;\n desktop?: boolean;\n };\n forceViewport?: 'mobile' | 'desktop';\n};\n\nconst defaultConditions = {\n mobile: true,\n desktop: true\n};\n\nexport const Viewport = function (props: Props): ReactElement {\n const MobileView = props.mobile;\n const DesktopView = props.desktop;\n const { mobile: mobileCondition = true, desktop: desktopCondition = true } =\n props.conditions || defaultConditions;\n\n const ForcedLayout = props.forceViewport ? props[props.forceViewport] : null;\n const forcedLayoutConditions = {\n mobile: props.forceViewport !== 'desktop',\n desktop: props.forceViewport !== 'mobile'\n };\n\n const forcedLayoutCondition = props.forceViewport\n ? forcedLayoutConditions[props.forceViewport]\n : true;\n\n return (\n <>\n {ForcedLayout && forcedLayoutCondition && (\n \n \n \n )}\n \n {!ForcedLayout\n ? isMobile()\n ? mobileCondition && \n : desktopCondition && \n : null}\n \n \n );\n};\n","import { useLayoutEffect, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { USDT_CUR, usdtCurrency } from 'utils/account/account-params';\nimport { currencyFormat, formatPlacement } from 'utils/generic/currency-format';\nimport { getPartnerConfigs } from 'store/selectors/socket';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\n\nexport type TUseCurrencyReturnType = {\n currency: string;\n currencyId: string;\n placement: string;\n formatAmount: (\n amount: string | number,\n checkCurrencyContent?: boolean\n ) => string;\n};\n\nexport const useCurrency = (): TUseCurrencyReturnType => {\n const [currency, setCurrency] = useState('');\n const { currency: userCurrency } = useSelector(getUser);\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const partnerConfig = useSelector(getPartnerConfigs);\n\n useLayoutEffect(() => {\n if (isLoggedIn && userCurrency) {\n setCurrency(userCurrency);\n } else {\n if (partnerConfig?.currency) {\n setCurrency(partnerConfig.currency);\n }\n }\n }, [partnerConfig, isLoggedIn, userCurrency]);\n\n return useMemo(() => {\n const currencyData = currencyFormat(currency);\n const currencyDataName =\n currencyData.currency === usdtCurrency ? USDT_CUR : currencyData.currency;\n\n return {\n currency: currencyDataName,\n currencyId: currency,\n placement: currencyData.placement,\n formatAmount: formatPlacement(currencyDataName, currencyData.placement)\n };\n }, [currency]);\n};\n","import { useEffect, useRef } from 'react';\nimport { timeoutDuration } from 'utils/constants/dateInfo/time-numbers';\n\nexport const usePopupScrollDisable = (\n condition = true,\n preventScrollDisable?: boolean,\n fixBody = true\n): void => {\n const scrollPositionRef = useRef(null);\n useEffect(() => {\n if (preventScrollDisable) {\n return;\n }\n\n const timer = setTimeout(() => {\n if (condition && document.body.style.overflow !== 'hidden') {\n scrollPositionRef.current = window.scrollY;\n document.body.style.overflow = 'hidden';\n document.body.style.touchAction = 'none';\n\n if (fixBody) {\n document.documentElement.style.overflow = 'hidden';\n document.body.style.position = 'fixed';\n }\n }\n }, timeoutDuration.DURATION_200);\n\n return () => {\n if (preventScrollDisable) {\n return;\n }\n\n clearTimeout(timer);\n document.body.style.removeProperty('position');\n document.body.style.removeProperty('touch-action');\n\n if (condition) {\n const setOverflowInterval = setInterval(() => {\n document.body.style.overflow = '';\n document.documentElement.style.overflow = '';\n clearInterval(setOverflowInterval);\n }, timeoutDuration.DURATION_100);\n\n scrollPositionRef.current &&\n window.scrollTo(0, scrollPositionRef.current);\n }\n };\n }, [condition]);\n};\n","import { useEffect } from 'react';\n\nexport const useScrollToTop = (id?: string, deps?: any[]): void => {\n useEffect(() => {\n const container = id && document.getElementById(id);\n\n if (container) {\n container.scroll({ top: 0, behavior: 'auto' });\n }\n }, deps);\n};\n","import { memo, ReactElement } from 'react';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport './index.less';\n\ntype TProps = {\n isLive?: boolean;\n withBack?: boolean;\n showMarketFilterSkeleton?: boolean;\n applyAdditionalMargin?: boolean;\n showSportNameWithFavorite?: boolean;\n};\n\nexport const SportsbookGameListHeaderSkeleton = memo(\n ({\n isLive = false,\n withBack = false,\n showMarketFilterSkeleton = true,\n applyAdditionalMargin = false,\n showSportNameWithFavorite\n }: TProps): ReactElement => {\n const configs = useSportsbookConfigs();\n const { params } = useSbRouteMatch();\n\n return (\n
\n {showSportNameWithFavorite && (\n
\n
\n \n \n
\n
\n )}\n {isMobile() && withBack ? (\n
\n
\n \n \n
\n
\n \n \n
\n
\n ) : null}\n\n \n {showMarketFilterSkeleton && (\n \n \n \n )}\n\n
\n {showMarketFilterSkeleton && (isMobile() ? !isLive : false) && (\n \n \n \n )}\n\n {(!isMobile() || isLive) && (\n <>\n \n \n \n \n \n \n \n )}\n
\n
\n\n {isMobile() && !isLive && !withBack && (\n
\n
\n
\n {!params.competition ? (\n \n ) : (\n
\n \n \n \n
\n )}\n
\n
\n
\n \n \n \n \n \n \n
\n
\n )}\n \n );\n }\n);\n","import { memo, ReactElement, useCallback, useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { sports as SPORTS_WHAT } from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { EPageTypes } from 'interfaces/sportsbook';\nimport {\n Sport,\n SportOnly,\n Sport as TSport\n} from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Option, Select } from 'newcomponents/UI/Select';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TProps = {\n pageType: EPageTypes.prematch | EPageTypes.live;\n extraClass?: string;\n groupSports?: (SportOnly | Sport)[] | undefined;\n drawAlternativeSkeleton?: boolean;\n openDirectionBottom?: boolean;\n};\n\nexport const SportSelect = memo(\n ({\n pageType,\n extraClass,\n groupSports,\n drawAlternativeSkeleton,\n openDirectionBottom\n }: TProps): ReactElement => {\n const [sports, setSports] = useState(\n null\n );\n\n const location = useLocation();\n const history = useHistory();\n\n const { mounted } = useMounted();\n const { params } = useSbRouteMatch();\n\n const handleSelect = useCallback(\n (sportAlias: string) => {\n if (!params.sport) {\n const { pathname } = location;\n\n const separator = pathname[pathname.length - 1] === '/' ? '' : '/';\n\n history.push(\n `${pathname}${separator}${sportAlias}${window.location.search}`\n );\n\n return;\n }\n\n if (params.sport !== sportAlias) {\n history.push(\n `${location.pathname.replace(params.sport, sportAlias)}${\n window.location.search\n }`\n );\n }\n },\n [location.pathname, params.sport]\n );\n\n useEffect(() => {\n if (groupSports) {\n setSports(groupSports);\n\n return;\n }\n\n const rid = RidGenerator.gForSubscribe();\n\n executeCommand(\n rid,\n { ...SPORTS_WHAT, game: '@count' },\n {\n game: {\n start_ts: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().endOf('day').unix()\n }\n },\n market: {\n display_key: 'WINNER',\n display_sub_key: 'MATCH'\n },\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(pageType)\n }\n }\n },\n (data: { sport: Record }) => {\n if (mounted.current) {\n const sports = sortByOrder(Object.values(data?.sport || {}));\n\n setSports(sports);\n\n if (!params.sport) {\n handleSelect(sports[0].alias);\n }\n }\n },\n true\n );\n\n return () => {\n unsubscribeCommand(rid);\n };\n }, []);\n\n return (\n
\n {!sports || !params ? (\n drawAlternativeSkeleton ? (\n \n \n \n \n\n
\n \n \n \n
\n
\n ) : (\n \n )\n ) : (\n \n }\n value={params.sport}\n className=\"sport-select-wrapper__select\"\n dropdownClassName=\"sport-select-wrapper__dropdown\"\n getPopupContainer={trigger => trigger.parentNode}\n onChange={sportAlias => handleSelect(sportAlias)}\n filterOption={(input, option) =>\n `${option?.children}`.toLowerCase().includes(input.toLowerCase())\n }\n openDirectionBottom={openDirectionBottom}\n >\n {\n sports.map(({ id, alias, name, game }) => {\n return (\n \n );\n }) as ReactElement[]\n }\n \n )}\n \n );\n }\n);\n","import { marketTypes } from 'utils/constants/sportsbook/data-fields';\nimport { WINNER_MARKETS } from 'utils/constants/sportsbook/grouped-market-names';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport { EPageTypes } from 'interfaces/sportsbook';\n\ntype TWhereOptions = {\n pageType: EPageTypes;\n sportAlias: string | { '@in': string[] };\n regionAlias: string;\n competitionId: number;\n marketType: string | null;\n timestamp: Record;\n favoriteTeamId: number | null;\n tournamentSportIds: (string | number | null)[] | null;\n isUsaLayout?: boolean;\n};\n\ntype TWhereResult = {\n sport?: {\n alias?: string;\n type?: Record;\n id?: {\n '@in': (number | string | null)[];\n };\n };\n region?: {\n alias: string;\n };\n competition?: {\n id: number;\n };\n game: Record;\n market: Record;\n};\n\ntype TWhatOptions = {\n pageType: EPageTypes;\n};\n\ntype TWhatResult = Record;\n\nconst LIVE_GAME_WHAT = [\n 'id',\n 'type',\n 'team1_name',\n 'team2_name',\n 'team1_id',\n 'team2_id',\n 'order',\n 'start_ts',\n 'markets_count',\n 'is_blocked',\n 'info',\n 'tv_type',\n 'exclude_ids',\n 'show_type',\n 'text_info',\n 'add_info_name',\n 'tv_info',\n 'is_stat_available',\n 'video_id',\n 'video_id2',\n 'video_id3',\n 'sportcast_id',\n 'match_length',\n 'live_events',\n 'game_number'\n];\n\nconst PREMATCH_GAME_WHAT = [\n 'id',\n 'team1_name',\n 'team2_name',\n 'team1_id',\n 'team2_id',\n 'order',\n 'start_ts',\n 'markets_count',\n 'is_blocked',\n 'show_type',\n 'sportcast_id',\n 'is_stat_available',\n 'game_number'\n];\n\nexport const getWhat = ({ pageType }: TWhatOptions): TWhatResult => ({\n sport: ['id', 'name', 'alias'],\n region: ['id', 'name', 'alias', 'order'],\n competition: ['id', 'name', 'order'],\n game: [pageType === EPageTypes.live ? LIVE_GAME_WHAT : PREMATCH_GAME_WHAT],\n market: [\n 'name',\n 'order',\n 'type',\n 'id',\n 'base',\n 'col_count',\n 'main_order',\n 'express_id',\n ...(pageType === EPageTypes.prematch ? ['prematch_express_id'] : [])\n ],\n event: ['id', 'name', 'price', 'base', 'order', 'type_1']\n});\n\nexport const getWhere = ({\n pageType,\n sportAlias,\n regionAlias,\n competitionId,\n marketType,\n timestamp,\n favoriteTeamId,\n tournamentSportIds,\n isUsaLayout\n}: TWhereOptions): TWhereResult => {\n if (SpringConfigs.MOCKED_DATA) {\n return {\n sport: { alias: 'Soccer' }\n } as TWhereResult;\n }\n\n const isLive = pageType === EPageTypes.live;\n\n const result: TWhereResult = {\n game: isLive\n ? { type: 1 }\n : {\n '@or': favoriteTeamId\n ? [\n {\n team1_id: favoriteTeamId\n },\n {\n team2_id: favoriteTeamId\n }\n ]\n : [{ type: { '@in': [0, 2] } }, { visible_in_prematch: 1 }]\n },\n market: marketType\n ? { type: marketType }\n : {\n '@or': [\n {\n type: {\n '@in': isLive ? marketTypes : WINNER_MARKETS\n }\n },\n { display_key: 'OUTRIGHT' }\n ]\n }\n };\n\n if (isUsaLayout) {\n result.market = {\n display_key: {\n '@in': ['WINNER', 'HANDICAP', 'TOTALS']\n },\n display_sub_key: {\n '@in': ['MATCH']\n }\n };\n }\n\n if (!NOT_REAL_SPORTS.includes(sportAlias as string)) {\n result.sport = {\n alias: sportAlias as string,\n type: {\n '@in': getLivePreMatchSportTypes(pageType)\n }\n };\n }\n\n if (pageType === EPageTypes.prematch) {\n if (regionAlias) {\n result.region = {\n alias: regionAlias\n };\n }\n\n if (competitionId) {\n result.competition = {\n id: competitionId\n };\n }\n\n if (\n Object.keys(timestamp || {}).length &&\n !NOT_REAL_SPORTS.includes(sportAlias as string)\n ) {\n result.game.start_ts = timestamp;\n }\n\n if (tournamentSportIds) {\n result.sport = {\n ...(result.sport || {}),\n id: {\n '@in': tournamentSportIds\n }\n };\n }\n }\n\n return result;\n};\n","import {\n memo,\n ReactElement,\n Suspense,\n useCallback,\n useEffect,\n useMemo\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n createTodayEventsWhere,\n gameSportcastId,\n gameSportcastIdWhere\n} from 'utils/constants/sportsbook/data-fields';\nimport { ALL_ESPORT_SPORTS } from 'utils/constants/sportsbook/esport';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport {\n ELayoutTypes,\n EPageTypes,\n TMarketCountResponse\n} from 'interfaces/sportsbook';\nimport {\n ESportsbookLayoutTypes,\n ESportsbookPageTypes\n} from 'interfaces/sportsbook-configs';\nimport {\n IMenuGroupWithSports,\n Sport as TSport\n} from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { SportSelect } from './components/SportSelect';\nimport { getWhat, getWhere } from './helpers';\nimport { GameListWrapperSkeleton } from 'newcomponents/Shared/sportsbook/SportsbookGameListWrapper/skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useMarketTypes } from 'newhooks/sportsbook/useMarketTypes';\nimport {\n setClickFromFavorites,\n setMarketType,\n setMarketTypes\n} from 'store/actions';\nimport {\n setGames,\n setMarketsCount,\n setShowNoItemWrapper\n} from 'store/actions/new-sportsbook';\nimport {\n getGames,\n getMarketsCount,\n getRegionCompData,\n getSportGroupingsData\n} from 'store/selectors/new-sportsbook';\nimport {\n getClickFromFavorites,\n getTimeFiltersData,\n getTournamentSportIds\n} from 'store/selectors/sport-data';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nconst { Live } = lazy(\n () =>\n import(/* webpackChunkName: \"mobile-live-game-list\" */ './__partials/Live')\n);\n\nconst { Prematch } = lazy(\n () =>\n import(\n /* webpackChunkName: \"mobile-prematch-game-list\" */ './__partials/Prematch'\n )\n);\n\nconst { Today } = lazy(\n () =>\n import(\n /* webpackChunkName: \"mobile-today-game-list\" */ './__partials/Today'\n )\n);\n\nconst { Team } = lazy(\n () =>\n import(/* webpackChunkName: \"mobile-team-game-list\" */ './__partials/Team')\n);\n\ntype TSportResponse = Record;\n\ntype TMarketsCount = {\n [key: string]: number;\n};\n\ntype TProps = {\n pageType: EPageTypes;\n showHeader?: boolean;\n};\n\nconst pages = {\n [EPageTypes.prematch]: Prematch,\n [EPageTypes.live]: Live,\n [EPageTypes.today]: Today,\n [EPageTypes.team]: Team\n};\n\nexport const SportsbookGameListWrapper = memo(\n ({ pageType, showHeader }: TProps): ReactElement => {\n const Page = useMemo(() => pages[pageType], [pageType]);\n\n const { params } = useSbRouteMatch();\n const { mounted } = useMounted();\n\n const configs = useSportsbookConfigs();\n const layoutType = useMemo(() => {\n if (\n SpringConfigs.IS_AMERICAN_LAYOUT ||\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN\n ) {\n return ELayoutTypes.usa;\n }\n\n return ELayoutTypes.classic;\n }, []);\n\n const dispatch = useDispatch();\n\n const timestamp = useSelector(getTimeFiltersData);\n const tournamentSportIds = useSelector(getTournamentSportIds);\n const clickFromFavorites = useSelector(getClickFromFavorites);\n\n const groupingData = useSelector(getSportGroupingsData)[\n pageType === EPageTypes.live ? EPageTypes.live : EPageTypes.prematch\n ];\n\n const isPrematch = pageType === EPageTypes.prematch;\n\n const getterParam = `${\n isPrematch ? params.competition : params.sport\n }_${pageType}`;\n\n // if the page type is \"team\" we set the favorite team id as a region id\n const favoriteTeamId =\n pageType === EPageTypes.team ? Number(params.region) : null;\n\n const data = useSelector(getGames)[getterParam] || null;\n const marketsCount = useSelector(getMarketsCount)[getterParam] || null;\n const regionCompData = useSelector(getRegionCompData)?.[params.sport];\n\n const { currentMarketType, callMarketTypes } = useMarketTypes();\n\n const gameIds = useMemo(() => {\n if (!data) {\n return null;\n }\n\n const [sport] = Object.values(data);\n const regions = Object.values(sport?.region || {});\n\n return regions.reduce((result: number[], region) => {\n const competitions = Object.values(region?.competition || {});\n\n competitions.forEach(competition => {\n sortByOrder(\n Object.values(competition?.game || {}),\n 'start_ts'\n ).forEach(game => {\n result.push(Number(game.id));\n });\n });\n\n return result;\n }, []);\n }, [data]);\n\n const handleSetData = useCallback(\n (sport: TSportResponse) => {\n if (JSON.stringify(data) !== JSON.stringify(sport)) {\n dispatch(\n setGames({\n [getterParam]: sport\n })\n );\n }\n },\n [data, params.sport, params.competition]\n );\n\n const updateMarketsCount = useCallback(\n ({ game }: TMarketCountResponse) => {\n const markets = Object.values(game || {}).reduce(\n (result: TMarketsCount, { id, market }) => {\n result[id] = market;\n\n return result;\n },\n {}\n );\n\n if (JSON.stringify(marketsCount) !== JSON.stringify(markets)) {\n dispatch(\n setMarketsCount({\n [getterParam]: markets\n })\n );\n }\n },\n [params.sport, params.competition, marketsCount]\n );\n\n useEffect(() => {\n if (SpringConfigs.MOCKED_DATA) {\n dispatch(\n setMarketType({\n ['Soccer']: { label: 'Match Result', value: 'P1XP2' }\n })\n );\n\n dispatch(\n setMarketTypes({\n ['Soccer']: [{ label: 'Match Result', value: 'P1XP2' }]\n })\n );\n }\n\n if (!params.sport) {\n return;\n }\n\n callMarketTypes();\n }, [params.sport]);\n\n const currentCompetition = useMemo(() => {\n if (SpringConfigs.MOCKED_DATA || isMobile()) {\n return Math.random();\n }\n\n if (pageType === EPageTypes.live || pageType === EPageTypes.today) {\n return true;\n }\n\n if (pageType === EPageTypes.team) {\n return favoriteTeamId;\n }\n\n if (\n regionCompData === undefined ||\n NOT_REAL_SPORTS.includes(params.category)\n ) {\n return params.competition ?? null;\n }\n\n return (\n regionCompData &&\n Object.values(regionCompData).find(\n region => region.competition?.[params.competition]\n )?.competition?.[params.competition]\n );\n }, [regionCompData, params.competition, params.sport, favoriteTeamId]);\n\n const currentCompetitionId =\n typeof currentCompetition === 'object'\n ? currentCompetition?.id\n : currentCompetition;\n\n useEffect(() => {\n if (\n currentCompetition &&\n currentCompetition !== null &&\n typeof currentCompetition !== 'string' &&\n clickFromFavorites\n ) {\n dispatch(setClickFromFavorites(false));\n }\n }, [currentCompetitionId]);\n\n const currentMarket =\n typeof currentMarketType === 'object' && currentMarketType !== null\n ? currentMarketType?.value\n : currentMarketType;\n\n const getGamesEffectDependencyBasedOnMarketTypeAndSport = `${currentMarket}-${params.sport} `;\n\n useEffect(() => {\n dispatch(\n setShowNoItemWrapper({\n game: false,\n regions: false,\n competitions: false\n })\n );\n\n if (\n currentCompetition &&\n !Object.keys(currentCompetition)?.length &&\n !EPageTypes.team\n ) {\n dispatch(\n setShowNoItemWrapper({\n game: true,\n regions: true,\n competitions: true\n })\n );\n }\n\n if (!currentCompetition) {\n if (\n clickFromFavorites &&\n !NOT_REAL_SPORTS.includes(params.category) &&\n currentCompetition !== null\n ) {\n dispatch(\n setShowNoItemWrapper({\n game: true,\n competitions: true\n })\n );\n\n return;\n }\n\n return;\n }\n\n if ((!currentMarketType && currentMarketType !== null) || data?.length) {\n return;\n }\n\n const rid = RidGenerator.gForSubscribe('GameList');\n\n const what = getWhat({ pageType });\n\n const where = getWhere({\n pageType,\n sportAlias: params.sport,\n regionAlias: params.region,\n competitionId: Number(params.competition),\n marketType: currentMarketType?.value || null,\n timestamp: params.category ? {} : timestamp,\n favoriteTeamId,\n tournamentSportIds,\n isUsaLayout:\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN ||\n SpringConfigs.IS_AMERICAN_LAYOUT\n });\n\n if (params.category === ENotRealSports.todayEvents) {\n where.game.start_ts = createTodayEventsWhere().game.start_ts;\n } else if (params.category === ENotRealSports.betBuilder) {\n where.game.sportcast_id = gameSportcastIdWhere;\n }\n\n if (\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN &&\n params.sport === 'Cricket'\n ) {\n what.game = [[...what.game[0], 'stats']];\n }\n\n executeCommand(\n rid,\n what,\n where,\n (response: { sport: TSportResponse }) => {\n if (mounted.current && response?.sport) {\n handleSetData(response.sport);\n }\n\n if (\n Object.keys(response?.sport).length === 0 &&\n params.category === ENotRealSports.team\n ) {\n dispatch(\n setShowNoItemWrapper({\n game: true,\n regions: true,\n competitions: true\n })\n );\n }\n },\n true,\n (response: { sport: TSportResponse }) => {\n if (mounted.current && response?.sport) {\n handleSetData(response.sport);\n }\n }\n );\n\n return () => {\n unsubscribeCommand(rid);\n };\n }, [\n timestamp,\n getGamesEffectDependencyBasedOnMarketTypeAndSport,\n currentCompetitionId,\n clickFromFavorites\n ]);\n\n useEffect(() => {\n if (SpringConfigs.MOCKED_DATA) {\n return;\n }\n\n if (gameIds?.length) {\n const originalMarketsCountRid = RidGenerator.gForSubscribe(\n 'OriginalMarketsCount'\n );\n\n const relations = {\n market: '@count',\n game: ['id']\n };\n\n const where: Record = {\n game: {\n id: {\n '@in': gameIds\n }\n }\n };\n\n if (params.category === ENotRealSports.betBuilder) {\n relations.game.push(gameSportcastId[0]);\n where.game.sportcast_id = gameSportcastIdWhere;\n }\n\n executeCommand(\n originalMarketsCountRid,\n relations,\n where,\n updateMarketsCount,\n true,\n updateMarketsCount\n );\n\n return () => {\n if (gameIds?.length) {\n unsubscribeCommand(originalMarketsCountRid);\n }\n };\n } else if (gameIds !== null) {\n dispatch(\n setMarketsCount({\n [getterParam]: {}\n })\n );\n }\n }, [gameIds?.join('')]);\n\n const groupOfSport = useMemo(() => {\n if (groupingData === null) {\n return null;\n }\n\n return (\n groupingData?.find(({ sports }) =>\n sports.some(({ alias }) => alias === params.sport)\n ) || null\n );\n }, [groupingData, params.sport]);\n\n const isLiveWithGroups =\n isMobile() && groupOfSport && pageType === EPageTypes.live;\n\n const hasSport = ALL_ESPORT_SPORTS.includes(params.sport);\n const isAliasESport = configs.pageType === ESportsbookPageTypes.live;\n\n return (\n \n }\n >\n {isLiveWithGroups ? (\n
\n \n \n \n \n
\n ) : (\n \n )}\n \n );\n }\n);\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { SportsbookGameListHeaderSkeleton } from 'newcomponents/Shared/sportsbook/SportsbookGameListHeaderSkeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport './index.less';\n\ntype TGameListWrapperSkeletonProps = {\n withBack?: boolean;\n isLive: boolean;\n showHeader?: boolean;\n showMarketFilterSkeleton?: boolean;\n applyAdditionalMargin?: boolean;\n};\n\nexport const GameListWrapperSkeleton = ({\n isLive,\n showHeader = true,\n showMarketFilterSkeleton = true,\n withBack,\n applyAdditionalMargin\n}: TGameListWrapperSkeletonProps): ReactElement => {\n const { params } = useSbRouteMatch();\n\n return (\n \n {params.category === ENotRealSports.todayEvents && isMobile() ? (\n
\n \n
\n ) : (\n showHeader && (\n \n )\n )}\n \n \n \n \n );\n};\n","import {\n Checkbox as AntCheckbox,\n CheckboxProps as AntCheckboxProps\n} from 'antd';\nimport './index.less';\n\ntype CheckboxProps = Omit & {\n className?: string;\n size?: 'small' | 'medium' | 'large' | 'default';\n};\n\nexport interface CheckboxRef {\n focus: (options?: FocusOptions) => void;\n blur: () => void;\n input: HTMLInputElement | null;\n}\n\nexport const Checkbox = ({\n className = '',\n size = 'default',\n ...props\n}: CheckboxProps) => {\n return (\n \n );\n};\n","import {\n CSSProperties,\n memo,\n ReactElement,\n ReactNode,\n SyntheticEvent,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport cc from 'classcat';\nimport { ZINDEX_HIGH_1 } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { rand } from 'utils/swarm/rid-generator';\nimport { Portal } from 'components/Shared/Portal';\nimport './index.less';\n\ntype TModalProps = {\n visible: boolean;\n title?: ReactElement | string;\n onCancel?: (e?: SyntheticEvent) => void;\n width?: string | number;\n wrapClassName: string;\n className?: string;\n centered?: boolean;\n zIndex?: number;\n style?: CSSProperties;\n bodyStyle?: CSSProperties;\n maskStyle?: CSSProperties;\n maskClosable?: boolean;\n mask?: boolean;\n footer?: ReactElement | null;\n closeIcon?: ReactNode;\n renderCloseIconInMask?: boolean;\n destroyOnClose?: boolean;\n closable?: boolean;\n afterClose?: () => void;\n children: ReactNode;\n contentPadding?: number | string;\n maxWidth?: string | number;\n hideBorder?: boolean;\n getContainer?: string | false;\n wrapperPadding?: string;\n fullPage?: boolean;\n placement?: 'top' | 'bottom' | 'left' | 'right' | undefined;\n borderRadius?: string;\n closeIconStyle?: CSSProperties;\n};\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nconst AFTER_CLOSE_DELAY = 300;\nconst MODAL_WRAPPER_PADDING = 24;\nconst MODAL_WRAPPER_MOBILE_PADDING = 12;\nconst randomNumberForAddBlocker = rand();\n\nexport const CustomModal = memo(\n ({\n visible,\n title,\n onCancel,\n width,\n wrapClassName,\n zIndex,\n style,\n bodyStyle,\n maskStyle,\n maskClosable = true,\n mask = true,\n footer,\n closeIcon,\n destroyOnClose,\n closable = true,\n afterClose,\n className,\n contentPadding,\n maxWidth,\n hideBorder = true,\n getContainer = false,\n centered = true,\n wrapperPadding,\n fullPage,\n placement,\n borderRadius,\n closeIconStyle,\n renderCloseIconInMask = false,\n children,\n ...rest\n }: TModalProps) => {\n const [modalVisible, setModalVisible] = useState(visible);\n const modalContainerRef = useRef(getContainer);\n\n useEffect(() => {\n setModalVisible(visible);\n modalContainerRef.current = getContainer || false;\n }, [visible, getContainer]);\n\n const handleClose = () => {\n if (onCancel) {\n onCancel();\n } else {\n closeModal();\n }\n };\n\n const closeModal = () => {\n if (destroyOnClose) {\n setModalVisible(false);\n }\n\n if (afterClose && typeof afterClose === 'function') {\n const timeout = setTimeout(() => {\n afterClose();\n clearTimeout(timeout);\n }, AFTER_CLOSE_DELAY);\n }\n };\n\n const handleMaskClick = () => {\n if (maskClosable) {\n handleClose();\n }\n };\n\n const modalContent = (\n <>\n \n \n \n {!renderCloseIconInMask && closable && (\n \n {closeIcon}\n \n )}\n {!!title && (\n
\n {title}\n
\n )}\n
{children}
\n {footer}\n \n \n\n {renderCloseIconInMask && closable && (\n \n {closeIcon}\n \n )}\n \n\n {mask && (\n \n )}\n \n );\n\n return modalVisible ? (\n {modalContent}\n ) : null;\n }\n);\n","import {\n CSSProperties,\n ReactElement,\n ReactNode,\n RefObject,\n useRef\n} from 'react';\nimport cc from 'classcat';\nimport { createTestId } from 'utils/helpers/create-test-id';\nimport { useUpdateEffect } from 'newhooks/generic/useUpdateEffect';\nimport './index.less';\n\nexport type Props = {\n selectedKey: string;\n style?: CSSProperties;\n onChange: (arg: string) => void;\n size: 'small' | 'middle' | 'large';\n items: Array<{\n key: string;\n title: ReactNode;\n content?: ReactNode;\n }>;\n className?: string;\n};\n\nexport const HorizontalMenu = (props: Props): ReactElement => {\n const tabRef: RefObject = useRef(null);\n\n useUpdateEffect(() => {\n tabRef.current?.scrollIntoView?.({\n behavior: 'smooth',\n inline: 'center',\n block: 'center'\n });\n }, [props.selectedKey]);\n\n return (\n \n
\n {props.items.map((item, index) => (\n props.onChange(item.key)}\n >\n {item.title}\n
\n ))}\n \n \n );\n};\n","import {\n ComponentProps,\n memo,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Select as AntSelect,\n SelectProps as AntSelectProps,\n Skeleton\n} from 'antd';\nimport cc from 'classcat';\nimport { SELECT_PROVIDERS_TYPE } from 'utils/casino/casino';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Button } from 'newcomponents/UI/Button';\nimport type { DefaultOptionType, RefSelectProps } from 'antd/lib/select/index';\nimport './index.less';\n\nconst SHOW_SEARCH_MAX_LENGTH = 5;\nexport const Option = AntSelect.Option;\n\ntype SelectProps = AntSelectProps & {\n label?: string;\n wrapperClassName?: string;\n withoutMargin?: boolean;\n disabled?: boolean;\n children?: ReactElement[] | null;\n search?: boolean;\n onApply?: MouseEventHandler;\n openDirectionBottom?: boolean;\n customButton?: ReactNode;\n type?: string;\n applayButtonDisable?: boolean;\n hideSuffixIcon?: boolean;\n};\n\ntype TOpenDirection = ComponentProps['placement'];\n\nconst ANTD_DROPDOWN_SCROLL_AREA_SELECTOR = '.rc-virtual-list-holder';\n\nexport const Select = memo(\n ({\n label,\n wrapperClassName,\n withoutMargin,\n disabled,\n children,\n search = true,\n onSelect,\n onApply,\n openDirectionBottom,\n customButton,\n onDropdownVisibleChange: extraOnDropdownVisibleChange,\n applayButtonDisable,\n hideSuffixIcon,\n ...props\n }: SelectProps): ReactElement => {\n const dropdownId = useId();\n const selectRef = useRef(null);\n const [isDropdownOpen, setIsDropdownOpen] = useState(props.open || false);\n const xSelectWrapperRef = useRef(null);\n const [openDirection, setOpenDirection] =\n useState('bottomLeft');\n\n const childrenArr = Array.isArray(children) ? children : [children];\n const { t } = useTranslation();\n\n const checkSelectType = useMemo(\n () => ({\n providers: props.type === SELECT_PROVIDERS_TYPE\n }),\n [props.type]\n );\n\n const handleSelect = useCallback(\n (value: any, option: DefaultOptionType) => {\n if (props.mode !== 'multiple' && search && selectRef.current) {\n selectRef.current.blur();\n }\n\n if (onSelect) {\n onSelect(value, option);\n }\n },\n [search, onSelect]\n );\n\n const isDisabled =\n !!(typeof disabled === 'undefined' && children?.length === 1) || disabled;\n\n const getPlacement = (open: boolean) => {\n setIsDropdownOpen(open);\n extraOnDropdownVisibleChange?.(open);\n\n if (xSelectWrapperRef.current) {\n const elemFromTop =\n xSelectWrapperRef.current?.getBoundingClientRect().bottom;\n\n if (elemFromTop > window.innerHeight - elemFromTop) {\n setOpenDirection('topLeft');\n\n return;\n }\n }\n\n setOpenDirection('bottomLeft');\n };\n\n const isLoadingProvider =\n checkSelectType.providers &&\n (!(props.value || []).length || props.loading);\n\n // this effect need to improve scrolling behavior on mobile devices in case of page has scroll to\n useEffect(() => {\n if (isDropdownOpen) {\n const virtualListContainer =\n document.getElementById(dropdownId)?.parentNode;\n\n if (virtualListContainer) {\n const holder = virtualListContainer.querySelector(\n ANTD_DROPDOWN_SCROLL_AREA_SELECTOR\n );\n\n if (holder) {\n const handler: EventListener = e => {\n e.stopPropagation();\n };\n\n holder.addEventListener('touchmove', handler);\n\n return () => {\n holder.removeEventListener('touchmove', handler);\n };\n }\n }\n }\n }, [isDropdownOpen]);\n\n const shouldShowLoadingIcon =\n hideSuffixIcon && props.loading && !isDropdownOpen;\n\n return (\n \n {!!label &&
{label}
}\n \n {isLoadingProvider ? (\n \n ) : (\n \n )}\n\n \n \n )\n })}\n onDropdownVisibleChange={getPlacement}\n showAction={['focus']}\n showSearch={\n search && (childrenArr?.length ?? 0) > SHOW_SEARCH_MAX_LENGTH\n }\n filterOption={(input, option) => {\n return `${option?.children ?? ''}`\n .toLowerCase()\n .includes(input.toLowerCase());\n }}\n onSelect={handleSelect}\n dropdownRender={item => {\n return onApply ? (\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {item}\n
\n {customButton || (\n \n {t('account.applyButton')}\n \n )}\n
\n \n ) : (\n
{item}
\n );\n }}\n {...props}\n dropdownClassName={cc([\n props.dropdownClassName || '',\n {\n 'antdDropdown--mobile': isMobile()\n }\n ])}\n >\n {childrenArr}\n \n \n );\n }\n);\n","import { ReactElement, useEffect, useMemo, useState } from 'react';\nimport { timeoutDuration } from 'utils/constants/dateInfo/time-numbers';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\n\ntype TSportsbookWidgetsHeightWrapperProps = {\n shouldWrap: boolean;\n childrenElementId: string;\n} & PropsWithChildren;\n\nconst _SportsbookWidgetsHeightWrapper = ({\n children,\n childrenElementId\n}: Omit): ReactElement => {\n const [offsetTopValue, setOffsetTopValue] = useState(0);\n\n const wrapperStyles = useMemo(\n () => ({\n width: '100%',\n height: `calc(100vh - ${offsetTopValue}px)`,\n overflow: 'auto'\n }),\n [offsetTopValue]\n );\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n const element = document.getElementById(childrenElementId);\n\n if (element) {\n const elemTopValue =\n element.getBoundingClientRect().top +\n document.documentElement.scrollTop || 0;\n\n setOffsetTopValue(elemTopValue);\n }\n }, timeoutDuration.DURATION_500);\n\n return () => {\n clearTimeout(timeout);\n };\n }, []);\n\n return (\n
\n {children}\n
\n );\n};\n\nexport const SportsbookWidgetsHeightWrapper = ({\n children,\n childrenElementId,\n shouldWrap\n}: TSportsbookWidgetsHeightWrapperProps): ReactElement => {\n return (\n (\n <_SportsbookWidgetsHeightWrapper childrenElementId={childrenElementId}>\n {children}\n \n )}\n >\n {children}\n \n );\n};\n","import LocalStorage from 'utils/bom-dom-manipulation/local-storage';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\n\nexport type TSportNft = {\n externalId: number;\n collectionId: number;\n referenceId: string;\n addDate: string;\n receiveDate: null;\n mobileImgUrl: string;\n desktopImgUrl: string;\n claimUrl: string;\n};\n\nexport const SportNft = ({ sportNft }: { sportNft: TSportNft }) => {\n const handleNftClick = () => {\n const authData = JSON.parse(\n LocalStorage.getItem(storageKeyName('account', 'AUTH_DATA'))\n );\n\n if (authData) {\n const claimUrl = sportNft.claimUrl\n .replace('{token}', authData.auth_token)\n .replace('{partnerId}', `${SpringConfigs.PARTNER_ID}`);\n\n window.open(claimUrl, '_blank');\n }\n };\n\n return (\n
\n \n
\n );\n};\n","import { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport axios from 'axios';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport LS from 'utils/bom-dom-manipulation/local-storage';\nimport { ModalWidth } from 'utils/constants/app/ui';\nimport { MILLISECONDS_IN_SECOND } from 'utils/constants/dateInfo/time-numbers';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\nimport { Modal } from 'components/Modal';\nimport {\n SportNft,\n TSportNft\n} from 'newcomponents/Shared/sportsbook/SportNFTsModal/SportNft';\nimport { SwiperSlider } from 'newcomponents/UI/SwiperSlider';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\nimport './index.less';\n\nconst ORTAK_GET_USER_GIFTS_API = 'https://ortak.me/panel/giftApi/getUserGifts';\n\nexport const SportNFTsModal = () => {\n const isLoggedIn = useSelector(getIsLoggedIn);\n const user = useSelector(getUser);\n\n const [sportNfts, setSportNfts] = useState(null);\n\n useEffect(() => {\n const currentTimestamp = Number(dayjs().unix()) * MILLISECONDS_IN_SECOND;\n const getUserGiftsSentTimestamp = JSON.parse(\n LS.getItem(storageKeyName('sportsbook', 'GET_USER_GIFTS_SENT_TIMESTAMP'))\n );\n\n const lastRequestTimestamp =\n Number(getUserGiftsSentTimestamp) * MILLISECONDS_IN_SECOND;\n\n const isDifferenceGreaterThanOneDay =\n dayjs(currentTimestamp).diff(dayjs(lastRequestTimestamp), 'day') >= 1;\n\n const shouldRequestData =\n !getUserGiftsSentTimestamp || isDifferenceGreaterThanOneDay;\n\n if (isLoggedIn && shouldRequestData) {\n try {\n const fetchData = async () => {\n const data = await axios.post(ORTAK_GET_USER_GIFTS_API, {\n partnerId: SpringConfigs.PARTNER_ID,\n externalId: user.id,\n langId: SpringConfigs.CURRENT_LANGUAGE_PREFIX\n });\n\n const response: TSportNft[] = data?.data?.Data;\n\n if (response.length) {\n setSportNfts(response);\n } else {\n setSportNfts([]);\n }\n };\n\n fetchData();\n } catch {\n setSportNfts([]);\n }\n }\n }, [isLoggedIn]);\n\n const handleModalClose = () => {\n LS.setItem(\n storageKeyName('sportsbook', 'GET_USER_GIFTS_SENT_TIMESTAMP'),\n String(dayjs().unix())\n );\n\n setSportNfts([]);\n };\n\n if (!sportNfts?.length) {\n return null;\n }\n\n return (\n \n 1}\n activeSlide={0}\n spaceBetween={12}\n slidesPerView={1}\n bodyArrows\n drawableTabs={sportNfts.map(nftData => (\n \n ))}\n />\n \n );\n};\n","import {\n FC,\n memo,\n ReactElement,\n Suspense,\n useEffect,\n useMemo,\n useState\n} from 'react';\nimport LocalStorage from 'utils/bom-dom-manipulation/local-storage';\nimport { SPORTSBOOK_VIEW_TYPES } from 'utils/constants/sportsbook/generic';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { fetchSportsConfigsData } from 'utils/generic/fetch-sports-configs-data';\nimport { lazy } from 'utils/generic/lazy';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport {\n ESportsbookLayoutTypes,\n ESportsbookPageTypes,\n TSportsbookConfigs\n} from 'interfaces/sportsbook-configs';\nimport { executeCommand } from 'services/get-data-level';\nimport { defaultConfigs, SportsbookConfigsContext } from './Contexts';\nimport { ADVANCED_SPORT_BY_COMPETITIONS_LAYOUT_SHOW_EVENTS_BUTTON_ID } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout';\nimport { Portal } from 'components/Shared/Portal';\nimport { FallbackContainer } from 'components/UI/Containers/FallbackContainer';\nimport { SportNFTsModal } from 'newcomponents/Shared/sportsbook/SportNFTsModal';\nimport { useBoostedOdds } from 'hooks/sportsbook/useBoostedOdds';\nimport { useSportsbookMountPoint } from 'newhooks/sportsbook/useSportsbookMountPoint';\nimport './index.less';\n\nconst { Esport } = lazy(\n () => import(/* webpackChunkName: \"esport\" */ './Esport')\n);\n\nconst { FetchFavoriteTeamsData } = lazy(\n () =>\n import(\n /* webpackChunkName: \"fetchFavoriteTeamsData\" */ './__partials/FetchFavoriteTeamsData'\n )\n);\n\nconst { Live } = lazy(() => import(/* webpackChunkName: \"live\" */ './Live'));\n\nconst { Prematch } = lazy(\n () => import(/* webpackChunkName: \"prematch\" */ './Prematch')\n);\n\nconst { MetaUpdatesWrapper } = lazy(\n () =>\n import(\n /* webpackChunkName: \"meta-updates\" */ 'newcomponents/Shared/sportsbook/MetaUpdatesWrapper'\n )\n);\n\nconst VIEWS: Record = {\n esport: Esport,\n live: Live,\n prematch: Prematch\n};\n\nexport type TProps = {\n configs: TSportsbookConfigs;\n};\n\nexport const Sportsbook = memo(\n ({ configs = defaultConfigs }: TProps): ReactElement => {\n const [type] = useState(SPORTSBOOK_VIEW_TYPES[configs.pageType]);\n\n useSportsbookMountPoint();\n useBoostedOdds(configs.category === 'sport');\n\n const View = useMemo(() => VIEWS[type], [type]);\n\n const elementConfigs: TSportsbookConfigs = JSON.parse(\n JSON.stringify(configs)\n );\n\n elementConfigs.spbLayoutType = SpringConfigs.IS_AMERICAN_LAYOUT\n ? ESportsbookLayoutTypes.AMERICAN\n : configs.spbLayoutType || ESportsbookLayoutTypes.CLASSIC;\n\n if (\n elementConfigs.pageType === ESportsbookPageTypes.esport &&\n elementConfigs.category !== 'esport'\n ) {\n elementConfigs.category = 'esport';\n }\n\n useEffect((): void => {\n fetchSportsConfigsData();\n }, []);\n\n useEffect((): void => {\n const fromStatistics = JSON.parse(\n LocalStorage.getItem(storageKeyName('sportsbook', 'FROM_STATISTICS'))\n );\n\n if (fromStatistics?.sport) {\n executeCommand(\n RidGenerator.gForCommand(),\n {\n sport: ['alias'],\n region: ['alias']\n },\n {\n sport: {\n id: +fromStatistics.sport\n },\n game: {\n id: +fromStatistics.game\n },\n competition: {\n id: +fromStatistics.competition\n },\n region: {\n id: +fromStatistics.region\n }\n },\n (data: {\n data: { sport: { alias: string; region: { alias: string }[] }[] };\n }) => {\n const sport =\n data?.data.sport && Object.values(data?.data?.sport)[0];\n\n const sportAlias = sport.alias;\n const region = Object.values(sport.region)[0].alias;\n window.location.href = `${\n SpringConfigs.PAGE_URLS[\n +fromStatistics.type === 1 ? 'live' : 'prematch'\n ]\n }/${SpringConfigs.SPORTSBOOK_MOUNT_PATH}/${sportAlias}/${region}/${\n fromStatistics.competition\n }/${fromStatistics.game}`;\n }\n );\n LocalStorage.removeItem(\n storageKeyName('sportsbook', 'FROM_STATISTICS')\n );\n }\n }, [window.location.pathname]);\n\n return (\n <>\n \n
\n \n {configs.favoriteTeam ? (\n \n \n \n ) : null}\n
\n \n }>\n {SpringConfigs.INCLUDE_SPORT_DATA_IN_META && (\n \n )}\n \n \n \n \n
\n {isMobile() &&\n elementConfigs.spbLayoutType === ESportsbookLayoutTypes.ADVANCED && (\n \n )}\n \n );\n }\n);\n","import SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport store from 'store';\nimport { setSportsConfigs } from 'store/actions/app-data';\n\nexport const fetchSportsConfigsData = (\n setLoading?: (arg: boolean) => void\n): void => {\n if (SpringConfigs.SPORTS_CONFIGS) {\n fetch(SpringConfigs.SPORTS_CONFIGS as string)\n .then(responce => responce.json())\n .then(resp => {\n store.dispatch(setSportsConfigs(resp));\n setLoading && setLoading(false);\n });\n } else {\n setLoading && setLoading(false);\n }\n};\n","import { useCallback } from 'react';\nimport { useHistory as useReactRouterHistory } from 'react-router-dom';\nimport { LocationDescriptor } from 'history';\n\nconst STATE_FROM: string[] = [];\n\nexport const useCustomHistory = () => {\n const history = useReactRouterHistory();\n\n const push = useCallback(\n (location: LocationDescriptor, skipPushToStateFrom = false) => {\n if (!skipPushToStateFrom) {\n STATE_FROM.push(`${window.getPathname()}${window.location.search}`);\n }\n\n history.push(location);\n },\n []\n );\n\n const getFrom = useCallback(() => {\n return STATE_FROM.pop();\n }, []);\n\n const goBack = useCallback((fallbackUrl: string) => {\n const fromUrl = getFrom();\n history.push(fromUrl || fallbackUrl);\n }, []);\n\n return { history, push, getFrom, goBack, location: history.location };\n};\n","import { useLayoutEffect } from 'react';\nimport type {\n TUseEventBusKey,\n TUseEventbusProps\n} from 'utils/generic/event-bus';\nimport { fireEvent, initEventBus } from 'utils/generic/event-bus';\n\n// event type in order to (listen to) or (fire) // Here we can use any type for payload\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport enum CasinoEvent {\n CasinoGamesRendered = 'CasinoGamesRendered'\n}\n\n/**\n * Hook allows fire and list events between components\n * @param events - events is object with subscribed callbacks where key is eventName, fire on Subject Observable subscribed event\n * @param deps - dependencies for onEvent\n * @returns Function (fireEvent callback)\n */\n// Here we can use any type for dependencies\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const useEventbus = (\n events?: TUseEventbusProps,\n deps: any[] = []\n) => {\n useLayoutEffect(() => {\n // skip useEffect if onEvent is empty\n return initEventBus(events);\n\n // console.log('subscribe', events);\n //\n // if (!events || !Object.values(events).length) {\n // return;\n // }\n //\n // // subscribe to the Subject Observable\n // const subscription = eventbusSubject.subscribe(({ key, id, payload }) => {\n // events[key as keyof TUseEventbusProps]?.(\n // id,\n // payload\n // );\n // });\n //\n // // we should unsubscribe after component's unmount to remove extra subscribes\n // return () => {\n // subscription.unsubscribe();\n // };\n }, deps);\n\n return {\n // on fireEvent, we should push the event into the eventbus subject's observer\n fireEvent\n };\n};\n\n// import { useEffect, useId, useLayoutEffect } from 'react';\n//\n// import {\n// fireEvent,\n// initEventBus,\n// TUseEventbusProps,\n// EVENT_BUS_LOCAL_STORE\n// } from 'utils/generic/event-bus';\n//\n// export enum CasinoEvent {\n// CasinoGamesRendered = 'CasinoGamesRendered'\n// }\n//\n// /**\n// * Hook allows fire and list events between components\n// * @param events - events is object with subscribed callbacks where key is eventName, fire on Subject Observable subscribed event\n// * @param deps - dependencies for onEvent\n// * @returns Function (fireEvent callback)\n// */\n// // Here we can use any type for dependencies\n// // eslint-disable-next-line @typescript-eslint/no-explicit-any\n// export const useEventbus = (\n// events?: TUseEventbusProps,\n// deps: any[] = []\n// ) => {\n// useLayoutEffect(() => {\n// return initEventBus(events);\n// }, [deps]);\n// // const id = useRef(ridGenerator.gCustom());\n//\n// // const id = useId();\n// //\n// // const isAlreadyRegistered = id in EVENT_BUS_LOCAL_STORE;\n// // const isDependencyChanged = isAlreadyRegistered\n// // ? JSON.stringify(deps) !== JSON.stringify(EVENT_BUS_LOCAL_STORE[id].deps)\n// // : false;\n//\n// // if (!isAlreadyRegistered || isDependencyChanged) {\n// // if (isAlreadyRegistered) {\n// // EVENT_BUS_LOCAL_STORE[id]?.clean();\n// // delete EVENT_BUS_LOCAL_STORE[id];\n// // }\n// //\n// // const clean = initEventBus(events);\n// //\n// // if (typeof clean === 'function') {\n// // console.log('register');\n// //\n// // EVENT_BUS_LOCAL_STORE[id] = { deps, clean };\n// // }\n// // }\n// //\n// // useEffect(() => {\n// // return () => {\n// // console.log('unrgister');\n// // EVENT_BUS_LOCAL_STORE[id]?.clean();\n// // delete EVENT_BUS_LOCAL_STORE[id];\n// // };\n// // }, []);\n//\n// return {\n// // on fireEvent, we should push the event into the eventbus subject's observer\n// fireEvent\n// };\n// };\n","import { DependencyList, EffectCallback, useEffect } from 'react';\nimport { useIsFirstRender } from './useIsFirstRender';\n\nexport function useUpdateEffect(\n effect: EffectCallback,\n deps?: DependencyList\n): void {\n const isFirst = useIsFirstRender();\n\n useEffect(() => {\n if (!isFirst) {\n return effect();\n }\n }, deps);\n}\n","import { useRef } from 'react';\n\nexport function useIsFirstRender(): boolean {\n const isFirst = useRef(true);\n\n if (isFirst.current) {\n isFirst.current = false;\n\n return true;\n }\n\n return isFirst.current;\n}\n","import { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport { isMobile } from 'utils/is-mobile';\nimport { TMarketType, TMarketTypeResponse } from 'interfaces/sportsbook';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { swarmCommand } from 'services/get-swarm-data';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setMarketType, setMarketTypes } from 'store/actions';\nimport { getMarketType, getMarketTypes } from 'store/selectors/sport-data';\n\ntype TResult = {\n marketTypes: TMarketType[] | null;\n currentMarketType: TMarketType | null;\n callMarketTypes: () => void;\n};\n\nexport const useMarketTypes = (): TResult => {\n const dispatch = useDispatch();\n const configs = useSportsbookConfigs();\n\n const marketTypes = useSelector(getMarketTypes);\n const currentMarketType = useSelector(getMarketType);\n\n const { params } = useSbRouteMatch();\n\n const callMarketTypes = useCallback(() => {\n if (marketTypes[params.sport]) {\n return;\n }\n\n if (\n !isMobile() &&\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN\n ) {\n dispatch(setMarketTypes({ ...marketTypes, [params.sport]: null }));\n dispatch(setMarketType({ ...currentMarketType, [params.sport]: null }));\n\n return;\n }\n\n const relations = { sport_alias: params.sport };\n\n swarmCommand(\n CommandNames.GET_MARKET_TYPE,\n relations,\n (data: TMarketTypeResponse) => {\n if (!data.details && params.sport) {\n return;\n }\n\n if (!data.details.length) {\n dispatch(setMarketTypes({ ...marketTypes, [params.sport]: null }));\n dispatch(\n setMarketType({ ...currentMarketType, [params.sport]: null })\n );\n\n return;\n }\n\n const markets = data.details\n .sort((a, b) => a.Order - b.Order)\n .map(({ MarketTypeName, BasaltKind }) => ({\n label: MarketTypeName.replace(/\\{sw\\}|\\{pw\\}|\\{s\\}/g, ''),\n value: BasaltKind\n }));\n\n dispatch(setMarketTypes({ ...marketTypes, [params.sport]: markets }));\n dispatch(\n setMarketType({ ...currentMarketType, [params.sport]: markets[0] })\n );\n }\n );\n }, [params.sport, marketTypes, currentMarketType]);\n\n return useMemo(() => {\n const getter = SpringConfigs.MOCKED_DATA ? 'Soccer' : params.sport;\n\n return {\n marketTypes: marketTypes[getter],\n currentMarketType: currentMarketType[getter],\n callMarketTypes\n };\n }, [params.sport, marketTypes, currentMarketType, callMarketTypes]);\n};\n","import { useLayoutEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\n\nexport const useSportsbookMountPoint = (): void => {\n const history = useHistory();\n\n useLayoutEffect(() => {\n if (SpringConfigs.MOCKED_DATA) {\n return;\n }\n\n const [shouldRedirect, redirectPath] = mountPoint(\n location.pathname,\n true,\n false\n );\n\n if (shouldRedirect && typeof redirectPath === 'string') {\n history.push(`${redirectPath}${window.location.search}` as string);\n }\n }, []);\n};\n","import { createContext, ReactElement, ReactNode, useContext } from 'react';\n\ntype Props = { children: ReactNode; sportName: string };\n\nconst SportDataContext = createContext(undefined);\n\nexport const SportDataProvider = (props: Props): ReactElement => {\n return (\n \n {props.children}\n \n );\n};\n\nexport function useSportName(): string | undefined {\n const context = useContext(SportDataContext);\n\n return context;\n}\n","export enum AFTER_SIGN_IN_ACTION_TYPES {\n TOGGLE_BET_BUILDER_MODAL = 'toggleBetBuilderModal',\n BOOKING_BET_GET_EVENT_ID = 'bookingBetGetEventId',\n NAVIGATE_TO_MY_CASINO = 'navigateToMyCasino',\n SUBSCRIBE_FOR_NOTIFICATION = 'subscribeForNotifications',\n OPT_IN_ACTION = 'optInAction',\n OPEN_CASINO_GAME = 'openCasinoGame',\n CONSTRUCT_CASINO_VIEW_URL = 'constructCasinoViewUrl',\n RECONSTRUCT_CASINO_VIEW_URL = 'reconstructCasinoViewUrl',\n RACING_BET_MODAL = 'racingBetModal',\n OPEN_FAVORITE_TEAM_POPUP = 'openFavoriteTeamPopup',\n OPEN_SINGLE_GAME_FROM_MINIMIZED_STREAMING = 'openSingleGameFromMinimizedStreaming'\n}\n\nexport type TAfterSignInActions = {\n openBetBuilderAction?: string;\n bookBetId?: string;\n};\n\nexport class AfterSignIn {\n static _instance: AfterSignIn;\n static actions: Record Promise> = {};\n static afterExecutionCallback: () => void;\n static finalExecutionCallback: () => void;\n\n constructor() {\n if (AfterSignIn._instance) {\n return AfterSignIn._instance;\n }\n\n AfterSignIn._instance = this;\n }\n\n setAfterExecutionCallback = (callback: () => void) => {\n AfterSignIn.afterExecutionCallback = callback;\n };\n\n setFinalExecutionCallback = (callback: () => void) => {\n AfterSignIn.finalExecutionCallback = callback;\n };\n\n appendAction = (key: string, promise: () => Promise) => {\n AfterSignIn.actions[key] = promise;\n };\n\n isActionsExist = () => {\n return !!Object.values(AfterSignIn.actions).length;\n };\n\n removeActions = () => {\n AfterSignIn.actions = {};\n };\n\n executeActions = () => {\n const successAction = () => {\n return new Promise(resolve => {\n resolve(true);\n });\n };\n\n Promise.all(\n [...Object.values(AfterSignIn.actions), successAction].map(func => func())\n ).then(() => {\n AfterSignIn.actions = {};\n\n AfterSignIn.afterExecutionCallback &&\n AfterSignIn.afterExecutionCallback();\n\n AfterSignIn.finalExecutionCallback &&\n AfterSignIn.finalExecutionCallback();\n });\n };\n}\n","import { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { UserNotificationsResponse } from 'interfaces/notifications';\nimport { WebsocketEnhanced } from 'interfaces/spring-websocket-interfaces';\nimport { connectingWS } from 'hooks/useSpringConnect';\nimport store from 'store';\nimport { setUserNotifications } from 'store/actions/sport-data';\n\nexport const setGamesNotifications = (\n gameInfo: {\n id: number;\n game_start_ts: number;\n },\n shouldSubscribe: boolean,\n callback: Function,\n updateCallback?: Function\n): void => {\n const command = {\n command: CommandNames.SET_GAMES_NOTIFICATIONS,\n params: {\n game_list: [gameInfo],\n events: [\n {\n event_name: 'MatchFinished',\n is_subscribed: shouldSubscribe\n }\n ]\n },\n rid: RidGenerator.gForCommand()\n };\n\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(command, '', callback, null, updateCallback);\n });\n};\n\nexport const getUserAllNotifications = (): void => {\n const command = {\n command: CommandNames.GET_USER_ALL_NOTIFICATIONS,\n params: {},\n rid: RidGenerator.gForCommand()\n };\n\n const callback = (resp: UserNotificationsResponse) => {\n if (resp?.details) {\n store.dispatch(setUserNotifications(resp.details));\n }\n };\n\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(command, '', callback);\n });\n};\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getAppData = getSelectorRoot('appData');\n\nexport const getColCount = getAppData('colCount');\nexport const getRecaptchaEnabled = getAppData('recaptchaEnabled');\nexport const getRecaptchaVersion = getAppData('recaptchaVersion');\nexport const getSiteKey = getAppData('siteKey');\nexport const getTurnstileEnabled = getAppData('turnstileEnabled');\nexport const getTurnstileSiteKey = getAppData('turnstileSiteKey');\nexport const getTurnstileVerifyActions = getAppData('turnstileVerifyActions');\nexport const getRecaptchaKey = getAppData('recaptchaKey');\nexport const getDataConfigs = getAppData('dataConfigs');\nexport const getRounding = getAppData('rounding');\nexport const getRoundingLoading = getAppData('roundingLoading');\nexport const getRegFieldData = getAppData('regFieldData');\nexport const getShowAdditionalInfo = getAppData('showAdditionalInfo');\nexport const getPersonalizedGenericSettings = getAppData(\n 'personalizedGenericSettings'\n);\nexport const getOpenedModals = getAppData('openedModals');\nexport const getAtoZMenuData = getAppData('atozMenuData');\nexport const getMenuJsonData = getAppData('menuJsonData');\nexport const getSectionsData = getAppData('sectionsData');\nexport const getPostGridHiddenParams = getAppData('postGridHiddenParams');\nexport const getCashoutModalOpen = getAppData('cashoutModalOpen');\nexport const getDepositModalOpen = getAppData('depositModalOpen');\nexport const getDepositStatus = getAppData('confirmedDeposit');\nexport const getFirebaseToken = getAppData('fireBaseToken');\nexport const getOneSignalSubId = getAppData('oneSignalSubId');\nexport const getHeaderState = getAppData('headerState');\nexport const getGeolocationShakeData = getAppData('geolocationShakeData');\nexport const getHomeworkData = getAppData('homeworkData');\nexport const getSportsConfigsData = getAppData('sportsConfigsData');\nexport const getIsPaymentsLoading = getAppData('isPaymentsLoading');\nexport const getCryptoCurrencies = getAppData('setCryptoCurrencies');\nexport const getBetShopsData = getAppData('betShops');\nexport const getSID = getAppData('sid');\nexport const getRemainingSessionDuration = getAppData(\n 'remainingSessionDuration'\n);\nexport const getFavoriteOnHeaderOpen = getAppData('favoriteOnHeaderOpen');\nexport const getFavoriteSelectedTab = getAppData('favoriteSelectedTab');\nexport const getIdinData = getAppData('idinData');\nexport const getLocateData = getAppData('locateData');\nexport const getIsDarkMode = getAppData('isDarkMode');\nexport const getHigherZIndex = getAppData('higherZIndex');\nexport const getInitSportsbookIframe = getAppData('initSportsbookIframe');\nexport const getForgotPasswordOpen = getAppData('forgotPasswordOpen');\nexport const getForgotUsernameOpen = getAppData('forgotUsernameOpen');\nexport const getShowToTopNav = getAppData('showToTopNav');\nexport const getTourSteps = getAppData('tourSteps');\nexport const gettourStepsInitialData = getAppData('tourStepsInitialData');\nexport const getTourModalVisible = getAppData('tourModalVisible');\nexport const getAfterSignInActions = getAppData('afterSignInActions');\nexport const getGeoComplyErrorPopupAvailable = getAppData(\n 'geoComplyErrorPopupAvailable'\n);\nexport const getGeoComplyErrorPopupText = getAppData('geoComplyErrorPopupText');\nexport const getLeftSidebarOpenCloseTrigger = getAppData(\n 'leftSidebarOpenCloseTrigger'\n);\n","import { createSelector } from 'reselect';\nimport { getSelectorRoot } from 'utils/selectors';\nimport { EBetslipBetType, EBetslipType } from 'interfaces/betslip';\nimport { getQuickBetEnabled } from 'store/selectors/betslip/features';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getType = getBetSlip('type');\nconst getTabs = getBetSlip('tabs');\nconst getTaxes = getBetSlip('taxes');\nconst getMustOpen = getBetSlip('mustOpen');\nconst getMustClose = getBetSlip('mustClose');\nconst getBetslipType = getBetSlip('betslipType');\nconst getBetslipOpen = getBetSlip('betslipOpen');\nconst getLadderLoaded = getBetSlip('ladderLoaded');\nconst getActiveTabPage = getBetSlip('activeTabPage');\nconst getFreezeTabChange = getBetSlip('freezeTabChange');\nconst getAdvancedSelectedTab = getBetSlip('advancedSelectedTab');\nconst getQuickSingleBetslipOpen = getBetSlip('singleQuickBetslipOpen');\nconst getIsBetslipOpenedInDefaultMode = createSelector(\n [getQuickBetEnabled, getBetslipOpen],\n (quickBetEnabled, isBetslipOpened) => !quickBetEnabled && isBetslipOpened\n);\n\nconst getComputedBetType = createSelector(\n [getType, getBetslipType],\n (betType, betslipType) =>\n betslipType === EBetslipType.ADVANCED\n ? EBetslipBetType.SINGLE\n : (betType as EBetslipBetType)\n);\n\nexport {\n getType,\n getTabs,\n getTaxes,\n getMustOpen,\n getMustClose,\n getBetslipType,\n getBetslipOpen,\n getLadderLoaded,\n getActiveTabPage,\n getFreezeTabChange,\n getComputedBetType,\n getAdvancedSelectedTab,\n getQuickSingleBetslipOpen,\n getIsBetslipOpenedInDefaultMode\n};\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\n// Booking\nconst getBookBetId = getBetSlip('bookBetId');\n\n// Bonus balance\nconst getUseBonusBalance = getBetSlip('useBonusBalance');\n\n// Book Bet\nconst getIsBookingMode = getBetSlip('isBookingMode');\n\n// Quick bet\nconst getQuickBetStake = getBetSlip('quickBetStake');\nconst getShouldShowQuickBetInfoPopover = getBetSlip(\n 'shouldShowQuickBetInfoPopover'\n);\n\nconst getQuickBetEnabled = getBetSlip('quickBetEnabled');\nconst getQuickBetInProcessCount = getBetSlip('quickBetInProcessCount');\nconst getQuickBetSelectedEventId = getBetSlip('quickBetSelectedEventId');\n\nexport {\n getBookBetId,\n getUseBonusBalance,\n getIsBookingMode,\n getQuickBetStake,\n getShouldShowQuickBetInfoPopover,\n getQuickBetEnabled,\n getQuickBetInProcessCount,\n getQuickBetSelectedEventId\n};\n","import { createSelector } from 'reselect';\nimport {\n getFreeBetAmountsUtil,\n getSelectedFreeBetAmountUtil\n} from 'utils/betslip/freeBetHelpers';\nimport { getSelectorRoot } from 'utils/selectors';\nimport { EBetslipType } from 'interfaces/betslip';\nimport { GENERAL_FIELD_KEY } from 'newelements/_Betslip/utils/constants/shared';\nimport {\n getBetslipType,\n getComputedBetType\n} from 'store/selectors/betslip/configs';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\n// Free bet\nconst getFreeBets = getBetSlip('freeBets');\n\nconst getIsFreeBetEnabled = createSelector(\n [getFreeBets],\n ({ selectedFreeBetEventId }) => !!selectedFreeBetEventId\n);\n\nconst getSelectedFreeBetEventId = createSelector(\n [getFreeBets],\n freeBets => freeBets.selectedFreeBetEventId\n);\n\nconst getFreeBetAmounts = createSelector(\n [getBetslipType, getComputedBetType, getFreeBets],\n getFreeBetAmountsUtil\n);\n\nconst getSelectedFreeBetAmount = createSelector(\n [getFreeBetAmounts, getFreeBets],\n getSelectedFreeBetAmountUtil\n);\n\nconst getSingleEventFreeBetAmounts = (eventId: string | number) =>\n createSelector([getFreeBets], freeBetsStore => {\n return freeBetsStore.singleEventFreeBets[eventId];\n });\n\nconst getFreeBetsByEventId = (eventId: string | number) =>\n createSelector(\n [getFreeBets, getBetslipType],\n (freeBetsStore, betslipType) => {\n if (eventId) {\n if (eventId !== GENERAL_FIELD_KEY) {\n return freeBetsStore.singleEventFreeBets[eventId] || [];\n } else {\n if (betslipType === EBetslipType.BASIC) {\n return freeBetsStore.multipleFreeBets || [];\n }\n\n return freeBetsStore.advancedFreeBets || [];\n }\n }\n\n return [];\n }\n );\n\nconst getSelectedFreeBetData = createSelector(\n [getFreeBets, getFreeBetAmounts],\n (freeBetsStore, amounts) =>\n freeBetsStore.selectedFreeBetId &&\n amounts?.find(item => item.value === freeBetsStore.selectedFreeBetId)\n);\n\nconst getIsFrenchFreeBetEnabled = getBetSlip('isFrenchFreeBetEnabled');\n\nconst getIsSingleEventFreeBetEnabled = (eventId?: string | number) =>\n createSelector([getSelectedFreeBetEventId], selectedFreeBetEventId =>\n eventId ? eventId === selectedFreeBetEventId : false\n );\n\nexport {\n getFreeBets,\n getFreeBetAmounts,\n getFreeBetsByEventId,\n getIsFreeBetEnabled,\n getSelectedFreeBetData,\n getSelectedFreeBetAmount,\n getSelectedFreeBetEventId,\n getIsFrenchFreeBetEnabled,\n getSingleEventFreeBetAmounts,\n getIsSingleEventFreeBetEnabled\n};\n","import type { FreeBetAmounts, TFreeBetAmount } from 'interfaces/bet-data';\nimport { EBetslipBetType, EBetslipType } from 'interfaces/betslip';\nimport { GENERAL_FIELD_KEY } from 'newelements/_Betslip/utils/constants/shared';\nimport type { IBetslipFreeBetSliceInitial } from 'store/reducers/betslip/freeBet';\n\ntype TGetFreeBetAmountsUtil = (\n betslipType: EBetslipType,\n betType: EBetslipBetType,\n freeBetStore: IBetslipFreeBetSliceInitial['freeBets']\n) => FreeBetAmounts;\n\nexport const getFreeBetAmountsUtil: TGetFreeBetAmountsUtil = (\n betslipType,\n betType,\n freeBetStore\n) => {\n if (betslipType === EBetslipType.BASIC) {\n switch (betType) {\n case EBetslipBetType.SINGLE:\n if (freeBetStore.selectedFreeBetEventId) {\n return freeBetStore.singleEventFreeBets[\n freeBetStore.selectedFreeBetEventId\n ];\n }\n\n break;\n case EBetslipBetType.CHAIN:\n case EBetslipBetType.MULTIPLE:\n return freeBetStore.multipleFreeBets;\n }\n } else {\n if (freeBetStore.selectedFreeBetEventId === GENERAL_FIELD_KEY) {\n return freeBetStore.advancedFreeBets;\n }\n\n if (freeBetStore.selectedFreeBetEventId) {\n return freeBetStore.singleEventFreeBets[\n freeBetStore.selectedFreeBetEventId\n ];\n }\n }\n\n return [];\n};\n\ntype TGetSelectedFreeBetAmountUtil = (\n freeBetAmounts: FreeBetAmounts,\n freeBetStore: IBetslipFreeBetSliceInitial['freeBets']\n) => TFreeBetAmount['label'] | undefined;\n\nexport const getSelectedFreeBetAmountUtil: TGetSelectedFreeBetAmountUtil = (\n freeBetAmounts,\n freeBets\n) => {\n if (!!freeBets.selectedFreeBetEventId && freeBetAmounts) {\n return (\n freeBetAmounts.find(\n (freeBetAmount: { value: number }) =>\n Number(freeBetAmount.value) === Number(freeBets.selectedFreeBetId)\n )?.label || freeBetAmounts[0]?.label\n );\n }\n};\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getOpenBetsData = getBetSlip('openBetsData');\nconst getOpenBetsCount = getBetSlip('openBetsCount');\nconst getOpenBetsLoading = getBetSlip('openBetsLoading');\nconst getUpdateOpenBetsTrigger = getBetSlip('updateOpenBetsTrigger');\nconst getOpenBetsCountAfterCashout = getBetSlip('openBetsCountAfterCashout');\n\nexport {\n getOpenBetsData,\n getOpenBetsCount,\n getOpenBetsLoading,\n getUpdateOpenBetsTrigger,\n getOpenBetsCountAfterCashout\n};\n","import { createSelector } from 'reselect';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst _getAllLsBets = getBetSlip('allLsBets');\n// @Todo need to update or discus\nconst getAllLsBets = createSelector([_getAllLsBets], allLsBets =>\n !SpringConfigs.MOCKED_DATA ? allLsBets : []\n);\n\nconst getAllBets = getBetSlip('allLsBets');\nconst getSubscriptions = getBetSlip('subscriptions');\nconst getIsBetInProgress = getBetSlip('isBetInProgress');\nconst getBettedTrigger = getBetSlip('bettedTrigger');\nconst getUpdatedBetTickets = getBetSlip('updatedBetTickets');\nconst getBetTypesConf = getBetSlip('betTypesConf');\nconst getSelectedBetType = getBetSlip('selectedBetType');\nconst getSubscribedEvents = getBetSlip('subscribedEvents');\nconst getConflictingGameIds = getBetSlip('conflictingGameIds');\nconst getTicketsChanged = getBetSlip('ticketsChanged');\nconst getEventIds = createSelector([getSubscriptions], subscriptions =>\n subscriptions.map(subscription => subscription.eventId)\n);\n\nconst getIsSpEvents = createSelector([getAllBets], bets =>\n bets.some(({ sp }) => sp)\n);\n\nconst getSingleBetById = (eventId?: string | number) =>\n createSelector([getAllBets], bets =>\n bets.find(bet => (eventId ? eventId === bet.eventId : false))\n );\n\nconst getAllBetIds = createSelector([getAllBets], bets =>\n bets.map(({ eventId }) => eventId)\n);\n\nconst getAllBetsCount = createSelector([getAllBets], bets => bets.length);\n\nexport {\n getAllBets,\n getEventIds,\n getAllBetIds,\n getAllLsBets,\n getIsSpEvents,\n getAllBetsCount,\n getBetTypesConf,\n getBettedTrigger,\n getSingleBetById,\n getSubscriptions,\n getTicketsChanged,\n getIsBetInProgress,\n getSelectedBetType,\n getSubscribedEvents,\n getUpdatedBetTickets,\n getConflictingGameIds\n};\n","import { createSelector } from 'reselect';\nimport { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getOddFormat = getBetSlip('oddFormat');\nconst getTotalOddsReturn = getBetSlip('totalOddsReturn');\nconst getEventPrevOdds = getBetSlip('eventsPrevOdds');\nconst getBetsTotalOdds = getBetSlip('betsTotalOdds');\n\nconst getEventPrevOddById = (eventId: number) =>\n createSelector([getEventPrevOdds], prevOdds => prevOdds[eventId]);\n\nexport {\n getOddFormat,\n getBetsTotalOdds,\n getTotalOddsReturn,\n getEventPrevOddById\n};\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getStakes = getBetSlip('stakes');\nconst getTotalStake = getBetSlip('totalStake');\nconst getTotalBetStake = getBetSlip('totalBetStake');\nconst getTotalSingleWin = getBetSlip('totalSingleWin');\nconst getMaxStakeLoading = getBetSlip('maxStakeLoading');\nconst getPredefinedStakes = getBetSlip('predefinedStakes');\nexport {\n getStakes,\n getTotalStake,\n getTotalBetStake,\n getTotalSingleWin,\n getMaxStakeLoading,\n getPredefinedStakes\n};\n","import { createSelector } from 'reselect';\nimport {\n getSelectedEventProfitBoostItemsUtil,\n getSelectedProfitBoostItemUtil\n} from 'utils/betslip/profitBoostHelpers';\nimport { getSelectorRoot } from 'utils/selectors';\nimport { GENERAL_FIELD_KEY } from 'newelements/_Betslip/utils/constants/shared';\nimport { getUser } from 'store/selectors/user-data';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getProfitBoost = getBetSlip('profitBoost');\nconst getProfitBoostAdvanced = getBetSlip('profitBoostAdvanced');\n\n// @Todo need to update profit Boost selector after changing state\n\nconst getProfitBoost_ = getBetSlip('_profitBoost');\n\nconst getIsProfitBoostAvailable = createSelector(\n [getUser, getProfitBoost_],\n ({ has_free_bets }, profitBoost) => {\n return (\n has_free_bets &&\n !!(\n profitBoost?.items?.length ||\n Object.values(profitBoost.singleProfitBoostItems).length\n )\n );\n }\n);\n\nconst getSelectedEventProfitBoostItems = createSelector(\n [getProfitBoost_],\n getSelectedEventProfitBoostItemsUtil\n);\n\nconst getSelectedProfitBoostItem = createSelector(\n [getProfitBoost_, getSelectedEventProfitBoostItems],\n getSelectedProfitBoostItemUtil\n);\n\nconst checkIsProfitBoostAvailable = (eventId: string | number) =>\n createSelector(\n [getIsProfitBoostAvailable, getProfitBoost_],\n (isAvailable, { singleProfitBoostItems, items }) => {\n if (!isAvailable) {\n return false;\n }\n\n if (eventId === GENERAL_FIELD_KEY) {\n return !!items.length;\n }\n\n return !!singleProfitBoostItems[eventId]?.length;\n }\n );\n\nconst getIsEventSelectedOnProfitBoost = (eventId?: string | number) =>\n createSelector(\n [getProfitBoost_],\n ({ profitBoostSelectedEventId }) =>\n !!(profitBoostSelectedEventId && profitBoostSelectedEventId === eventId)\n );\n\nconst getSelectedProfitBoostItemByEventId = (\n eventId: string | number | undefined\n) =>\n createSelector(\n [getProfitBoost_, getSelectedProfitBoostItem],\n ({ profitBoostSelectedEventId }, selectedProfitBoostItem) => {\n if (profitBoostSelectedEventId !== eventId) {\n return null;\n }\n\n return selectedProfitBoostItem;\n }\n );\n\nexport {\n getProfitBoost,\n getProfitBoostAdvanced,\n getIsProfitBoostAvailable,\n getSelectedProfitBoostItem,\n checkIsProfitBoostAvailable,\n getIsEventSelectedOnProfitBoost,\n getSelectedEventProfitBoostItems,\n getSelectedProfitBoostItemByEventId,\n getProfitBoost_\n};\n","import { createSelector } from 'reselect';\nimport { add } from 'utils/generic/calculator';\nimport { getSelectorRoot } from 'utils/selectors';\nimport { EAdvancedSelectedTabs } from 'interfaces/bet-data';\nimport { EBetslipBetType, EBetslipType } from 'interfaces/betslip';\nimport { GENERAL_FIELD_KEY } from 'newelements/_Betslip/utils/constants/shared';\nimport { getAllBets } from 'store/selectors/betslip/bets';\nimport {\n getAdvancedSelectedTab,\n getBetslipType,\n getComputedBetType,\n getType\n} from 'store/selectors/betslip/configs';\nimport { getTotalBetStake } from 'store/selectors/betslip/stake';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getBetsCalculations = getBetSlip('calculations');\n\nconst getSingleEventCalculationData = (eventId?: number | string) =>\n createSelector(\n [getBetsCalculations, getComputedBetType],\n ({ singleEventsCalculations, general }, betType) => {\n if (!eventId) {\n return null;\n }\n\n if (eventId === GENERAL_FIELD_KEY) {\n if (betType === EBetslipBetType.SINGLE) {\n let generalStakeForSingleEvents = Object.values(\n singleEventsCalculations\n )?.[0]?.stake;\n\n Object.values(singleEventsCalculations).forEach(calculation => {\n if (\n !generalStakeForSingleEvents ||\n calculation?.stake !== generalStakeForSingleEvents\n ) {\n generalStakeForSingleEvents = '';\n }\n });\n\n return {\n ...general,\n stake: generalStakeForSingleEvents\n };\n }\n\n return general;\n }\n\n return singleEventsCalculations[eventId];\n }\n );\n\nconst getIsCounterOfferActiveByEventId = (eventId: string | number) =>\n createSelector([getBetsCalculations], ({ singleEventsCalculations }) => {\n return !!(\n singleEventsCalculations[eventId] &&\n 'oddOffer' in singleEventsCalculations[eventId]\n );\n });\n\nconst getIsSuperBetActiveByEventId = (eventId: string | number) =>\n createSelector(\n [getBetsCalculations],\n ({ general, singleEventsCalculations }) => {\n if (eventId === GENERAL_FIELD_KEY) {\n return !!general?.superBet;\n }\n\n return !!singleEventsCalculations[eventId]?.superBet;\n }\n );\n\nconst getCounterOfferActiveEventIds = createSelector(\n [getBetsCalculations],\n ({ singleEventsCalculations }) => {\n return Object.entries(singleEventsCalculations).reduce<(string | number)[]>(\n (ids, [eventId, calc]) => {\n return calc && 'oddOffer' in calc ? [...ids, eventId] : ids;\n },\n []\n );\n }\n);\n\nconst getCounterOffersFromCalculations = createSelector(\n [getBetsCalculations, getCounterOfferActiveEventIds],\n ({ singleEventsCalculations }, ids) => {\n return ids.reduce((acc, id) => {\n return {\n ...acc,\n [id]: singleEventsCalculations[id]?.oddOffer\n };\n }, {} as Record);\n }\n);\n\nconst getSuperBetActiveEventIds = createSelector(\n [getBetsCalculations],\n ({ singleEventsCalculations, general }) => {\n const eventIds = Object.entries(singleEventsCalculations).reduce<\n (string | number)[]\n >((ids, [eventId, calc]) => {\n return calc?.superBet ? [...ids, eventId] : ids;\n }, []);\n\n if (general?.superBet) {\n eventIds.push(GENERAL_FIELD_KEY);\n }\n\n return eventIds;\n }\n);\n\nconst getSingleEventsStakes = createSelector(\n [getBetsCalculations],\n ({ singleEventsCalculations }) => {\n return Object.values(singleEventsCalculations).reduce(\n (acc, calc) => acc + +(calc?.stake ?? 0),\n 0\n );\n }\n);\n\nconst getAllSingleEventsPossinleWin = createSelector(\n [getBetsCalculations],\n ({ singleEventsCalculations }) => {\n return Object.values(singleEventsCalculations).reduce(\n (totalReturn, calculation) => {\n return totalReturn + calculation?.finalResult?.possibleWin || 0;\n },\n 0\n );\n }\n);\n\nconst _getAdvancedStake = (eventId?: string | number, isFinal = false) =>\n createSelector(\n [getAllBets, getBetsCalculations, getTotalBetStake, getAdvancedSelectedTab],\n (allBets, { singleEventsCalculations }, totalBetStake, activeTab) => {\n if (allBets.length === 1 || (eventId && eventId !== GENERAL_FIELD_KEY)) {\n return (\n (isFinal\n ? singleEventsCalculations[eventId ?? allBets[0].eventId]\n ?.finalStake\n : singleEventsCalculations[eventId ?? allBets[0].eventId]\n ?.finalResult?.stake) ?? 0\n );\n }\n\n if (activeTab === EAdvancedSelectedTabs.QUICKBET) {\n return totalBetStake;\n }\n\n const singleStakes = Object.values(singleEventsCalculations).reduce(\n (acc, calculation) => {\n return add(\n acc,\n (isFinal\n ? calculation?.finalStake\n : calculation?.finalResult?.stake) ?? 0\n );\n },\n 0\n );\n\n return add(singleStakes, totalBetStake);\n }\n );\n\nconst getAdvancedFinalStakeAmount = (eventId?: string | number) =>\n _getAdvancedStake(eventId, true);\n\nconst getAdvancedTotalStake = (eventId?: string | number) =>\n _getAdvancedStake(eventId, false);\n\nconst getAllStakes = createSelector(\n [getBetsCalculations],\n ({ singleEventsCalculations, general }) => {\n return {\n general: general?.stake,\n single: Object.entries(singleEventsCalculations).reduce<\n Record\n >((acc, [id, info]) => ({ ...acc, [id]: info?.stake ?? '' }), {})\n };\n }\n);\n\nconst getBetsTotalStake = createSelector(\n [\n getType,\n getBetslipType,\n getAdvancedFinalStakeAmount(),\n getBetsCalculations,\n getAllStakes\n ],\n (\n betType,\n betslipType,\n advancedTotalStake,\n singleEventsCalculations,\n allStakes\n ) => {\n if (betslipType === EBetslipType.BASIC) {\n switch (betType) {\n case EBetslipBetType.SINGLE:\n return Object.values(allStakes.single)?.reduce(\n (total, stake) => total + +(stake || 0),\n 0\n );\n case EBetslipBetType.SYSTEM:\n return singleEventsCalculations.general?.finalResult.stake ?? 0;\n default:\n return allStakes.general || 0;\n }\n } else {\n return advancedTotalStake || 0;\n }\n }\n);\n\nexport {\n getAllStakes,\n getSingleEventsStakes,\n getBetsTotalStake,\n getBetsCalculations,\n getAdvancedTotalStake,\n getAdvancedFinalStakeAmount,\n getAllSingleEventsPossinleWin,\n getIsSuperBetActiveByEventId,\n getCounterOfferActiveEventIds,\n getSuperBetActiveEventIds,\n getIsCounterOfferActiveByEventId,\n getCounterOffersFromCalculations,\n getSingleEventCalculationData\n};\n","import { createSelector } from 'reselect';\nimport { getSelectorRoot } from 'utils/selectors';\n\nconst getBetSlip = getSelectorRoot('betSlip');\n\nconst getCounterOffers = getBetSlip('counterOffers');\nconst getSentSuperBetCount = getBetSlip('sentSuperBetCount');\nconst getOddsCounterOffers = getBetSlip('oddsCounterOffers');\nconst getSentCounterOffersCount = getBetSlip('sentCounterOffersCount');\nconst getCounterOffersUnderReviewModal = getBetSlip(\n 'counterOfferUnderReviewModal'\n);\n\nconst getSelectedOddCounterOffer = getBetSlip('selectedOddCounterOffer');\nconst getSelectedCounterOfferType = getBetSlip('counterOfferSelectedType');\nconst getIsCounterOfferActive = createSelector(\n [getCounterOffers],\n counterOffers => Object.values(counterOffers).some(({ isActive }) => isActive)\n);\n\nexport {\n getCounterOffers,\n getSentSuperBetCount,\n getOddsCounterOffers,\n getCounterOffersUnderReviewModal,\n getIsCounterOfferActive,\n getSentCounterOffersCount,\n getSelectedOddCounterOffer,\n getSelectedCounterOfferType\n};\n","import { createSelector } from 'reselect';\nimport { getSelectorRoot } from 'utils/selectors';\nimport { getOpenBetsData } from 'store/selectors/betslip/openBets';\n\nexport const getBetSlip = getSelectorRoot('betSlip');\n\nexport const getSelected = getBetSlip('selected');\nexport const getSystem = getBetSlip('system');\n// @Todo need to change this selector after moving system bet (combinations, selectedCombinationIndex ...) into redux\nexport const getEditBet = getBetSlip('editBet');\nexport const getEditableBetTicket = createSelector(\n [getOpenBetsData, getEditBet],\n (openBets, editBet) =>\n editBet?.active && editBet?.betId\n ? openBets?.find(({ id }) => id === editBet.betId)\n : null\n);\n\nexport const getCashoutFrom = getBetSlip('cashoutFrom');\nexport const getCashOutTicket = getBetSlip('cashOutTicket');\nexport const getSportBonuses = getBetSlip('sportBonuses');\nexport const getSingleReturn = getBetSlip('singleReturn');\nexport const getIsCalculating = getBetSlip('isCalculating');\nexport const getCalculationLoading = getBetSlip('calculationLoading');\n\nexport const getBasicEw = getBetSlip('basicEw');\n\nexport const getSelectedSystem = getBetSlip('selectedSystem');\n\nexport const getPossibleSystemCombinations = getBetSlip(\n 'possibleSystemCombinations'\n);\nexport const getSystemMinCombinationsCount = getBetSlip(\n 'systemMinCombinationsCount'\n);\n\nexport * from './bets';\nexport * from './odds';\nexport * from './stake';\nexport * from './configs';\nexport * from './freeBet';\nexport * from './features';\nexport * from './openBets';\nexport * from './profitBoost';\nexport * from './calculations';\nexport * from './counterOffer';\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getSocket = getSelectorRoot('socket');\n\nexport const getPartnerConfigs = getSocket('partnerConfigs');\nexport const getJackpots = getSocket('jackpots');\nexport const getIsConnected = getSocket('isConnected');\n","import { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { WebsocketEnhanced } from 'interfaces/spring-websocket-interfaces';\nimport { connectingWS } from 'hooks/useSpringConnect';\n\nconst permissibleOddsCommand = async (\n commandObj: any,\n rid: string,\n callback: Function,\n updateCallback: Function,\n callbackError: Function | null\n) => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n commandObj,\n rid,\n callback,\n updateCallback,\n callbackError\n );\n });\n};\n\nexport const getPermissibleOdds = (\n callback: Function,\n callbackError: Function | null\n): void => {\n const command = {\n command: CommandNames.GET_PERMISSIBLE_ODDS,\n params: {},\n rid: RidGenerator.gForCommand()\n };\n\n permissibleOddsCommand(command, '', callback, () => undefined, callbackError);\n};\n","import { CALCULATE_POWER_OF_10 } from 'utils/constants/app/general';\nimport { ODD_FORMATS } from 'utils/constants/betslip/odd-formats';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { Ladder, PermissibleOdds } from 'interfaces/bet-data';\nimport { getPermissibleOdds } from 'services/get-permissible-odds';\nimport Store from 'store';\nimport { ladderIsLoaded, updateOddFormat } from 'store/actions/betslip';\n\n/*eslint no-magic-numbers:*/\n// TODO check after betslip refactor\n\nconst Config = {\n decimalFormatRemove3Digit: false,\n roundDecimalCoeficients: SpringConfigs.ODD_ROUNDING,\n useLadderForFractionalFormat: true\n};\n\nconst cache: { [key: string]: string } = {};\n\nconst {\n oddFormat,\n ladderLoaded\n}: { oddFormat: number; ladderLoaded: boolean } = Store.getState().betSlip;\n\nlet priceDecimal: number | undefined;\n\nlet ladder: Ladder[] | boolean = false;\n\nexport async function loadLadder(id = 0): Promise {\n Store.dispatch(ladderIsLoaded());\n getPermissibleOdds(\n (response: PermissibleOdds) => {\n if (response?.details) {\n ladder = response.details;\n Store.dispatch(updateOddFormat(id));\n } else {\n ladder = [];\n }\n },\n () => {\n ladder = [];\n }\n );\n}\n\nif (!ladderLoaded) {\n loadLadder(oddFormat);\n}\n\n/**\n * Odd converter\n * returns a function to convert decimal odds to corresponding format\n * Usage:\n * convert(odd, formatID)\n * e.g. const coeficient = convert(1.01, 2)\n */\nexport function convert(\n val: string | number,\n formatID: number | string,\n type = ''\n): string {\n if (isNaN(+val) || +val === Infinity) {\n return '-';\n }\n\n if ((formatID === 1 || formatID === 'fractional') && !ladder) {\n return '-';\n }\n\n const format =\n ODD_FORMATS.find(\n format => format.value === formatID || format.id === formatID\n )?.value || 'decimal';\n\n const value = parseFloat(`${val}`);\n const cacheKey = `${format}${value}`;\n\n if (isNaN(value)) {\n return '';\n }\n\n if (cache[cacheKey] === undefined) {\n if (\n format === 'fractional' &&\n Config.useLadderForFractionalFormat &&\n type === 'fictional' &&\n value !== undefined\n ) {\n // use it to calculate express odds as you see on bet365 :)\n cache[cacheKey] = `${Math.round((value - 1) * 100 || 0) / 100}/1`;\n } else {\n const converted = convertLog(value, format, ladder as Ladder[]);\n let roundedConverted = String(converted) || '';\n\n if (converted && format === 'decimal') {\n if (!priceDecimal) {\n const partnerConfigs = Store.getState().socket.partnerConfigs;\n priceDecimal = partnerConfigs?.price_decimals;\n }\n\n if (\n priceDecimal &&\n converted &&\n String(converted)?.split('.')?.[1]?.length > priceDecimal\n ) {\n roundedConverted = Number(converted).toFixed(priceDecimal);\n }\n }\n\n cache[cacheKey] = roundedConverted;\n }\n }\n\n return cache[cacheKey];\n}\n\nfunction convertLog(value: number, format: string, ladder: Ladder[]) {\n const fValue = value;\n const iValue = Math.floor(value);\n const rValue =\n value !== undefined ? Math.round(fValue * 100 || 0) / 100 : value;\n\n switch (format) {\n case 'decimal':\n return decimalValue(value, iValue, fValue);\n\n case 'fractional':\n return fractionalValue(value, fValue, rValue, ladder);\n\n case 'american':\n return americanValue(value, rValue);\n\n case 'hongkong':\n return hongKongValue(value, iValue, fValue);\n\n case 'malay':\n return malayValue(fValue);\n\n case 'indo':\n return indoValue(fValue);\n\n default:\n return rValue;\n }\n}\n\nfunction decimalValue(value: number, iValue: number, fValue: number) {\n return value !== undefined\n ? iValue !== fValue &&\n value.toString().split('.')[1] &&\n value.toString().split('.')[1].length > 2 &&\n !Config.decimalFormatRemove3Digit\n ? Math.round(\n value *\n Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ) / Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n : fValue.toFixed(2)\n : value;\n}\n\nfunction fractionalValue(\n value: number,\n fValue: number,\n rValue: number,\n ladder: Ladder[]\n) {\n if (value && Config.useLadderForFractionalFormat) {\n const fracFL = dec2fracFromLadder(fValue, ladder);\n\n if (fracFL) {\n return fracFL;\n } else {\n const frac = dec2frac(rValue);\n\n if (frac) {\n return frac;\n }\n }\n\n return value;\n } else {\n return '-';\n }\n}\n\nfunction americanValue(value: number, rValue: number) {\n return value\n ? rValue > 2\n ? `+${(100 * (rValue - 1)).toString().split('.')[0]}`\n : rValue !== 1\n ? (-100 / (rValue - 1)).toString().split('.')[0]\n : '-'\n : rValue;\n}\n\nfunction hongKongValue(value: number, iValue: number, fValue: number) {\n return value !== undefined\n ? iValue !== fValue && value.toString().split('.')[1].length > 2\n ? Math.round(\n (value - 1) *\n Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ) / Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n : (fValue - 1.0).toFixed(2)\n : value;\n}\n\nfunction malayValue(fValue: number) {\n if (fValue === 2) {\n return '0.000';\n } else if (fValue > 2) {\n return (\n Math.round(\n +(1 / (1 - fValue)).toFixed(Config.roundDecimalCoeficients + 1) *\n Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ) / Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ).toFixed(Config.roundDecimalCoeficients);\n } else {\n return (fValue - 1).toFixed(Config.roundDecimalCoeficients);\n }\n}\n\nfunction indoValue(fValue: number) {\n if (fValue === 2) {\n return '0.000';\n } else if (fValue > 2) {\n return (fValue - 1).toFixed(Config.roundDecimalCoeficients);\n } else {\n return (\n Math.round(\n +(1 / (1 - fValue)).toFixed(Config.roundDecimalCoeficients + 1) *\n Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ) / Math.pow(CALCULATE_POWER_OF_10, Config.roundDecimalCoeficients)\n ).toFixed(Config.roundDecimalCoeficients);\n }\n}\n\nfunction dec2fracFromLadder(dec: number, ladder: Ladder[]) {\n let frac = '';\n\n if (ladder.length) {\n let price = 0;\n let issetPriceArray = ladder.find(({ Price }) => Price === dec);\n\n if (issetPriceArray) {\n frac = `${issetPriceArray.Numerator}/${issetPriceArray.Denominator}`;\n } else {\n for (let i = 0; i < ladder.length; i++) {\n if (ladder[i].Price > price && ladder[i].Price < dec) {\n price = ladder[i].Price;\n }\n }\n\n issetPriceArray = ladder.find(({ Price }) => Price === price);\n\n if (issetPriceArray) {\n frac = `${issetPriceArray.Numerator}/${issetPriceArray.Denominator}`;\n }\n }\n }\n\n return frac;\n}\n\nfunction dec2frac(decVal: number) {\n let Znxt: number;\n let Dnxt: number;\n let Nnxt: number;\n\n function recCalc(Zcur: number, Dcur?: number, Dprev?: number): string {\n Dcur = Dcur !== undefined ? Dcur : 1;\n Dprev = Dprev !== undefined ? Dprev : 0;\n Znxt = 1 / (Zcur - Math.floor(Zcur));\n Dnxt = Dcur * Math.floor(Znxt) + Dprev;\n Nnxt = Math.round(decVal * Dnxt);\n\n return Nnxt / Dnxt === decVal\n ? `${Nnxt.toString()}/${Dnxt.toString()}`\n : recCalc(Znxt, Dnxt, Dcur);\n }\n\n // Use this casting method because of JS number bug for example \"2.2 - 1 = 1.1999(9)\"\n if (decVal !== Math.floor(decVal)) {\n decVal = parseFloat(\n `${(Math.floor(decVal) - 1).toString()}.${String(decVal).split('.')[1]}`\n );\n } else {\n decVal = decVal - 1;\n }\n\n return decVal % 1 === 0 ? `${String(decVal)}/1` : String(recCalc(decVal));\n}\n","import { FAVORITE } from 'utils/constants/casino/casino-element-names';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { NewCasinoCategory } from 'interfaces/new-casino';\n\nexport const leftSideBarCasinoMain = (): boolean => {\n if (isMobile()) {\n return false;\n }\n\n const matchCasinoUrl = new RegExp(`${SpringConfigs.PAGE_URLS.casino}/`);\n\n return (\n !!window.location.href.match(matchCasinoUrl) &&\n SpringConfigs.LEFT_SIDE_BAR &&\n SpringConfigs.LEFT_SIDE_BAR_CASINO\n );\n};\n\nexport const recentPlayedParams = (catId?: number): { category_id: number } => {\n const params = { category_id: catId || 0 };\n\n return params;\n};\n\nexport const isShowGamesCountBadge = (\n category: NewCasinoCategory,\n gamesCount?: boolean\n): boolean => {\n return !!(\n (!!+category.games_count && !!gamesCount) ||\n (category.id === FAVORITE && +category.games_count)\n );\n};\n\nexport const SELECT_PROVIDERS_TYPE = 'providers';\n\nexport const clearCasinoPopupQuery = (): URLSearchParams => {\n const querySearch = new URLSearchParams(window.location.search);\n\n querySearch.delete('mode');\n querySearch.delete('login');\n querySearch.delete('gameId');\n querySearch.delete('preview');\n querySearch.delete('profile');\n querySearch.delete('accounts');\n querySearch.delete('settings');\n\n return querySearch;\n};\n","import i18n from 'i18next';\n\nexport const CountryCodes = [\n {\n code: 'AF',\n alpha3Code: 'AFG',\n name: 'Afghanistan',\n translationName: i18n.t('countries.Afghanistan'),\n phone_code: '93',\n lang: 'tur',\n currency: 'AFN',\n alias: 'afghanistan'\n },\n {\n code: 'AX',\n alpha3Code: 'ALA',\n name: 'Aland Islands',\n translationName: i18n.t('countries.AlandIslands'),\n phone_code: '358 18',\n lang: '',\n currency: '',\n alias: 'aland-islands'\n },\n {\n code: 'AL',\n alpha3Code: 'ALB',\n name: 'Albania',\n translationName: i18n.t('countries.Albania'),\n phone_code: '355',\n lang: '',\n currency: 'ALL',\n alias: 'albania'\n },\n {\n code: 'DZ',\n alpha3Code: 'DZA',\n name: 'Algeria',\n translationName: i18n.t('countries.Algeria'),\n phone_code: '213',\n lang: 'fre',\n currency: 'DZD',\n alias: 'algeria'\n },\n {\n code: 'AS',\n alpha3Code: 'ASM',\n name: 'American Samoa',\n translationName: i18n.t('countries.AmericanSamoa'),\n phone_code: '1 684',\n lang: '',\n currency: 'USD',\n alias: 'american-samoa'\n },\n {\n code: 'AD',\n alpha3Code: 'AND',\n name: 'Andorra',\n translationName: i18n.t('countries.Andorra'),\n phone_code: '376',\n lang: 'fre',\n currency: 'EUR',\n alias: 'andorra'\n },\n {\n code: 'AO',\n alpha3Code: 'AGO',\n name: 'Angola',\n translationName: i18n.t('countries.Angola'),\n phone_code: '244',\n lang: 'por',\n currency: 'AOA',\n alias: 'angola'\n },\n {\n code: 'AI',\n alpha3Code: 'AIA',\n name: 'Anguilla',\n translationName: i18n.t('countries.Anguilla'),\n phone_code: '1 264',\n lang: '',\n currency: 'XCD',\n alias: 'anguilla'\n },\n {\n code: 'AG',\n alpha3Code: 'ATG',\n name: 'Antigua and Barbuda',\n translationName: i18n.t('countries.AntiguaandBarbuda'),\n phone_code: '1 268',\n lang: '',\n currency: 'XCD',\n alias: 'antigua-and-barbuda'\n },\n {\n code: 'AR',\n alpha3Code: 'ARG',\n name: 'Argentina',\n translationName: i18n.t('countries.Argentina'),\n phone_code: '54',\n lang: 'spa',\n currency: 'ARS',\n alias: 'argentina'\n },\n {\n code: 'AM',\n alpha3Code: 'ARM',\n name: 'Armenia',\n translationName: i18n.t('countries.Armenia'),\n phone_code: '374',\n lang: 'arm',\n currency: 'AMD',\n alias: 'armenia'\n },\n {\n code: 'AW',\n alpha3Code: 'ABW',\n name: 'Aruba',\n translationName: i18n.t('countries.Aruba'),\n phone_code: '297',\n lang: '',\n currency: 'AWG',\n alias: 'aruba'\n },\n {\n code: 'AU',\n alpha3Code: 'AUS',\n name: 'Australia',\n translationName: i18n.t('countries.Australia'),\n phone_code: '61',\n lang: '',\n currency: 'AUD',\n alias: 'australia'\n },\n {\n code: 'AT',\n alpha3Code: 'AUT',\n name: 'Austria',\n translationName: i18n.t('countries.Austria'),\n phone_code: '43',\n lang: 'ger',\n currency: 'EUR',\n alias: 'austria'\n },\n {\n code: 'AZ',\n alpha3Code: 'AZE',\n name: 'Azerbaijan',\n translationName: i18n.t('countries.Azerbaijan'),\n phone_code: '994',\n lang: 'tur',\n currency: 'AZN',\n alias: 'azerbaijan'\n },\n {\n code: 'BS',\n alpha3Code: 'BHS',\n name: 'Bahamas',\n translationName: i18n.t('countries.Bahamas'),\n phone_code: '1 242',\n lang: '',\n currency: 'BSD',\n alias: 'bahamas'\n },\n {\n code: 'BH',\n alpha3Code: 'BHR',\n name: 'Bahrain',\n translationName: i18n.t('countries.Bahrain'),\n phone_code: '973',\n lang: '',\n currency: 'BHD',\n alias: 'bahrain'\n },\n {\n code: 'BD',\n alpha3Code: 'BGD',\n name: 'Bangladesh',\n translationName: i18n.t('countries.Bangladesh'),\n phone_code: '880',\n lang: '',\n currency: 'BDT',\n alias: 'bangladesh'\n },\n {\n code: 'BB',\n alpha3Code: 'BRB',\n name: 'Barbados',\n translationName: i18n.t('countries.Barbados'),\n phone_code: '1 246',\n lang: '',\n currency: 'BBD',\n alias: 'barbados'\n },\n {\n code: 'BY',\n alpha3Code: 'BLR',\n name: 'Belarus',\n translationName: i18n.t('countries.Belarus'),\n phone_code: '375',\n lang: 'rus',\n currency: 'BYR',\n alias: 'belarus'\n },\n {\n code: 'BE',\n alpha3Code: 'BEL',\n name: 'Belgium',\n translationName: i18n.t('countries.Belgium'),\n phone_code: '32',\n lang: 'fre',\n currency: 'EUR',\n alias: 'belgium'\n },\n {\n code: 'BZ',\n alpha3Code: 'BLZ',\n name: 'Belize',\n translationName: i18n.t('countries.Belize'),\n phone_code: '501',\n lang: '',\n currency: 'BZD',\n alias: 'belize'\n },\n {\n code: 'BJ',\n alpha3Code: 'BEN',\n name: 'Benin',\n translationName: i18n.t('countries.Benin'),\n phone_code: '229',\n lang: 'fre',\n currency: 'XOF',\n alias: 'benin'\n },\n {\n code: 'BM',\n alpha3Code: 'BMU',\n name: 'Bermuda',\n translationName: i18n.t('countries.Bermuda'),\n phone_code: '1 441',\n lang: '',\n currency: 'BMD',\n alias: 'bermuda'\n },\n {\n code: 'BT',\n alpha3Code: 'BTN',\n name: 'Bhutan',\n translationName: i18n.t('countries.Bhutan'),\n phone_code: '975',\n lang: '',\n currency: 'BTN',\n alias: 'bhutan'\n },\n {\n code: 'BO',\n alpha3Code: 'BOL',\n name: 'Bolivia',\n translationName: i18n.t('countries.Bolivia'),\n phone_code: '591',\n lang: 'spa',\n currency: 'BOB',\n alias: 'bolivia'\n },\n {\n code: 'BQ',\n alpha3Code: 'BES',\n name: 'Bonaire',\n translationName: i18n.t('countries.Bonaire'),\n phone_code: '599 7',\n lang: '',\n currency: '',\n alias: 'bonaire'\n },\n {\n code: 'BA',\n alpha3Code: 'BIH',\n name: 'Bosnia and Herzegovina',\n translationName: i18n.t('countries.BosniaandHerzegovina'),\n phone_code: '387',\n lang: '',\n currency: 'BAM',\n alias: 'bosnia-and-herzegovina'\n },\n {\n code: 'BW',\n alpha3Code: 'BWA',\n name: 'Botswana',\n translationName: i18n.t('countries.Botswana'),\n phone_code: '267',\n lang: '',\n currency: 'BWP',\n alias: 'botswana'\n },\n {\n code: 'BR',\n alpha3Code: 'BRA',\n name: 'Brazil',\n translationName: i18n.t('countries.Brazil'),\n phone_code: '55',\n lang: 'por',\n currency: 'BRL',\n alias: 'brazil'\n },\n {\n code: 'IO',\n alpha3Code: 'IOT',\n name: 'British Indian Ocean Territory',\n translationName: i18n.t('countries.BritishIndianOceanTerritory'),\n phone_code: '246',\n lang: '',\n currency: 'USD',\n alias: 'british-indian-ocean-territory'\n },\n {\n code: 'BN',\n alpha3Code: 'BRN',\n name: 'Brunei Darussalam',\n translationName: i18n.t('countries.BruneiDarussalam'),\n phone_code: '673',\n lang: '',\n currency: 'BND',\n alias: 'brunei'\n },\n {\n code: 'BG',\n alpha3Code: 'BGR',\n name: 'Bulgaria',\n translationName: i18n.t('countries.Bulgaria'),\n phone_code: '359',\n lang: '',\n currency: 'BGN',\n alias: 'bulgaria'\n },\n {\n code: 'BF',\n alpha3Code: 'BFA',\n name: 'Burkina Faso',\n translationName: i18n.t('countries.BurkinaFaso'),\n phone_code: '226',\n lang: 'fre',\n currency: 'XOF',\n alias: 'burkina-faso'\n },\n {\n code: 'BI',\n alpha3Code: 'BDI',\n name: 'Burundi',\n translationName: i18n.t('countries.Burundi'),\n phone_code: '257',\n lang: 'fre',\n currency: 'BIF',\n alias: 'burundi'\n },\n {\n code: 'CV',\n alpha3Code: 'CPV',\n name: 'Cabo Verde',\n translationName: i18n.t('countries.CaboVerde'),\n phone_code: '238',\n lang: 'por',\n currency: 'CVE',\n alias: 'cape-verde'\n },\n {\n code: 'KH',\n alpha3Code: 'KHM',\n name: 'Cambodia',\n translationName: i18n.t('countries.Cambodia'),\n phone_code: '855',\n lang: '',\n currency: 'KHR',\n alias: 'cambodia'\n },\n {\n code: 'CM',\n alpha3Code: 'CMR',\n name: 'Cameroon',\n translationName: i18n.t('countries.Cameroon'),\n phone_code: '237',\n lang: '',\n currency: 'XAF',\n alias: 'cameroon'\n },\n {\n code: 'CA',\n alpha3Code: 'CAN',\n name: 'Canada',\n translationName: i18n.t('countries.Canada'),\n phone_code: '1',\n lang: '',\n currency: 'CAD',\n alias: 'canada'\n },\n {\n code: 'KY',\n alpha3Code: 'CYM',\n name: 'Cayman Islands',\n translationName: i18n.t('countries.CaymanIslands'),\n phone_code: '1 345',\n lang: '',\n currency: 'KYD',\n alias: 'cayman-islands'\n },\n {\n code: 'CF',\n alpha3Code: 'CAF',\n name: 'Central African Republic',\n translationName: i18n.t('countries.CentralAfricanRepublic'),\n phone_code: '236',\n lang: '',\n currency: 'XAF',\n alias: 'central-african-republic'\n },\n {\n code: 'TD',\n alpha3Code: 'TCD',\n name: 'Chad',\n translationName: i18n.t('countries.Chad'),\n phone_code: '235',\n lang: '',\n currency: 'XAF',\n alias: 'chad'\n },\n {\n code: 'CL',\n alpha3Code: 'CHL',\n name: 'Chile',\n translationName: i18n.t('countries.Chile'),\n phone_code: '56',\n lang: 'spa',\n currency: 'CLP',\n alias: 'chile'\n },\n {\n code: 'CN',\n alpha3Code: 'CHN',\n name: 'China',\n translationName: i18n.t('countries.China'),\n phone_code: '86',\n lang: '',\n currency: 'CNY',\n alias: 'china'\n },\n {\n code: 'CX',\n alpha3Code: 'CXR',\n name: 'Christmas Island',\n translationName: i18n.t('countries.ChristmasIsland'),\n phone_code: '61 89164',\n lang: '',\n currency: 'AUD',\n alias: 'christmas-island'\n },\n {\n code: 'CC',\n alpha3Code: 'CCK',\n name: 'Cocos (Keeling) Islands',\n translationName: i18n.t('countries.CocosKeelingIslands'),\n phone_code: '61 89162',\n lang: '',\n currency: 'AUD',\n alias: 'cocos-island'\n },\n {\n code: 'CO',\n alpha3Code: 'COL',\n name: 'Colombia',\n translationName: i18n.t('countries.Colombia'),\n phone_code: '57',\n lang: 'spa',\n currency: 'COP',\n alias: 'colombia'\n },\n {\n code: 'KM',\n alpha3Code: 'COM',\n name: 'Comoros',\n translationName: i18n.t('countries.Comoros'),\n phone_code: '269',\n lang: '',\n currency: 'KMF',\n alias: 'comoros'\n },\n {\n code: 'CG',\n alpha3Code: 'COG',\n name: 'Congo',\n translationName: i18n.t('countries.Congo'),\n phone_code: '242',\n lang: '',\n currency: 'XAF',\n alias: 'republic-of-the-congo'\n },\n {\n code: 'CD',\n alpha3Code: 'COD',\n name: 'Congo, Democratic Republic of the (Zaire)',\n translationName: i18n.t('countries.CongoDemocraticRepublicoftheZaire'),\n phone_code: '243',\n lang: '',\n currency: 'CDF',\n alias: 'democratic-republic-of-congo'\n },\n {\n code: 'CK',\n alpha3Code: 'COK',\n name: 'Cook Islands',\n translationName: i18n.t('countries.CookIslands'),\n phone_code: '682',\n lang: '',\n currency: 'NZD',\n alias: 'cook-islands'\n },\n {\n code: 'CR',\n alpha3Code: 'CRI',\n name: 'Costa Rica',\n translationName: i18n.t('countries.CostaRica'),\n phone_code: '506',\n lang: 'spa',\n currency: 'CRC',\n alias: 'costa-rica'\n },\n {\n code: 'CI',\n alpha3Code: 'CIV',\n name: \"Cote d'Ivoire\",\n translationName: i18n.t('countries.CotedIvoire'),\n phone_code: '225',\n lang: '',\n currency: 'XOF',\n alias: 'cotedivoire'\n },\n {\n code: 'HR',\n alpha3Code: 'HRV',\n name: 'Croatia',\n translationName: i18n.t('countries.Croatia'),\n phone_code: '385',\n lang: '',\n currency: 'HRK',\n alias: 'croatia'\n },\n {\n code: 'CU',\n alpha3Code: 'CUB',\n name: 'Cuba',\n translationName: i18n.t('countries.Cuba'),\n phone_code: '53',\n lang: 'spa',\n currency: 'CUP',\n alias: 'cuba'\n },\n {\n code: 'CW',\n alpha3Code: 'CUW',\n name: 'Curacao',\n translationName: i18n.t('countries.Curacao'),\n phone_code: '599 9',\n lang: '',\n currency: '',\n alias: 'curacao'\n },\n {\n code: 'CY',\n alpha3Code: 'CYP',\n name: 'Cyprus',\n translationName: i18n.t('countries.Cyprus'),\n phone_code: '357',\n lang: 'tur',\n currency: 'EUR',\n alias: 'cyprus'\n },\n {\n code: 'CZ',\n alpha3Code: 'CZE',\n name: 'Czech Republic',\n translationName: i18n.t('countries.CzechRepublic'),\n phone_code: '420',\n lang: '',\n currency: 'CZK',\n alias: 'czech-republic'\n },\n {\n code: 'DK',\n alpha3Code: 'DNK',\n name: 'Denmark',\n translationName: i18n.t('countries.Denmark'),\n phone_code: '45',\n lang: '',\n currency: 'DKK',\n alias: 'denmark'\n },\n {\n code: 'DJ',\n alpha3Code: 'DJI',\n name: 'Djibouti',\n translationName: i18n.t('countries.Djibouti'),\n phone_code: '253',\n lang: '',\n currency: 'DJF',\n alias: 'djibouti'\n },\n {\n code: 'DM',\n alpha3Code: 'DMA',\n name: 'Dominica',\n translationName: i18n.t('countries.Dominica'),\n phone_code: '1 767',\n lang: '',\n currency: 'XCD',\n alias: 'dominica'\n },\n {\n code: 'DO',\n alpha3Code: 'DOM',\n name: 'Dominican Republic',\n translationName: i18n.t('countries.DominicanRepublic'),\n phone_code: '1 809',\n lang: 'spa',\n currency: 'DOP',\n alias: 'dominican-republic'\n },\n {\n code: 'EC',\n alpha3Code: 'ECU',\n name: 'Ecuador',\n translationName: i18n.t('countries.Ecuador'),\n phone_code: '593',\n lang: '',\n currency: 'ECS',\n alias: 'ecuador'\n },\n {\n code: 'EG',\n alpha3Code: 'EGY',\n name: 'Egypt',\n translationName: i18n.t('countries.Egypt'),\n phone_code: '20',\n lang: '',\n currency: 'EGP',\n alias: 'egypt'\n },\n {\n code: 'SV',\n alpha3Code: 'SLV',\n name: 'El Salvador',\n translationName: i18n.t('countries.ElSalvador'),\n phone_code: '503',\n lang: 'spa',\n currency: 'SVC',\n alias: 'el-salvador'\n },\n {\n code: 'GQ',\n alpha3Code: 'GNQ',\n name: 'Equatorial Guinea',\n translationName: i18n.t('countries.EquatorialGuinea'),\n phone_code: '240',\n lang: '',\n currency: 'XAF',\n alias: 'equatorial-guinea'\n },\n {\n code: 'ER',\n alpha3Code: 'ERI',\n name: 'Eritrea',\n translationName: i18n.t('countries.Eritrea'),\n phone_code: '291',\n lang: '',\n currency: 'ERN',\n alias: 'eritrea'\n },\n {\n code: 'EE',\n alpha3Code: 'EST',\n name: 'Estonia',\n translationName: i18n.t('countries.Estonia'),\n phone_code: '372',\n lang: 'rus',\n currency: 'EUR',\n alias: 'estonia'\n },\n {\n code: 'ET',\n alpha3Code: 'ETH',\n name: 'Ethiopia',\n translationName: i18n.t('countries.Ethiopia'),\n phone_code: '251',\n lang: '',\n currency: 'ETB',\n alias: 'ethiopia'\n },\n {\n code: 'FK',\n alpha3Code: 'FLK',\n name: 'Falkland Islands',\n translationName: i18n.t('countries.FalklandIslands'),\n phone_code: '500',\n lang: '',\n currency: 'FKP',\n alias: 'falkland-islands'\n },\n {\n code: 'FO',\n alpha3Code: 'FRO',\n name: 'Faroe Islands',\n translationName: i18n.t('countries.FaroeIslands'),\n phone_code: '298',\n lang: '',\n currency: 'DKK',\n alias: 'faroe-islands'\n },\n {\n code: 'FJ',\n alpha3Code: 'FJI',\n name: 'Fiji',\n translationName: i18n.t('countries.Fiji'),\n phone_code: '679',\n lang: '',\n currency: 'FJD',\n alias: 'fiji'\n },\n {\n code: 'FI',\n alpha3Code: 'FIN',\n name: 'Finland',\n translationName: i18n.t('countries.Finland'),\n phone_code: '358',\n lang: '',\n currency: 'EUR',\n alias: 'finland'\n },\n {\n code: 'FR',\n alpha3Code: 'FRA',\n name: 'France',\n translationName: i18n.t('countries.France'),\n phone_code: '33',\n lang: 'fre',\n currency: 'EUR',\n alias: 'france'\n },\n {\n code: 'GF',\n alpha3Code: 'GUF',\n name: 'French Guiana',\n translationName: i18n.t('countries.FrenchGuiana'),\n phone_code: '594',\n lang: 'fre',\n currency: 'EUR',\n alias: 'french-guiana'\n },\n {\n code: 'PF',\n alpha3Code: 'PYF',\n name: 'French Polynesia',\n translationName: i18n.t('countries.FrenchPolynesia'),\n phone_code: '689',\n lang: '',\n currency: 'XPF',\n alias: 'french-polynesia'\n },\n {\n code: 'GA',\n alpha3Code: 'GAB',\n name: 'Gabon',\n translationName: i18n.t('countries.Gabon'),\n phone_code: '241',\n lang: '',\n currency: 'XAF',\n alias: 'gabon'\n },\n {\n code: 'GM',\n alpha3Code: 'GMB',\n name: 'Gambia',\n translationName: i18n.t('countries.Gambia'),\n phone_code: '220',\n lang: '',\n currency: 'GMD',\n alias: 'gambia'\n },\n {\n code: 'GE',\n alpha3Code: 'GEO',\n name: 'Georgia',\n translationName: i18n.t('countries.Georgia'),\n phone_code: '995',\n lang: 'rus',\n currency: 'GEL',\n alias: 'georgia'\n },\n {\n code: 'DE',\n alpha3Code: 'DEU',\n name: 'Germany',\n translationName: i18n.t('countries.Germany'),\n phone_code: '49',\n lang: 'ger',\n currency: 'EUR',\n alias: 'germany'\n },\n {\n code: 'GH',\n alpha3Code: 'GHA',\n name: 'Ghana',\n translationName: i18n.t('countries.Ghana'),\n phone_code: '233',\n lang: '',\n currency: 'GHS',\n alias: 'ghana'\n },\n {\n code: 'GI',\n alpha3Code: 'GIB',\n name: 'Gibraltar',\n translationName: i18n.t('countries.Gibraltar'),\n phone_code: '350',\n lang: '',\n currency: 'GIP',\n alias: 'gibraltar'\n },\n {\n code: 'GR',\n alpha3Code: 'GRC',\n name: 'Greece',\n translationName: i18n.t('countries.Greece'),\n phone_code: '30',\n lang: 'gre',\n currency: 'EUR',\n alias: 'greece'\n },\n {\n code: 'GL',\n alpha3Code: 'GRL',\n name: 'Greenland',\n translationName: i18n.t('countries.Greenland'),\n phone_code: '299',\n lang: '',\n currency: 'DKK',\n alias: 'greenland'\n },\n {\n code: 'GD',\n alpha3Code: 'GRD',\n name: 'Grenada',\n translationName: i18n.t('countries.Grenada'),\n phone_code: '1 473',\n lang: '',\n currency: 'XCD',\n alias: 'grenada'\n },\n {\n code: 'GP',\n alpha3Code: 'GLP',\n name: 'Guadeloupe',\n translationName: i18n.t('countries.Guadeloupe'),\n phone_code: '590',\n lang: 'fre',\n currency: 'EUR',\n alias: 'france-guadeloupe'\n },\n {\n code: 'GU',\n alpha3Code: 'GUM',\n name: 'Guam',\n translationName: i18n.t('countries.Guam'),\n phone_code: '1 671',\n lang: '',\n currency: 'USD',\n alias: 'guam'\n },\n {\n code: 'GT',\n alpha3Code: 'GTM',\n name: 'Guatemala',\n translationName: i18n.t('countries.Guatemala'),\n phone_code: '502',\n lang: 'spa',\n currency: 'QTQ',\n alias: 'guatemala'\n },\n {\n code: 'GG',\n alpha3Code: 'GGY',\n name: 'Guernsey',\n translationName: i18n.t('countries.Guernsey'),\n phone_code: '44 1481',\n lang: '',\n currency: 'GGP',\n alias: 'guernsey'\n },\n {\n code: 'GN',\n alpha3Code: 'GIN',\n name: 'Guinea',\n translationName: i18n.t('countries.Guinea'),\n phone_code: '224',\n lang: '',\n currency: 'GNF',\n alias: 'guinea'\n },\n {\n code: 'GW',\n alpha3Code: 'GNB',\n name: 'Guinea-Bissau',\n translationName: i18n.t('countries.GuineaBissau'),\n phone_code: '245',\n lang: '',\n currency: 'GWP',\n alias: 'guinea-bissau'\n },\n {\n code: 'GY',\n alpha3Code: 'GUY',\n name: 'Guyana',\n translationName: i18n.t('countries.Guyana'),\n phone_code: '592',\n lang: '',\n currency: 'GYD',\n alias: 'guyana'\n },\n {\n code: 'HT',\n alpha3Code: 'HTI',\n name: 'Haiti',\n translationName: i18n.t('countries.Haiti'),\n phone_code: '509',\n lang: '',\n currency: 'HTG',\n alias: 'haiti'\n },\n {\n code: 'VA',\n alpha3Code: 'VAT',\n name: 'Holy See',\n translationName: i18n.t('countries.HolySee'),\n phone_code: '379',\n lang: '',\n currency: 'EUR',\n alias: 'vatican-city'\n },\n {\n code: 'HN',\n alpha3Code: 'HND',\n name: 'Honduras',\n translationName: i18n.t('countries.Honduras'),\n phone_code: '504',\n lang: 'spa',\n currency: 'HNL',\n alias: 'honduras'\n },\n {\n code: 'HK',\n alpha3Code: 'HKG',\n name: 'Hong Kong',\n translationName: i18n.t('countries.HongKong'),\n phone_code: '852',\n lang: '',\n currency: 'HKD',\n alias: 'hong-kong'\n },\n {\n code: 'HU',\n alpha3Code: 'HUN',\n name: 'Hungary',\n translationName: i18n.t('countries.Hungary'),\n phone_code: '36',\n lang: '',\n currency: 'HUF',\n alias: 'hungary'\n },\n {\n code: 'IS',\n alpha3Code: 'ISL',\n name: 'Iceland',\n translationName: i18n.t('countries.Iceland'),\n phone_code: '354',\n lang: '',\n currency: 'ISK',\n alias: 'iceland'\n },\n {\n code: 'IN',\n alpha3Code: 'IND',\n name: 'India',\n translationName: i18n.t('countries.India'),\n phone_code: '91',\n lang: '',\n currency: 'INR',\n alias: 'india'\n },\n {\n code: 'ID',\n alpha3Code: 'IDN',\n name: 'Indonesia',\n translationName: i18n.t('countries.Indonesia'),\n phone_code: '62',\n lang: '',\n currency: 'IDR',\n alias: 'indonesia'\n },\n {\n code: 'IR',\n alpha3Code: 'IRN',\n name: 'Iran',\n translationName: i18n.t('countries.Iran'),\n phone_code: '98',\n lang: '',\n currency: 'IRR',\n alias: 'iran'\n },\n {\n code: 'IQ',\n alpha3Code: 'IRQ',\n name: 'Iraq',\n translationName: i18n.t('countries.Iraq'),\n phone_code: '964',\n lang: '',\n currency: 'IQD',\n alias: 'iraq'\n },\n {\n code: 'IE',\n alpha3Code: 'IRL',\n name: 'Ireland',\n translationName: i18n.t('countries.Ireland'),\n phone_code: '353',\n lang: '',\n currency: 'EUR',\n alias: 'ireland'\n },\n {\n code: 'IM',\n alpha3Code: 'IMN',\n name: 'Isle of Man',\n translationName: i18n.t('countries.IsleofMan'),\n phone_code: '44 1624',\n lang: '',\n currency: 'GBP',\n alias: 'isle-of-man'\n },\n {\n code: 'IL',\n alpha3Code: 'ISR',\n name: 'Israel',\n translationName: i18n.t('countries.Israel'),\n phone_code: '972',\n lang: '',\n currency: 'ILS',\n alias: 'israel'\n },\n {\n code: 'IT',\n alpha3Code: 'ITA',\n name: 'Italy',\n translationName: i18n.t('countries.Italy'),\n phone_code: '39',\n lang: 'ita',\n currency: 'EUR',\n alias: 'italy'\n },\n {\n code: 'JM',\n alpha3Code: 'JAM',\n name: 'Jamaica',\n translationName: i18n.t('countries.Jamaica'),\n phone_code: '1 876',\n lang: '',\n currency: 'JMD',\n alias: 'jamaica'\n },\n {\n code: 'JP',\n alpha3Code: 'JPN',\n name: 'Japan',\n translationName: i18n.t('countries.Japan'),\n phone_code: '81',\n lang: '',\n currency: 'JPY',\n alias: 'japan'\n },\n {\n code: 'JE',\n alpha3Code: 'JEY',\n name: 'Jersey',\n translationName: i18n.t('countries.Jersey'),\n phone_code: '44 1534',\n lang: '',\n currency: 'GBP',\n alias: 'jersey'\n },\n {\n code: 'JO',\n alpha3Code: 'JOR',\n name: 'Jordan',\n translationName: i18n.t('countries.Jordan'),\n phone_code: '962',\n lang: '',\n currency: 'JOD',\n alias: 'jordan'\n },\n {\n code: 'KZ',\n alpha3Code: 'KAZ',\n name: 'Kazakhstan',\n translationName: i18n.t('countries.Kazakhstan'),\n phone_code: '7',\n lang: 'rus',\n currency: 'KZT',\n alias: 'kazakhstan'\n },\n {\n code: 'KE',\n alpha3Code: 'KEN',\n name: 'Kenya',\n translationName: i18n.t('countries.Kenya'),\n phone_code: '254',\n lang: '',\n currency: 'KES',\n alias: 'kenya'\n },\n {\n code: 'KI',\n alpha3Code: 'KIR',\n name: 'Kiribati',\n translationName: i18n.t('countries.Kiribati'),\n phone_code: '686',\n lang: '',\n currency: 'AUD',\n alias: 'kiribati'\n },\n {\n code: 'KP',\n alpha3Code: 'PRK',\n name: 'Korea, North',\n translationName: i18n.t('countries.KoreaNorth'),\n phone_code: '850',\n lang: '',\n currency: 'KPW',\n alias: 'north-korea'\n },\n {\n code: 'KW',\n alpha3Code: 'KWT',\n name: 'Kuwait',\n translationName: i18n.t('countries.Kuwait'),\n phone_code: '965',\n lang: '',\n currency: 'KWD',\n alias: 'kuwait'\n },\n {\n code: 'KG',\n alpha3Code: 'KGZ',\n name: 'Kyrgyzstan',\n translationName: i18n.t('countries.Kyrgyzstan'),\n phone_code: '996',\n lang: 'rus',\n currency: 'KGS',\n alias: 'kyrgyzstan'\n },\n {\n code: 'LA',\n alpha3Code: 'LAO',\n name: 'Laos',\n translationName: i18n.t('countries.Laos'),\n phone_code: '856',\n lang: '',\n currency: 'LAK',\n alias: 'laos'\n },\n {\n code: 'LV',\n alpha3Code: 'LVA',\n name: 'Latvia',\n translationName: i18n.t('countries.Latvia'),\n phone_code: '371',\n lang: 'rus',\n currency: 'LVL',\n alias: 'latvia'\n },\n {\n code: 'LB',\n alpha3Code: 'LBN',\n name: 'Lebanon',\n translationName: i18n.t('countries.Lebanon'),\n phone_code: '961',\n lang: '',\n currency: 'LBP',\n alias: 'lebanon'\n },\n {\n code: 'LS',\n alpha3Code: 'LSO',\n name: 'Lesotho',\n translationName: i18n.t('countries.Lesotho'),\n phone_code: '266',\n lang: '',\n currency: 'LSL',\n alias: 'lesotho'\n },\n {\n code: 'LR',\n alpha3Code: 'LBR',\n name: 'Liberia',\n translationName: i18n.t('countries.Liberia'),\n phone_code: '231',\n lang: '',\n currency: 'LRD',\n alias: 'liberia'\n },\n {\n code: 'LY',\n alpha3Code: 'LBY',\n name: 'Libya',\n translationName: i18n.t('countries.Libya'),\n phone_code: '218',\n lang: 'ita',\n currency: 'LYD',\n alias: 'libya'\n },\n {\n code: 'LI',\n alpha3Code: 'LIE',\n name: 'Liechtenstein',\n translationName: i18n.t('countries.Liechtenstein'),\n phone_code: '423',\n lang: '',\n currency: 'CHF',\n alias: 'liechtenstein'\n },\n {\n code: 'LT',\n alpha3Code: 'LTU',\n name: 'Lithuania',\n translationName: i18n.t('countries.Lithuania'),\n phone_code: '370',\n lang: 'rus',\n currency: 'LTL',\n alias: 'lithuania'\n },\n {\n code: 'LU',\n alpha3Code: 'LUX',\n name: 'Luxembourg',\n translationName: i18n.t('countries.Luxembourg'),\n phone_code: '352',\n lang: 'fre',\n currency: 'EUR',\n alias: 'luxembourg'\n },\n {\n code: 'MO',\n alpha3Code: 'MAC',\n name: 'Macao',\n translationName: i18n.t('countries.Macao'),\n phone_code: '853',\n lang: '',\n currency: 'MOP',\n alias: 'macao'\n },\n {\n code: 'MK',\n alpha3Code: 'MKD',\n name: 'Macedonia',\n translationName: i18n.t('countries.Macedonia'),\n phone_code: '389',\n lang: '',\n currency: 'MKD',\n alias: 'republic-of-macedonia'\n },\n {\n code: 'MG',\n alpha3Code: 'MDG',\n name: 'Madagascar',\n translationName: i18n.t('countries.Madagascar'),\n phone_code: '261',\n lang: '',\n currency: 'MGF',\n alias: 'madagascar'\n },\n {\n code: 'MW',\n alpha3Code: 'MWI',\n name: 'Malawi',\n translationName: i18n.t('countries.Malawi'),\n phone_code: '265',\n lang: '',\n currency: 'MWK',\n alias: 'malawi'\n },\n {\n code: 'MY',\n alpha3Code: 'MYS',\n name: 'Malaysia',\n translationName: i18n.t('countries.Malaysia'),\n phone_code: '60',\n lang: '',\n currency: 'MYR',\n alias: 'malaysia'\n },\n {\n code: 'MV',\n alpha3Code: 'MDV',\n name: 'Maldives',\n translationName: i18n.t('countries.Maldives'),\n phone_code: '960',\n lang: '',\n currency: 'MVR',\n alias: 'maldives'\n },\n {\n code: 'ML',\n alpha3Code: 'MLI',\n name: 'Mali',\n translationName: i18n.t('countries.Mali'),\n phone_code: '223',\n lang: '',\n currency: 'XOF',\n alias: 'mali'\n },\n {\n code: 'MT',\n alpha3Code: 'MLT',\n name: 'Malta',\n translationName: i18n.t('countries.Malta'),\n phone_code: '356',\n lang: 'eng',\n currency: 'EUR',\n alias: 'malta'\n },\n {\n code: 'MH',\n alpha3Code: 'MHL',\n name: 'Marshall Islands',\n translationName: i18n.t('countries.MarshallIslands'),\n phone_code: '692',\n lang: '',\n currency: 'USD',\n alias: 'marshall-island'\n },\n {\n code: 'MQ',\n alpha3Code: 'MTQ',\n name: 'Martinique',\n translationName: i18n.t('countries.Martinique'),\n phone_code: '596',\n lang: 'fre',\n currency: 'EUR',\n alias: 'martinique'\n },\n {\n code: 'MR',\n alpha3Code: 'MRT',\n name: 'Mauritania',\n translationName: i18n.t('countries.Mauritania'),\n phone_code: '222',\n lang: '',\n currency: 'MRO',\n alias: 'mauritania'\n },\n {\n code: 'MU',\n alpha3Code: 'MUS',\n name: 'Mauritius',\n translationName: i18n.t('countries.Mauritius'),\n phone_code: '230',\n lang: '',\n currency: 'MUR',\n alias: 'mauritius'\n },\n {\n code: 'YT',\n alpha3Code: 'MYT',\n name: 'Mayotte',\n translationName: i18n.t('countries.Mayotte'),\n phone_code: '262',\n lang: '',\n currency: 'EUR',\n alias: 'mayotte'\n },\n {\n code: 'MX',\n alpha3Code: 'MEX',\n name: 'Mexico',\n translationName: i18n.t('countries.Mexico'),\n phone_code: '52',\n lang: 'spa',\n currency: 'MXN',\n alias: 'mexico'\n },\n {\n code: 'FM',\n alpha3Code: 'FSM',\n name: 'Micronesia, Federated States of',\n translationName: i18n.t('countries.MicronesiaFederatedStatesof'),\n phone_code: '691',\n lang: '',\n currency: 'USD',\n alias: 'micronesia'\n },\n {\n code: 'MD',\n alpha3Code: 'MDA',\n name: 'Moldova',\n translationName: i18n.t('countries.Moldova'),\n phone_code: '373',\n lang: 'rus',\n currency: 'MDL',\n alias: 'moldova'\n },\n {\n code: 'MC',\n alpha3Code: 'MCO',\n name: 'Monaco',\n translationName: i18n.t('countries.Monaco'),\n phone_code: '377',\n lang: '',\n currency: 'EUR',\n alias: 'monaco'\n },\n {\n code: 'MN',\n alpha3Code: 'MNG',\n name: 'Mongolia',\n translationName: i18n.t('countries.Mongolia'),\n phone_code: '976',\n lang: 'rus',\n currency: 'MNT',\n alias: 'mongolia'\n },\n {\n code: 'ME',\n alpha3Code: 'MNE',\n name: 'Montenegro',\n translationName: i18n.t('countries.Montenegro'),\n phone_code: '382',\n lang: '',\n currency: 'EUR',\n alias: 'montenegro'\n },\n {\n code: 'MS',\n alpha3Code: 'MSR',\n name: 'Montserrat',\n translationName: i18n.t('countries.Montserrat'),\n phone_code: '1 664',\n lang: '',\n currency: 'XCD',\n alias: 'montserrat'\n },\n {\n code: 'MA',\n alpha3Code: 'MAR',\n name: 'Morocco',\n translationName: i18n.t('countries.Morocco'),\n phone_code: '212',\n lang: '',\n currency: 'MAD',\n alias: 'morocco'\n },\n {\n code: 'MZ',\n alpha3Code: 'MOZ',\n name: 'Mozambique',\n translationName: i18n.t('countries.Mozambique'),\n phone_code: '258',\n lang: '',\n currency: 'MZN',\n alias: 'mozambique'\n },\n {\n code: 'MM',\n alpha3Code: 'MMR',\n name: 'Myanmar',\n translationName: i18n.t('countries.Myanmar'),\n phone_code: '95',\n lang: '',\n currency: 'MMK',\n alias: 'myanmar'\n },\n {\n code: 'NA',\n alpha3Code: 'NAM',\n name: 'Namibia',\n translationName: i18n.t('countries.Namibia'),\n phone_code: '264',\n lang: '',\n currency: 'NAD',\n alias: 'namibia'\n },\n {\n code: 'NR',\n alpha3Code: 'NRU',\n name: 'Nauru',\n translationName: i18n.t('countries.Nauru'),\n phone_code: '674',\n lang: '',\n currency: 'AUD',\n alias: 'nauru'\n },\n {\n code: 'NP',\n alpha3Code: 'NPL',\n name: 'Nepal',\n translationName: i18n.t('countries.Nepal'),\n phone_code: '977',\n lang: '',\n currency: 'NPR',\n alias: 'nepal'\n },\n {\n code: 'NL',\n alpha3Code: 'NLD',\n name: 'Netherlands',\n translationName: i18n.t('countries.Netherlands'),\n phone_code: '31',\n lang: '',\n currency: 'EUR',\n alias: 'netherlands'\n },\n {\n code: 'NC',\n alpha3Code: 'NCL',\n name: 'New Caledonia',\n translationName: i18n.t('countries.NewCaledonia'),\n phone_code: '687',\n lang: '',\n currency: 'XPF',\n alias: 'new-caledonia'\n },\n {\n code: 'NZ',\n alpha3Code: 'NZL',\n name: 'New Zealand',\n translationName: i18n.t('countries.NewZealand'),\n phone_code: '64',\n lang: '',\n currency: 'NZD',\n alias: 'new-zealand'\n },\n {\n code: 'NI',\n alpha3Code: 'NIC',\n name: 'Nicaragua',\n translationName: i18n.t('countries.Nicaragua'),\n phone_code: '505',\n lang: 'spa',\n currency: 'NIO',\n alias: 'nicaragua'\n },\n {\n code: 'NE',\n alpha3Code: 'NER',\n name: 'Niger',\n translationName: i18n.t('countries.Niger'),\n phone_code: '227',\n lang: '',\n currency: 'XOF',\n alias: 'niger'\n },\n {\n code: 'NG',\n alpha3Code: 'NGA',\n name: 'Nigeria',\n translationName: i18n.t('countries.Nigeria'),\n phone_code: '234',\n lang: '',\n currency: 'NGN',\n alias: 'nigeria'\n },\n {\n code: 'NU',\n alpha3Code: 'NIU',\n name: 'Niue',\n translationName: i18n.t('countries.Niue'),\n phone_code: '683',\n lang: '',\n currency: 'NZD',\n alias: 'niue'\n },\n {\n code: 'NF',\n alpha3Code: 'NFK',\n name: 'Norfolk Island',\n translationName: i18n.t('countries.NorfolkIsland'),\n phone_code: '672 3',\n lang: '',\n currency: 'AUD',\n alias: 'norfolk-island'\n },\n {\n code: 'MP',\n alpha3Code: 'MNP',\n name: 'Northern Mariana Islands',\n translationName: i18n.t('countries.NorthernMarianaIslands'),\n phone_code: '1 670',\n lang: '',\n currency: 'USD',\n alias: 'northern-marianas-islands'\n },\n {\n code: 'NO',\n alpha3Code: 'NOR',\n name: 'Norway',\n translationName: i18n.t('countries.Norway'),\n phone_code: '47',\n lang: '',\n currency: 'NOK',\n alias: 'norway'\n },\n {\n code: 'OM',\n alpha3Code: 'OMN',\n name: 'Oman',\n translationName: i18n.t('countries.Oman'),\n phone_code: '968',\n lang: '',\n currency: 'OMR',\n alias: 'oman'\n },\n {\n code: 'PK',\n alpha3Code: 'PAK',\n name: 'Pakistan',\n translationName: i18n.t('countries.Pakistan'),\n phone_code: '92',\n lang: '',\n currency: 'PKR',\n alias: 'pakistan'\n },\n {\n code: 'PW',\n alpha3Code: 'PLW',\n name: 'Palau',\n translationName: i18n.t('countries.Palau'),\n phone_code: '680',\n lang: '',\n currency: 'USD',\n alias: 'palau'\n },\n {\n code: 'PS',\n alpha3Code: 'PSE',\n name: 'Palestine, State of',\n translationName: i18n.t('countries.PalestineStateof'),\n phone_code: '970',\n lang: '',\n currency: '',\n alias: 'palestine'\n },\n {\n code: 'PA',\n alpha3Code: 'PAN',\n name: 'Panama',\n translationName: i18n.t('countries.Panama'),\n phone_code: '507',\n lang: 'spa',\n currency: 'PAB',\n alias: 'panama'\n },\n {\n code: 'PG',\n alpha3Code: 'PNG',\n name: 'Papua New Guinea',\n translationName: i18n.t('countries.PapuaNewGuinea'),\n phone_code: '675',\n lang: '',\n currency: 'PGK',\n alias: 'papua-new-guinea'\n },\n {\n code: 'PY',\n alpha3Code: 'PRY',\n name: 'Paraguay',\n translationName: i18n.t('countries.Paraguay'),\n phone_code: '595',\n lang: 'spa',\n currency: 'PYG',\n alias: 'paraguay'\n },\n {\n code: 'PE',\n alpha3Code: 'PER',\n name: 'Peru',\n translationName: i18n.t('countries.Peru'),\n phone_code: '51',\n lang: 'spa',\n currency: 'PEN',\n alias: 'peru'\n },\n {\n code: 'PH',\n alpha3Code: 'PHL',\n name: 'Philippines',\n translationName: i18n.t('countries.Philippines'),\n phone_code: '63',\n lang: '',\n currency: 'PHP',\n alias: 'philippines'\n },\n {\n code: 'PL',\n alpha3Code: 'POL',\n name: 'Poland',\n translationName: i18n.t('countries.Poland'),\n phone_code: '48',\n lang: '',\n currency: 'PLN',\n alias: 'poland'\n },\n {\n code: 'PT',\n alpha3Code: 'PRT',\n name: 'Portugal',\n translationName: i18n.t('countries.Portugal'),\n phone_code: '351',\n lang: 'por',\n currency: 'EUR',\n alias: 'portugal'\n },\n {\n code: 'PR',\n alpha3Code: 'PRI',\n name: 'Puerto Rico',\n translationName: i18n.t('countries.PuertoRico'),\n phone_code: '1 787',\n lang: '',\n currency: 'USD',\n alias: 'puerto-rico'\n },\n {\n code: 'QA',\n alpha3Code: 'QAT',\n name: 'Qatar',\n translationName: i18n.t('countries.Qatar'),\n phone_code: '974',\n lang: '',\n currency: 'QAR',\n alias: 'qatar'\n },\n {\n code: 'RE',\n alpha3Code: 'REU',\n name: 'Reunion',\n translationName: i18n.t('countries.Reunion'),\n phone_code: '262',\n lang: 'fre',\n currency: 'EUR',\n alias: 'reunion'\n },\n {\n code: 'RO',\n alpha3Code: 'ROU',\n name: 'Romania',\n translationName: i18n.t('countries.Romania'),\n phone_code: '40',\n lang: '',\n currency: 'RON',\n alias: 'romania'\n },\n {\n code: 'RU',\n alpha3Code: 'RUS',\n name: 'Russia',\n translationName: i18n.t('countries.Russia'),\n phone_code: '7',\n lang: 'rus',\n currency: 'RUB',\n alias: 'russia'\n },\n {\n code: 'RW',\n alpha3Code: 'RWA',\n name: 'Rwanda',\n translationName: i18n.t('countries.Rwanda'),\n phone_code: '250',\n lang: '',\n currency: 'RWF',\n alias: 'rwanda'\n },\n {\n code: 'BL',\n alpha3Code: 'BLM',\n name: 'Saint Barthelemy',\n translationName: i18n.t('countries.SaintBarthelemy'),\n phone_code: '590',\n lang: '',\n currency: '',\n alias: 'st-barts'\n },\n {\n code: 'SH',\n alpha3Code: 'SHN',\n name: 'Saint Helena',\n translationName: i18n.t('countries.SaintHelena'),\n phone_code: '290',\n lang: '',\n currency: 'SHP',\n alias: 'flag_of_saint_helena'\n },\n {\n code: 'KN',\n alpha3Code: 'KNA',\n name: 'Saint Kitts and Nevis',\n translationName: i18n.t('countries.SaintKittsandNevis'),\n phone_code: '1 869',\n lang: '',\n currency: 'XCD',\n alias: 'saint-kitts-and-nevis'\n },\n {\n code: 'LC',\n alpha3Code: 'LCA',\n name: 'Saint Lucia',\n translationName: i18n.t('countries.SaintLucia'),\n phone_code: '1 758',\n lang: '',\n currency: 'XCD',\n alias: 'saint-lucia'\n },\n {\n code: 'MF',\n alpha3Code: 'MAF',\n name: 'Saint Martin (France)',\n translationName: i18n.t('countries.SaintMartinFrance'),\n phone_code: '590',\n lang: '',\n currency: '',\n alias: 'france-saint-martin'\n },\n {\n code: 'PM',\n alpha3Code: 'SPM',\n name: 'Saint Pierre and Miquelon',\n translationName: i18n.t('countries.SaintPierreandMiquelon'),\n phone_code: '508',\n lang: '',\n currency: 'EUR',\n alias: 'france-miquelon'\n },\n {\n code: 'VC',\n alpha3Code: 'VCT',\n name: 'Saint Vincent and the Grenadines',\n translationName: i18n.t('countries.SaintVincentandtheGrenadines'),\n phone_code: '1 784',\n lang: '',\n currency: 'XCD',\n alias: 'flag_of_saint_vincent'\n },\n {\n code: 'WS',\n alpha3Code: 'WSM',\n name: 'Samoa',\n translationName: i18n.t('countries.Samoa'),\n phone_code: '685',\n lang: '',\n currency: 'WST',\n alias: 'samoa'\n },\n {\n code: 'SM',\n alpha3Code: 'SMR',\n name: 'San Marino',\n translationName: i18n.t('countries.SanMarino'),\n phone_code: '378',\n lang: 'ita',\n currency: 'EUR',\n alias: 'san-marino'\n },\n {\n code: 'ST',\n alpha3Code: 'STP',\n name: 'Sao Tome and Principe',\n translationName: i18n.t('countries.SaoTomeandPrincipe'),\n phone_code: '239',\n lang: '',\n currency: 'STD',\n alias: 'sao-tome-and-principe'\n },\n {\n code: 'SA',\n alpha3Code: 'SAU',\n name: 'Saudi Arabia',\n translationName: i18n.t('countries.SaudiArabia'),\n phone_code: '966',\n lang: '',\n currency: 'SAR',\n alias: 'saudi-arabia'\n },\n {\n code: 'SN',\n alpha3Code: 'SEN',\n name: 'Senegal',\n translationName: i18n.t('countries.Senegal'),\n phone_code: '221',\n lang: '',\n currency: 'XOF',\n alias: 'senegal'\n },\n {\n code: 'RS',\n alpha3Code: 'SRB',\n name: 'Serbia',\n translationName: i18n.t('countries.Serbia'),\n phone_code: '381',\n lang: '',\n currency: 'RSD',\n alias: 'serbia'\n },\n {\n code: 'SC',\n alpha3Code: 'SYC',\n name: 'Seychelles',\n translationName: i18n.t('countries.Seychelles'),\n phone_code: '248',\n lang: '',\n currency: 'SCR',\n alias: 'seychelles'\n },\n {\n code: 'SL',\n alpha3Code: 'SLE',\n name: 'Sierra Leone',\n translationName: i18n.t('countries.SierraLeone'),\n phone_code: '232',\n lang: '',\n currency: 'SLL',\n alias: 'sierra-leone'\n },\n {\n code: 'SG',\n alpha3Code: 'SGP',\n name: 'Singapore',\n translationName: i18n.t('countries.Singapore'),\n phone_code: '65',\n lang: '',\n currency: 'SGD',\n alias: 'singapore'\n },\n {\n code: 'SX',\n alpha3Code: 'SXM',\n name: 'Sint Maarten (Netherlands)',\n translationName: i18n.t('countries.SintMaartenNetherlands'),\n phone_code: '1 721',\n lang: '',\n currency: '',\n alias: 'sint-maarten'\n },\n {\n code: 'SK',\n alpha3Code: 'SVK',\n name: 'Slovakia',\n translationName: i18n.t('countries.Slovakia'),\n phone_code: '421',\n lang: '',\n currency: 'EUR',\n alias: 'slovakia'\n },\n {\n code: 'SI',\n alpha3Code: 'SVN',\n name: 'Slovenia',\n translationName: i18n.t('countries.Slovenia'),\n phone_code: '386',\n lang: '',\n currency: 'EUR',\n alias: 'slovenia'\n },\n {\n code: 'SB',\n alpha3Code: 'SLB',\n name: 'Solomon Islands',\n translationName: i18n.t('countries.SolomonIslands'),\n phone_code: '677',\n lang: '',\n currency: 'SBD',\n alias: 'solomon-islands'\n },\n {\n code: 'SO',\n alpha3Code: 'SOM',\n name: 'Somalia',\n translationName: i18n.t('countries.Somalia'),\n phone_code: '252',\n lang: '',\n currency: 'SOS',\n alias: 'somalia'\n },\n {\n code: 'ZA',\n alpha3Code: 'ZAF',\n name: 'South Africa',\n translationName: i18n.t('countries.SouthAfrica'),\n phone_code: '27',\n lang: '',\n currency: 'ZAR',\n alias: 'south-africa'\n },\n {\n code: 'SS',\n alpha3Code: 'SSD',\n name: 'South Sudan',\n translationName: i18n.t('countries.SouthSudan'),\n phone_code: '211',\n lang: '',\n currency: 'SSP',\n alias: 'south-sudan'\n },\n {\n code: 'KR',\n alpha3Code: 'KOR',\n name: 'South Korea',\n translationName: i18n.t('countries.SouthKorea'),\n phone_code: '82',\n lang: '',\n currency: 'KRW',\n alias: 'south-korea'\n },\n {\n code: 'ES',\n alpha3Code: 'ESP',\n name: 'Spain',\n translationName: i18n.t('countries.Spain'),\n phone_code: '34',\n lang: 'spa',\n currency: 'EUR',\n alias: 'spain'\n },\n {\n code: 'LK',\n alpha3Code: 'LKA',\n name: 'Sri Lanka',\n translationName: i18n.t('countries.SriLanka'),\n phone_code: '94',\n lang: '',\n currency: 'LKR',\n alias: 'sri-lanka'\n },\n {\n code: 'SD',\n alpha3Code: 'SDN',\n name: 'Sudan',\n translationName: i18n.t('countries.Sudan'),\n phone_code: '249',\n lang: '',\n currency: 'SDG',\n alias: 'sudan'\n },\n {\n code: 'SR',\n alpha3Code: 'SUR',\n name: 'Suriname',\n translationName: i18n.t('countries.Suriname'),\n phone_code: '597',\n lang: '',\n currency: 'SRD',\n alias: 'suriname'\n },\n {\n code: 'SJ',\n alpha3Code: 'SJM',\n name: 'Svalbard and Jan Mayen',\n translationName: i18n.t('countries.SvalbardandJanMayen'),\n phone_code: '47',\n lang: '',\n currency: 'NOK',\n alias: 'svalbard_and_jan_mayen'\n },\n {\n code: 'SZ',\n name: 'Swaziland',\n alpha3Code: 'SWZ',\n translationName: i18n.t('countries.Swaziland'),\n phone_code: '268',\n lang: '',\n currency: 'SZL',\n alias: 'swaziland'\n },\n {\n code: 'SE',\n alpha3Code: 'SWE',\n name: 'Sweden',\n translationName: i18n.t('countries.Sweden'),\n phone_code: '46',\n lang: 'swe',\n currency: 'SEK',\n alias: 'sweden'\n },\n {\n code: 'CH',\n alpha3Code: 'CHE',\n name: 'Switzerland',\n translationName: i18n.t('countries.Switzerland'),\n phone_code: '41',\n lang: 'fre',\n currency: 'CHF',\n alias: 'switzerland'\n },\n {\n code: 'SY',\n alpha3Code: 'SYR',\n name: 'Syria',\n translationName: i18n.t('countries.Syria'),\n phone_code: '963',\n lang: '',\n currency: 'SYP',\n alias: 'syria'\n },\n {\n code: 'TW',\n alpha3Code: 'TWN',\n name: 'Taiwan',\n translationName: i18n.t('countries.Taiwan'),\n phone_code: '886',\n lang: '',\n currency: 'TWD',\n alias: 'taiwan'\n },\n {\n code: 'TJ',\n alpha3Code: 'TJK',\n name: 'Tajikistan',\n translationName: i18n.t('countries.Tajikistan'),\n phone_code: '992',\n lang: 'rus',\n currency: 'TJS',\n alias: 'tajikistan'\n },\n {\n code: 'TZ',\n alpha3Code: 'TZA',\n name: 'Tanzania',\n translationName: i18n.t('countries.Tanzania'),\n phone_code: '255',\n lang: '',\n currency: 'TZS',\n alias: 'united-republic-of-tanzania'\n },\n {\n code: 'TH',\n alpha3Code: 'THA',\n name: 'Thailand',\n translationName: i18n.t('countries.Thailand'),\n phone_code: '66',\n lang: '',\n currency: 'THB',\n alias: 'thailand'\n },\n {\n code: 'TL',\n alpha3Code: 'TLS',\n name: 'Timor-Leste',\n translationName: i18n.t('countries.TimorLeste'),\n phone_code: '670',\n lang: '',\n currency: '',\n alias: 'timor-leste'\n },\n {\n code: 'TG',\n alpha3Code: 'TGO',\n name: 'Togo',\n translationName: i18n.t('countries.Togo'),\n phone_code: '228',\n lang: '',\n currency: 'XOF',\n alias: 'togo'\n },\n {\n code: 'TK',\n alpha3Code: 'TKL',\n name: 'Tokelau',\n translationName: i18n.t('countries.Tokelau'),\n phone_code: '690',\n lang: '',\n currency: 'NZD',\n alias: 'tokelau'\n },\n {\n code: 'TO',\n alpha3Code: 'TON',\n name: 'Tonga',\n translationName: i18n.t('countries.Tonga'),\n phone_code: '676',\n lang: '',\n currency: 'TOP',\n alias: 'tonga'\n },\n {\n code: 'TT',\n alpha3Code: 'TTO',\n name: 'Trinidad and Tobago',\n translationName: i18n.t('countries.TrinidadandTobago'),\n phone_code: '1 868',\n lang: '',\n currency: 'TTD',\n alias: 'trinidad-and-tobago'\n },\n {\n code: 'TN',\n alpha3Code: 'TUN',\n name: 'Tunisia',\n translationName: i18n.t('countries.Tunisia'),\n phone_code: '216',\n lang: '',\n currency: 'TND',\n alias: 'tunisia'\n },\n {\n code: 'TR',\n alpha3Code: 'TUR',\n name: 'Turkey',\n translationName: i18n.t('countries.Turkey'),\n phone_code: '90',\n lang: '',\n currency: 'TRY',\n alias: 'turkey'\n },\n {\n code: 'TM',\n alpha3Code: 'TKM',\n name: 'Turkmenistan',\n translationName: i18n.t('countries.Turkmenistan'),\n phone_code: '993',\n lang: 'tur',\n currency: 'TMT',\n alias: 'turkmenistan'\n },\n {\n code: 'TC',\n alpha3Code: 'TCA',\n name: 'Turks and Caicos Islands',\n translationName: i18n.t('countries.TurksandCaicosIslands'),\n phone_code: '1 649',\n lang: '',\n currency: 'USD',\n alias: 'turks-and-caicos'\n },\n {\n code: 'TV',\n alpha3Code: 'TUV',\n name: 'Tuvalu',\n translationName: i18n.t('countries.Tuvalu'),\n phone_code: '688',\n lang: '',\n currency: 'AUD',\n alias: 'tuvalu'\n },\n {\n code: 'UG',\n alpha3Code: 'UGA',\n name: 'Uganda',\n translationName: i18n.t('countries.Uganda'),\n phone_code: '256',\n lang: '',\n currency: 'UGX',\n alias: 'uganda'\n },\n {\n code: 'UA',\n alpha3Code: 'UKR',\n name: 'Ukraine',\n translationName: i18n.t('countries.Ukraine'),\n phone_code: '380',\n lang: 'ukr',\n currency: 'UAH',\n alias: 'ukraine'\n },\n {\n code: 'AE',\n alpha3Code: 'ARE',\n name: 'United Arab Emirates',\n translationName: i18n.t('countries.UnitedArabEmirates'),\n phone_code: '971',\n lang: '',\n currency: 'AED',\n alias: 'united-arab-emirates'\n },\n {\n code: 'GB',\n alpha3Code: 'GBR',\n name: 'United Kingdom',\n translationName: i18n.t('countries.UnitedKingdom'),\n phone_code: '44',\n lang: '',\n currency: 'GBP',\n alias: 'united-kingdom'\n },\n {\n code: 'US',\n alpha3Code: 'USA',\n name: 'United States',\n translationName: i18n.t('countries.UnitedStates'),\n phone_code: '1',\n lang: '',\n currency: 'USD',\n alias: 'usa'\n },\n {\n code: 'UY',\n alpha3Code: 'URY',\n name: 'Uruguay',\n translationName: i18n.t('countries.Uruguay'),\n phone_code: '598',\n lang: 'spa',\n currency: 'UYU',\n alias: 'uruguay'\n },\n {\n code: 'UZ',\n alpha3Code: 'UZB',\n name: 'Uzbekistan',\n translationName: i18n.t('countries.Uzbekistan'),\n phone_code: '998',\n lang: 'rus',\n currency: 'UZS',\n alias: 'uzbekistan'\n },\n {\n code: 'VU',\n alpha3Code: 'VUT',\n name: 'Vanuatu',\n translationName: i18n.t('countries.Vanuatu'),\n phone_code: '678',\n lang: '',\n currency: 'VUV',\n alias: 'vanuatu'\n },\n {\n code: 'VE',\n alpha3Code: 'VEN',\n name: 'Venezuela',\n translationName: i18n.t('countries.Venezuela'),\n phone_code: '58',\n lang: 'spa',\n currency: 'VES',\n alias: 'venezuela'\n },\n {\n code: 'VN',\n alpha3Code: 'VNM',\n name: 'Vietnam',\n translationName: i18n.t('countries.Vietnam'),\n phone_code: '84',\n lang: '',\n currency: 'VND',\n alias: 'vietnam'\n },\n {\n code: 'VG',\n name: 'Virgin Islands, British',\n alpha3Code: 'VGB',\n translationName: i18n.t('countries.VirginIslandsBritish'),\n phone_code: '1',\n lang: '',\n currency: 'USD',\n alias: 'british-virgin-islands'\n },\n {\n code: 'VI',\n alpha3Code: 'VIR',\n name: 'Virgin Islands, U.S.',\n translationName: i18n.t('countries.VirginIslandsUS'),\n phone_code: '1',\n lang: '',\n currency: 'USD',\n alias: 'virgin-islands'\n },\n {\n code: 'WF',\n alpha3Code: 'WLF',\n name: 'Wallis and Futuna',\n translationName: i18n.t('countries.WallisandFutuna'),\n phone_code: '681',\n lang: '',\n currency: 'XPF',\n alias: 'wallis-and-futuna'\n },\n {\n code: 'EH',\n alpha3Code: 'ESH',\n name: 'Western Sahara',\n translationName: i18n.t('countries.WesternSahara'),\n phone_code: '212',\n lang: '',\n currency: 'MAD',\n alias: 'western-sahara'\n },\n {\n code: 'YE',\n alpha3Code: 'YEM',\n name: 'Yemen',\n translationName: i18n.t('countries.Yemen'),\n phone_code: '967',\n lang: '',\n currency: 'YER',\n alias: 'yemen'\n },\n {\n code: 'ZM',\n alpha3Code: 'ZMB',\n name: 'Zambia',\n translationName: i18n.t('countries.Zambia'),\n phone_code: '260',\n lang: '',\n currency: 'ZMW',\n alias: 'zambia'\n },\n {\n code: 'ZW',\n alpha3Code: 'ZWE',\n name: 'Zimbabwe',\n translationName: i18n.t('countries.Zimbabwe'),\n phone_code: '263',\n lang: '',\n currency: 'ZWD',\n alias: 'zimbabwe'\n }\n];\n","type currencyDataType = {\n symbol: string;\n placement: 'left' | 'right';\n};\nexport const CurrencyList: {\n [key: string]: currencyDataType;\n} = {\n AFA: { symbol: '؋', placement: 'right' },\n ALL: { symbol: 'Lek', placement: 'right' },\n DZD: { symbol: 'دج', placement: 'right' },\n AOA: { symbol: 'Kz', placement: 'right' },\n ARS: { symbol: '$', placement: 'left' },\n AMD: { symbol: '֏', placement: 'right' },\n AWG: { symbol: 'ƒ', placement: 'right' },\n AUD: { symbol: '$', placement: 'left' },\n AZN: { symbol: '₼', placement: 'right' },\n BSD: { symbol: 'B$', placement: 'right' },\n BHD: { symbol: '.د.ب', placement: 'right' },\n BDT: { symbol: '৳', placement: 'right' },\n BBD: { symbol: 'Bds$', placement: 'right' },\n BYR: { symbol: 'Br', placement: 'right' },\n BYN: { symbol: 'Br', placement: 'right' },\n BEF: { symbol: 'fr', placement: 'right' },\n BZD: { symbol: 'BZ$', placement: 'right' },\n BMD: { symbol: '$', placement: 'left' },\n BTN: { symbol: 'Nu.', placement: 'right' },\n BOB: { symbol: 'Bs.', placement: 'right' },\n BAM: { symbol: 'KM', placement: 'right' },\n BWP: { symbol: 'P', placement: 'right' },\n BRL: { symbol: 'R$', placement: 'right' },\n GBP: { symbol: '£', placement: 'right' },\n BND: { symbol: 'B$', placement: 'right' },\n BGN: { symbol: 'Лв.', placement: 'right' },\n BIF: { symbol: 'FBu', placement: 'right' },\n KHR: { symbol: '៛', placement: 'right' },\n CAD: { symbol: 'C$', placement: 'left' },\n CVE: { symbol: '$', placement: 'left' },\n CYP: { symbol: '£', placement: 'right' },\n KYD: { symbol: '$', placement: 'left' },\n XOF: { symbol: 'CFA', placement: 'right' },\n XAF: { symbol: 'FCFA', placement: 'right' },\n XPF: { symbol: '₣', placement: 'right' },\n CLP: { symbol: '$', placement: 'left' },\n CNY: { symbol: '¥', placement: 'right' },\n COP: { symbol: '$', placement: 'left' },\n KMF: { symbol: 'CF', placement: 'right' },\n CDF: { symbol: 'FC', placement: 'right' },\n CRC: { symbol: '₡', placement: 'right' },\n HRK: { symbol: 'kn', placement: 'right' },\n CUC: { symbol: 'CUC$', placement: 'right' },\n CUP: { symbol: '₱', placement: 'right' },\n CZK: { symbol: 'Kč', placement: 'right' },\n DKK: { symbol: 'Kr.', placement: 'right' },\n DJF: { symbol: 'Fdj', placement: 'right' },\n DOP: { symbol: 'RD$', placement: 'right' },\n XCD: { symbol: '$', placement: 'left' },\n EGP: { symbol: 'E£', placement: 'right' },\n ERN: { symbol: 'ናቕፋ', placement: 'right' },\n EEK: { symbol: 'kr', placement: 'right' },\n ETB: { symbol: 'ብር', placement: 'right' },\n EUR: { symbol: '€', placement: 'left' },\n FKP: { symbol: '£', placement: 'right' },\n FJD: { symbol: 'FJ$', placement: 'right' },\n GMD: { symbol: 'D', placement: 'right' },\n GEL: { symbol: 'ლ', placement: 'right' },\n DEM: { symbol: 'DM', placement: 'right' },\n GHC: { symbol: 'GH₵', placement: 'right' },\n GHS: { symbol: 'GH₵', placement: 'right' },\n GIP: { symbol: '£', placement: 'right' },\n GRD: { symbol: '₯', placement: 'right' },\n GTQ: { symbol: 'Q', placement: 'right' },\n GGP: { symbol: '£', placement: 'right' },\n GNF: { symbol: 'FG', placement: 'right' },\n GYD: { symbol: '$', placement: 'left' },\n HTG: { symbol: 'G', placement: 'right' },\n HNL: { symbol: 'L', placement: 'right' },\n HKD: { symbol: 'HK$', placement: 'left' },\n HUF: { symbol: 'Ft', placement: 'right' },\n ISK: { symbol: 'kr', placement: 'right' },\n INR: { symbol: '₹', placement: 'right' },\n IDR: { symbol: 'Rp', placement: 'right' },\n IRR: { symbol: '﷼', placement: 'right' },\n IQD: { symbol: 'د.ع', placement: 'right' },\n IMP: { symbol: '£', placement: 'right' },\n ILS: { symbol: '₪', placement: 'right' },\n ITL: { symbol: 'L,£', placement: 'right' },\n JMD: { symbol: 'J$', placement: 'right' },\n JPY: { symbol: '¥', placement: 'right' },\n JEP: { symbol: '£', placement: 'right' },\n JOD: { symbol: 'ا.د', placement: 'right' },\n KZT: { symbol: 'лв', placement: 'right' },\n KES: { symbol: 'KSh', placement: 'right' },\n KWD: { symbol: 'ك.د', placement: 'right' },\n KGS: { symbol: 'лв', placement: 'right' },\n LAK: { symbol: '₭', placement: 'right' },\n LVL: { symbol: 'Ls', placement: 'right' },\n LBP: { symbol: '£', placement: 'right' },\n LSL: { symbol: 'L', placement: 'right' },\n LRD: { symbol: '$', placement: 'left' },\n LYD: { symbol: 'د.ل', placement: 'right' },\n LTL: { symbol: 'Lt', placement: 'right' },\n MTL: { symbol: '₤M', placement: 'right' },\n MOP: { symbol: '$', placement: 'left' },\n MKD: { symbol: 'ден', placement: 'right' },\n MGA: { symbol: 'Ar', placement: 'right' },\n MWK: { symbol: 'MK', placement: 'right' },\n MYR: { symbol: 'RM', placement: 'right' },\n MVR: { symbol: 'Rf', placement: 'right' },\n MRO: { symbol: 'MRU', placement: 'right' },\n MUR: { symbol: '₨', placement: 'right' },\n MXN: { symbol: '$', placement: 'left' },\n MDL: { symbol: 'L', placement: 'right' },\n MNT: { symbol: '₮', placement: 'right' },\n MZN: { symbol: 'MT', placement: 'right' },\n MAD: { symbol: 'MAD', placement: 'right' },\n MZM: { symbol: 'MT', placement: 'right' },\n MMK: { symbol: 'K', placement: 'right' },\n NAD: { symbol: '$', placement: 'left' },\n NPR: { symbol: '₨', placement: 'right' },\n ANG: { symbol: 'ƒ', placement: 'right' },\n TWD: { symbol: 'NT$', placement: 'right' },\n NZD: { symbol: '$', placement: 'left' },\n NIO: { symbol: 'C$', placement: 'right' },\n NGN: { symbol: '₦', placement: 'right' },\n KPW: { symbol: '₩', placement: 'right' },\n NOK: { symbol: 'kr', placement: 'right' },\n OMR: { symbol: 'ر.ع.', placement: 'right' },\n PKR: { symbol: '₨', placement: 'right' },\n PAB: { symbol: 'B/.', placement: 'right' },\n PGK: { symbol: 'K', placement: 'right' },\n PYG: { symbol: '₲', placement: 'right' },\n PEN: { symbol: 'S/.', placement: 'right' },\n PHP: { symbol: '₱', placement: 'right' },\n PLN: { symbol: 'zł', placement: 'right' },\n QAR: { symbol: 'ر.ق', placement: 'right' },\n RON: { symbol: 'lei', placement: 'right' },\n RUB: { symbol: '₽', placement: 'right' },\n RWF: { symbol: 'FRw', placement: 'right' },\n SVC: { symbol: '₡', placement: 'right' },\n WST: { symbol: 'SAT', placement: 'right' },\n SAR: { symbol: '﷼', placement: 'right' },\n RSD: { symbol: 'Дин.', placement: 'right' },\n SCR: { symbol: 'SRe', placement: 'right' },\n SLL: { symbol: 'Le', placement: 'right' },\n SGD: { symbol: '$', placement: 'left' },\n SKK: { symbol: 'Sk', placement: 'right' },\n SBD: { symbol: 'Si$', placement: 'right' },\n SOS: { symbol: 'Sh.so.', placement: 'right' },\n ZAR: { symbol: 'R', placement: 'right' },\n KRW: { symbol: '₩', placement: 'right' },\n XDR: { symbol: 'SDR', placement: 'right' },\n LKR: { symbol: 'Rs', placement: 'right' },\n SHP: { symbol: '£', placement: 'right' },\n SDG: { symbol: '.س.ج', placement: 'right' },\n SSP: { symbol: '£', placement: 'right' },\n SRD: { symbol: '$', placement: 'left' },\n SZL: { symbol: 'E', placement: 'right' },\n SEK: { symbol: 'kr', placement: 'right' },\n CHF: { symbol: 'CHf', placement: 'right' },\n SYP: { symbol: '£S', placement: 'right' },\n STD: { symbol: 'Db', placement: 'right' },\n TJS: { symbol: 'SM', placement: 'right' },\n TZS: { symbol: 'TSh', placement: 'right' },\n THB: { symbol: '฿', placement: 'right' },\n TOP: { symbol: '$', placement: 'left' },\n TTD: { symbol: 'TT$', placement: 'right' },\n TND: { symbol: 'ت.د', placement: 'right' },\n TRY: { symbol: '₺', placement: 'right' },\n TMM: { symbol: 'T', placement: 'right' },\n TMT: { symbol: 'T', placement: 'right' },\n TVD: { symbol: '$', placement: 'left' },\n UGX: { symbol: 'USh', placement: 'right' },\n UAH: { symbol: '₴', placement: 'right' },\n AED: { symbol: 'د.إ', placement: 'right' },\n UYU: { symbol: '$U', placement: 'right' },\n USD: { symbol: '$', placement: 'left' },\n UZS: { symbol: 'лв', placement: 'right' },\n VUV: { symbol: 'VT', placement: 'right' },\n VEF: { symbol: 'Bs', placement: 'right' },\n VND: { symbol: '₫', placement: 'right' },\n YER: { symbol: '﷼', placement: 'right' },\n ZMK: { symbol: 'ZK', placement: 'right' },\n ZWD: { symbol: 'Z$', placement: 'right' },\n BTC: { symbol: '฿₿', placement: 'right' },\n ETH: { symbol: 'Ξ', placement: 'right' },\n USDT: { symbol: '₮', placement: 'right' },\n TUS: { symbol: '₮', placement: 'right' },\n FTN: { symbol: 'FTN', placement: 'right' },\n NSP: { symbol: 'NSP', placement: 'right' }\n};\n","import SpringConfigs from '../swarm/spring-configs';\n\nexport const isRtl = SpringConfigs.IS_RTL;\n","import SpringConfigs from '../swarm/spring-configs';\n\nexport const BETSLIP_STAKE_LIMIT = 9;\nexport const BETSLIP_STAKE_LIMIT_WITH_COMMA = BETSLIP_STAKE_LIMIT + 2;\nexport const SEPARATOR = SpringConfigs.PRICE_SEPARATOR === ',';\n","import { ODD_TYPES } from 'utils/constants/betslip/bet-types';\nimport { OddFormat } from 'interfaces/betslip';\n\nconst { DECIMAL, FRACTIONAL, AMERICAN, HONGKONG, MALAY, INDO } = ODD_TYPES;\n\nexport const ODD_FORMATS: OddFormat[] = [\n {\n id: DECIMAL,\n label: 'Decimal',\n value: 'decimal'\n },\n {\n id: FRACTIONAL,\n label: 'Fractional',\n value: 'fractional'\n },\n {\n id: AMERICAN,\n label: 'American',\n value: 'american'\n },\n {\n id: HONGKONG,\n label: 'Hong Kong',\n value: 'hongkong'\n },\n {\n id: MALAY,\n label: 'Malay',\n value: 'malay'\n },\n {\n id: INDO,\n label: 'Indo',\n value: 'indo'\n }\n];\n","export const ALL_ESPORTS_ALIAS = 'AllESports';\n\nexport const ALL_ESPORT_SPORTS = [\n 'CounterStrike',\n 'LeagueOfLegends',\n 'Dota2',\n 'StarCraft2',\n 'EBasketball',\n 'CyberFootball',\n 'CrossFire',\n 'KingOfGlory',\n 'PUBG',\n 'WarcraftIII',\n 'RainbowSix',\n 'MobileLegends'\n];\n","export const SPORTSBOOK_WIDGETS_IDS = {\n betslipWidget: 'betslipWidget',\n eSportLeftSideBarWidget: 'eSportLeftSideBarWidget',\n eSportMiddleWidget: 'eSportMiddleWidget',\n eSportSportsMenuWidget: 'eSportSportsMenuWidget',\n europeanLiveContentWidget: 'europeanLiveContentWidget',\n europeanPrematchLeftWidget: 'europeanPrematchLeftWidget',\n europeanPrematchMiddleWidget: 'europeanPrematchMiddleWidget',\n sportsbookGamesList: 'sportsbookGamesList',\n sportsbookGamesListMarkets: 'sportsbookGamesListMarkets',\n sportsbookSingleView: 'sportsbookSingleView',\n sportsbookLeftSideBarWidget: 'sportsbookLeftSideBarWidget',\n sportsbookSportsMenuWidget: 'sportsbookSportsMenuWidget',\n sportsbookTabsSwitcherWidget: 'sportsbookTabsSwitcherWidget',\n calendarWidget: 'calendarWidget',\n resultsWidget: 'resultsWidget',\n multiViewWidget: 'multiViewWidget',\n overViewWidget: 'overViewWidget',\n tournamentsWidget: 'tournamentsWidget',\n racingCategoryWidget: 'racingCategoryWidget',\n racingLeftSideWidget: 'racingLeftSideWidget',\n racingUpcomingRacesWidget: 'racingUpcomingRacesWidget'\n};\n","export const USA_SPEC_SPORTS = [\n 'Basketball',\n 'IceHockey',\n 'Baseball',\n 'AustralianFootball',\n 'RugbyLeague',\n 'Darts',\n 'Lacross',\n 'AmericanFootball'\n];\n\nexport const TWO_WAY_OUTCOME_SPORTS = [\n 'Tennis',\n 'Volleyball',\n 'Cricket',\n 'TableTennis',\n 'Mma',\n 'CounterStrike',\n '3x3Basketball',\n 'Badminton',\n 'Boxing',\n 'Dota2',\n 'BeachVolleyball',\n 'LeagueOfLegends',\n 'RainbowSix',\n 'Squash',\n 'StarCraft2',\n 'Valorant',\n 'Teqball',\n 'Snooker',\n 'Golf',\n 'KingOfGlory',\n 'HeroesOfTheStorm'\n];\n\nexport const EU_TWO_WAY_OUTCOME_SPORTS = [\n ...TWO_WAY_OUTCOME_SPORTS,\n 'IceHockey',\n 'Basketball',\n 'AmericanFootball',\n 'Cricket',\n 'Darts',\n 'RugbyLeague',\n 'RugbyUnion'\n];\n","import SpringConfigs from 'utils/constants/swarm/spring-configs';\n\nexport type DateFormat = {\n date: string;\n separator?: string;\n time?: string;\n dateTimeSeparator?: string;\n includeWeekday?: boolean;\n weekdaySeparator?: string;\n};\n\nconst defaultParams: DateFormat = {\n date: '',\n separator: ' ',\n includeWeekday: false,\n weekdaySeparator: ''\n};\n\nexport const dateFormat = (props: DateFormat): string => {\n const {\n date,\n separator,\n time,\n dateTimeSeparator,\n includeWeekday,\n weekdaySeparator\n } = {\n ...defaultParams,\n ...props\n } as Required;\n\n const finalDate = date.replace(/ /g, separator);\n\n return `${\n includeWeekday && !SpringConfigs.USE_CA_USA_DATE_FORMATTING\n ? `ddd${weekdaySeparator} `\n : ''\n }${finalDate}${time && dateTimeSeparator ? dateTimeSeparator + time : ''}`;\n};\n","import { CurrencyList } from 'utils/constants/app/curreny-list';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\n\ntype placementListType = {\n default: 'left' | 'right';\n left: 'left';\n right: 'right';\n};\n\nconst getPlacement = (\n currencyPlacement: 'left' | 'right'\n): 'left' | 'right' => {\n const placementList: placementListType = {\n default: currencyPlacement,\n left: 'left',\n right: 'right'\n };\n\n return placementList[SpringConfigs.CURRENCY_PLACEMENT];\n};\n\nexport const currencyFormat = (\n currencyCode = ''\n): { currency: string; placement: 'left' | 'right' } => {\n if (currencyCode) {\n const currencyData = CurrencyList[currencyCode];\n\n if (currencyData) {\n if (SpringConfigs.CURRENCIES_WITH_SYMBOLS) {\n return {\n currency: currencyData.symbol,\n placement: getPlacement(currencyData.placement)\n };\n } else {\n return {\n currency: currencyCode,\n placement: getPlacement(currencyData.placement)\n };\n }\n } else {\n return { currency: currencyCode, placement: 'right' };\n }\n }\n\n return { currency: currencyCode, placement: 'right' };\n};\n\nexport const formatPlacement = (\n currency: string,\n placement: 'left' | 'right'\n): ((amount: number | string, showCurrency?: boolean) => string) => {\n return function (amount, showCurrency) {\n return showCurrency === false\n ? `${amount}`\n : placement === 'left'\n ? `${currency} ${amount}`\n : `${amount} ${currency}`;\n };\n};\n\nexport const formatAmountWithCurrency = (\n currency: string,\n amount: number | string\n): string => {\n return formatPlacement(\n currencyFormat(currency).currency,\n currencyFormat(currency).placement\n )(amount);\n};\n","import { FormEventHandler } from 'react';\nimport { SEPARATOR } from 'utils/constants/betslip';\n\nexport const getIsPositiveNumber = (value: string): boolean =>\n /^[+]?((?!00\\d*$)[0-9]+(?:[.][0-9]*)?|\\.[0-9]+)$/.test(value);\n\nexport const getValidPositiveNumber = (\n value?: string,\n separator?: boolean\n): string | undefined => {\n if (!value) {\n return;\n }\n\n if (value.includes(',') && !separator) {\n value = value.replace(',', '.');\n }\n\n value = value.replace(/[^\\d.]/g, '');\n let formattedValue = String(value?.replace(',', '.'));\n\n if (formattedValue.includes('.')) {\n const indexOfFirst = formattedValue.indexOf('.');\n const indexOfSecond = formattedValue.indexOf('.', indexOfFirst + 1);\n\n if (indexOfSecond !== -1) {\n formattedValue = formattedValue.substring(0, indexOfSecond);\n }\n }\n\n let updatedValue = null;\n\n if (\n formattedValue.length === 2 &&\n +formattedValue[0] === 0 &&\n formattedValue[1] !== '.'\n ) {\n updatedValue = `0.${formattedValue[1]}`;\n }\n\n if (getIsPositiveNumber(formattedValue) || !value || updatedValue) {\n return updatedValue || formattedValue;\n }\n};\n\nexport const getValidDecimalInput: FormEventHandler = (\n event\n): void => {\n const target = event.target as HTMLInputElement;\n const regex = /[^0-9.]/g;\n\n if (`${target.value || ''}`.charAt(0) === '.') {\n target.value = `0${target.value}`;\n } else {\n if (target.value.split('.').length > 2) {\n target.value = target.value.slice(0, target.value.lastIndexOf('.'));\n } else {\n target.value = target.value.replace(regex, '');\n }\n }\n};\n\nexport const thousandSeparator = (value: string | number): string | number => {\n const valString = value?.toString() || '';\n\n return SEPARATOR && value\n ? valString.indexOf('.') <= valString.indexOf(',')\n ? valString.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n : valString\n .split('.')[0]\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n .concat('.', valString.split('.')[1].replace(',', ''))\n : value;\n};\n\nexport const removeComma = (value: string): string => {\n if (value) {\n return value.replace(',', '');\n }\n\n return value;\n};\n\ntype TCheckInitialLimitValues = {\n [key: string]: string | number | undefined;\n};\n\nexport const checkInitialLimitValues = (\n formData: TCheckInitialLimitValues,\n initialData: TCheckInitialLimitValues\n): boolean => {\n let isFieldTouched = false;\n\n Object.entries(formData).forEach(([key, value]): void => {\n const initialValue = initialData[key as keyof typeof initialData];\n\n if (Number(initialValue) !== Number(value)) {\n isFieldTouched = true;\n }\n });\n\n return isFieldTouched;\n};\n\nexport const getValidDecimalInputNoDot: FormEventHandler = (\n event\n): void => {\n const target = event.target as HTMLInputElement;\n const regex = /[^0-9]/g;\n target.value = target.value.replace(regex, '');\n};\n","export const capitalize = (value: string): string => {\n return value.charAt(0).toUpperCase() + value.slice(1);\n};\n\nexport const decapitalize = ([first, ...rest]: string): string => {\n return first.toLowerCase() + rest.join('');\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar defaultProps = {\n preventDefaultTouchmoveEvent: false,\n delta: 10,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true\n};\nvar initialState = {\n xy: [0, 0],\n swiping: false,\n eventData: undefined,\n start: undefined\n};\nvar LEFT = 'Left';\nvar RIGHT = 'Right';\nvar UP = 'Up';\nvar DOWN = 'Down';\nvar touchStart = 'touchstart';\nvar touchMove = 'touchmove';\nvar touchEnd = 'touchend';\nvar mouseMove = 'mousemove';\nvar mouseUp = 'mouseup';\n\nfunction getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return LEFT;\n }\n\n return RIGHT;\n } else if (deltaY > 0) {\n return UP;\n }\n\n return DOWN;\n}\n\nfunction rotateXYByAngle(pos, angle) {\n if (angle === 0) return pos;\n var angleInRadians = Math.PI / 180 * angle;\n var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\n\nfunction getHandlers(set, handlerProps) {\n var onStart = function onStart(event) {\n // if more than a single touch don't track, for now...\n if (event.touches && event.touches.length > 1) return;\n set(function (state, props) {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n return _extends({}, state, initialState, {\n eventData: {\n initial: [].concat(xy),\n first: true\n },\n xy: xy,\n start: event.timeStamp || 0\n });\n });\n };\n\n var onMove = function onMove(event) {\n set(function (state, props) {\n if (!state.xy[0] || !state.xy[1] || event.touches && event.touches.length > 1) {\n return state;\n }\n\n var _ref2 = event.touches ? event.touches[0] : event,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n x = _rotateXYByAngle[0],\n y = _rotateXYByAngle[1];\n\n var deltaX = state.xy[0] - x;\n var deltaY = state.xy[1] - y;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n var time = (event.timeStamp || 0) - state.start;\n var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1); // if swipe is under delta and we have not started to track a swipe: skip update\n\n if (absX < props.delta && absY < props.delta && !state.swiping) return state;\n var dir = getDirection(absX, absY, deltaX, deltaY);\n\n var eventData = _extends({}, state.eventData, {\n event: event,\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n velocity: velocity,\n dir: dir\n });\n\n props.onSwiping && props.onSwiping(eventData); // track if a swipe is cancelable(handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n\n var cancelablePageSwipe = false;\n\n if (props.onSwiping || props.onSwiped || props[\"onSwiped\" + dir]) {\n cancelablePageSwipe = true;\n }\n\n if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault(); // first is now always false\n\n return _extends({}, state, {\n eventData: _extends({}, eventData, {\n first: false\n }),\n swiping: true\n });\n });\n };\n\n var onEnd = function onEnd(event) {\n set(function (state, props) {\n var eventData;\n\n if (state.swiping) {\n eventData = _extends({}, state.eventData, {\n event: event\n });\n props.onSwiped && props.onSwiped(eventData);\n props[\"onSwiped\" + eventData.dir] && props[\"onSwiped\" + eventData.dir](eventData);\n }\n\n return _extends({}, state, initialState, {\n eventData: eventData\n });\n });\n };\n\n var cleanUpMouse = function cleanUpMouse() {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n var onUp = function onUp(e) {\n cleanUpMouse();\n onEnd(e);\n };\n\n var attachTouch = function attachTouch(el) {\n if (el && el.addEventListener) {\n // attach touch event listeners and handlers\n var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n tls.forEach(function (_ref3) {\n var e = _ref3[0],\n h = _ref3[1];\n return el.addEventListener(e, h);\n }); // return properly scoped cleanup method for removing listeners\n\n return function () {\n return tls.forEach(function (_ref4) {\n var e = _ref4[0],\n h = _ref4[1];\n return el.removeEventListener(e, h);\n });\n };\n }\n };\n\n var onRef = function onRef(el) {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set(function (state, props) {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n var addState = {}; // if new DOM el clean up old DOM and reset cleanUpTouch\n\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } // only attach if we want to track touch\n\n\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el);\n } // store event attached DOM el for comparison, clean up, and re-attachment\n\n\n return _extends({}, state, {\n el: el\n }, addState);\n });\n }; // set ref callback to attach touch event listeners\n\n\n var output = {\n ref: onRef // if track mouse attach mouse down listener\n\n };\n\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n}\n\nfunction updateTransientState(state, props, attachTouch) {\n var addState = {}; // clean up touch handlers if no longer tracking touches\n\n if (!props.trackTouch && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } else if (props.trackTouch && !state.cleanUpTouch) {\n // attach/re-attach touch handlers\n if (state.el) {\n addState.cleanUpTouch = attachTouch(state.el);\n }\n }\n\n return _extends({}, state, addState);\n}\n\nfunction useSwipeable(props) {\n var trackMouse = props.trackMouse;\n var transientState = React.useRef(_extends({}, initialState, {\n type: 'hook'\n }));\n var transientProps = React.useRef();\n transientProps.current = _extends({}, defaultProps, props);\n\n var _React$useMemo = React.useMemo(function () {\n return getHandlers(function (cb) {\n return transientState.current = cb(transientState.current, transientProps.current);\n }, {\n trackMouse: trackMouse\n });\n }, [trackMouse]),\n handlers = _React$useMemo[0],\n attachTouch = _React$useMemo[1];\n\n transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n return handlers;\n}\nvar Swipeable =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Swipeable, _React$PureComponent);\n\n function Swipeable(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n\n _this._set = function (cb) {\n _this.transientState = cb(_this.transientState, _this.props);\n };\n\n _this.transientState = _extends({}, initialState, {\n type: 'class'\n });\n return _this;\n }\n\n var _proto = Swipeable.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n _this$props$nodeName = _this$props.nodeName,\n nodeName = _this$props$nodeName === void 0 ? 'div' : _this$props$nodeName,\n innerRef = _this$props.innerRef,\n children = _this$props.children,\n trackMouse = _this$props.trackMouse;\n\n var _getHandlers = getHandlers(this._set, {\n trackMouse: trackMouse\n }),\n handlers = _getHandlers[0],\n attachTouch = _getHandlers[1];\n\n this.transientState = updateTransientState(this.transientState, this.props, attachTouch);\n var ref = innerRef ? function (el) {\n return innerRef(el), handlers.ref(el);\n } : handlers.ref;\n return React.createElement(nodeName, _extends({}, handlers, {\n className: className,\n style: style,\n ref: ref\n }), children);\n };\n\n return Swipeable;\n}(React.PureComponent);\nSwipeable.propTypes = {\n onSwiped: PropTypes.func,\n onSwiping: PropTypes.func,\n onSwipedUp: PropTypes.func,\n onSwipedRight: PropTypes.func,\n onSwipedDown: PropTypes.func,\n onSwipedLeft: PropTypes.func,\n delta: PropTypes.number,\n preventDefaultTouchmoveEvent: PropTypes.bool,\n nodeName: PropTypes.string,\n trackMouse: PropTypes.bool,\n trackTouch: PropTypes.bool,\n innerRef: PropTypes.func,\n rotationAngle: PropTypes.number\n};\nSwipeable.defaultProps = defaultProps;\n\nexport { DOWN, LEFT, RIGHT, Swipeable, UP, useSwipeable };\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses, attrToProp, wrapperClass };","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\nexport { paramsList };","import React from 'react';\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\nexport { getChildren };","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend, wrapperClass } from '../components-shared/utils.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new SwiperCore(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nexport { getChangedParams };","import { isObject, extend } from './utils.js';\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n swiper.el.shadowEl.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n swiper.el.shadowEl.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n swiper.el.shadowEl.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n swiper.el.shadowEl.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\nexport { updateSwiper };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: `slide-${index}`\n });\n });\n}\nexport { renderVirtual };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nexport const preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit,\n params\n}) {\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style[getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n };\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}"],"names":["EmptyMatches","_ref","isLive","cover","withLink","isEvent","calendar","isESport","useFullContentHeight","noGameText","t","useTranslation","history","useHistory","menuJsonData","useSelector","getMenuJsonData","contentHeight","useContentHeight","resultRef","useRef","getType","type","arguments","length","undefined","toUpperCase","toLowerCase","capitalize","useEffect","isMobile","elem","current","closest","prevPosition","style","position","prevOverflow","overflow","_jsx","_Result","title","ResultTitle","children","background","top","bottom","width","zIndex","display","flexDirection","justifyContent","alignItems","right","padding","minHeight","borderRadius","icon","GlobalIcon","lib","name","theme","size","skeleton","useEmptyPlaceholder","subTitle","ResultSubTitle","ref","dangerouslySetInnerHTML","__html","extra","Button","onClick","_menuJsonData$find","_menuJsonData$find2","replace","SpringConfigs","PAGE_URLS","SPORTSBOOK_MOUNT_PATH","window","location","origin","find","instance","category","path","href","styled","div","withConfig","displayName","componentId","Loading","className","onAfterLoad","onBeforeLoad","color","useLayoutEffect","EIconSize","_32","MatchCardInlineSkeleton","hideOdds","selectedGames","isBoostedOdd","_jsxs","Header","Title","Skeleton","margin","height","paragraph","active","Action","Wrapper","avatar","shape","marginTop","marginBottom","Row","gutterV","ROW_GUTTER","_4","gutterH","createArray","map","key","Col","xs","ColSizes","SIZE_8","Team","props","whiteText","bolt","$justify","Container","bgImg","CustomHeader","iconLib","iconName","iconTheme","onCancel","_24","_20","Modal","image","align","maxWidth","ModalWidth","MAX_1272","wrapperPadding","bodyStyle","closeIcon","visible","preventScrollDisable","hideBorder","destroyOnClose","fixBody","customHeader","contentPadding","wrapClassName","getContainer","wrapperContainerPadding","placement","fullPage","footer","maskStyle","closeIconStyle","rest","dispatch","useDispatch","openedModals","getOpenedModals","open","getBetslipOpen","modalId","uuidv4","accounts","useSearchParams","_preventScrollDisable","useMemo","usePopupScrollDisable","updateOpenedModal","updateType","openedModalsCopy","Set","setOpenedModals","CustomModal","ModalPadding","MOBILE_12","textAlign","WRAPPER_8","onClose","_72","ModalButtons","_ref2","direction","animationTypeOpen","toLeft","keyframes","toRight","toTop","toBottom","animationTypeClose","CustomMask","maskBackground","$maskPosTop","show","animationTime","CustomData","posBottom","posTop","posLeft","posRight","animationType","Popup","memo","onMaskClick","mask","maskPosTop","onBeforeOpen","onAnimationEnd","initiallyLoaded","loaded","animationTypeFromParams","MOCKED_DATA","Portal","usePosTop","cc","matchCardInlineUSASkeletonDefaultProps","sportAlias","MatchCardInlineUSASkeleton","hideMoreWages","detailedTeamsInfo","useSportsbookConfigs","pageType","ESportsbookPageTypes","live","isClassic","setIsClassic","useState","USA_SPEC_SPORTS","includes","isClassicColumn","setIsClassicColumn","TWO_WAY_OUTCOME_SPORTS","_Fragment","Avatar","marginRight","marginLeft","event","USALayoutSkeleton","showTitle","borderBottom","CompetitionSkeleton","count","includeCollapse","hideMargin","configs","COMPETITION_SKELETON_DEFAULT_LENGTH","ConditionalWrapper","condition","wrapper","EventCollapse","wrapperClassName","defaultActive","IS_AMERICAN_LAYOUT","spbLayoutType","ENotRealSports","outright","defaultConditions","mobile","desktop","Viewport","MobileView","DesktopView","mobileCondition","desktopCondition","conditions","ForcedLayout","forceViewport","forcedLayoutConditions","forcedLayoutCondition","Suspense","innerProps","fallback","useCurrency","currency","setCurrency","userCurrency","getUser","isLoggedIn","getIsLoggedIn","partnerConfig","getPartnerConfigs","currencyData","currencyFormat","currencyDataName","usdtCurrency","USDT_CUR","currencyId","formatAmount","formatPlacement","scrollPositionRef","timer","setTimeout","document","body","scrollY","touchAction","documentElement","timeoutDuration","DURATION_200","clearTimeout","removeProperty","setOverflowInterval","setInterval","clearInterval","DURATION_100","scrollTo","useScrollToTop","id","deps","container","getElementById","scroll","behavior","SportsbookGameListHeaderSkeleton","withBack","showMarketFilterSkeleton","applyAdditionalMargin","showSportNameWithFavorite","params","useSbRouteMatch","minWidth","applyElementStyle","ESportsbookLayoutTypes","AMERICAN","competition","IS_RTL","SportSelect","extraClass","groupSports","drawAlternativeSkeleton","openDirectionBottom","sports","setSports","useLocation","mounted","useMounted","handleSelect","useCallback","sport","push","pathname","search","separator","rid","RidGenerator","gForSubscribe","executeCommand","SPORTS_WHAT","game","start_ts","dayjs","unix","endOf","market","display_key","display_sub_key","getLivePreMatchSportTypes","data","sortByOrder","Object","values","alias","unsubscribeCommand","Select","suffixIcon","_12","value","dropdownClassName","getPopupContainer","trigger","parentNode","onChange","filterOption","input","option","Option","LIVE_GAME_WHAT","PREMATCH_GAME_WHAT","getWhat","region","EPageTypes","prematch","getWhere","regionAlias","competitionId","marketType","timestamp","favoriteTeamId","tournamentSportIds","isUsaLayout","result","team1_id","team2_id","visible_in_prematch","marketTypes","WINNER_MARKETS","NOT_REAL_SPORTS","keys","Live","lazy","Prematch","Today","pages","today","team","SportsbookGameListWrapper","_useSelector","showHeader","Page","layoutType","ELayoutTypes","usa","classic","getTimeFiltersData","getTournamentSportIds","clickFromFavorites","getClickFromFavorites","groupingData","getSportGroupingsData","getterParam","Number","getGames","marketsCount","getMarketsCount","regionCompData","getRegionCompData","currentMarketType","callMarketTypes","useMarketTypes","gameIds","reduce","forEach","handleSetData","JSON","stringify","setGames","updateMarketsCount","markets","_ref3","setMarketsCount","setMarketType","label","setMarketTypes","currentCompetition","_Object$values$find","_Object$values$find$c","_params$competition","Math","random","_region$competition","currentCompetitionId","setClickFromFavorites","getGamesEffectDependencyBasedOnMarketTypeAndSport","_Object$keys","setShowNoItemWrapper","regions","competitions","what","where","todayEvents","createTodayEventsWhere","betBuilder","sportcast_id","gameSportcastIdWhere","response","originalMarketsCountRid","relations","gameSportcastId","join","groupOfSport","_ref4","some","_ref5","isLiveWithGroups","hasSport","ALL_ESPORT_SPORTS","isAliasESport","GameListWrapperSkeleton","Checkbox","_Checkbox","randomNumberForAddBlocker","rand","maskClosable","closable","afterClose","centered","renderCloseIconInMask","modalVisible","setModalVisible","modalContainerRef","handleClose","closeModal","timeout","modalContent","customModal__notCentered","customModal__left","customModal__right","customModal__top","customModal__bottom","ZINDEX_HIGH_1","border","handleMaskClick","rootId","HorizontalMenu","tabRef","useUpdateEffect","_tabRef$current","_tabRef$current$scrol","scrollIntoView","call","inline","block","selectedKey","createTestId","items","item","index","_Select","_childrenArr$length","withoutMargin","disabled","onSelect","onApply","customButton","onDropdownVisibleChange","extraOnDropdownVisibleChange","applayButtonDisable","hideSuffixIcon","dropdownId","useId","selectRef","isDropdownOpen","setIsDropdownOpen","xSelectWrapperRef","openDirection","setOpenDirection","childrenArr","Array","isArray","checkSelectType","providers","SELECT_PROVIDERS_TYPE","mode","blur","isDisabled","isLoadingProvider","loading","_document$getElementB","virtualListContainer","holder","querySelector","handler","e","stopPropagation","addEventListener","removeEventListener","shouldShowLoadingIcon","_Skeleton","_xSelectWrapperRef$cu","elemFromTop","getBoundingClientRect","innerHeight","showAction","showSearch","_option$children","dropdownRender","onMouseDown","preventDefault","_SportsbookWidgetsHeightWrapper","childrenElementId","offsetTopValue","setOffsetTopValue","wrapperStyles","element","elemTopValue","scrollTop","DURATION_500","SportsbookWidgetsHeightWrapper","shouldWrap","SportNft","sportNft","handleNftClick","authData","parse","LocalStorage","getItem","storageKeyName","claimUrl","auth_token","PARTNER_ID","src","mobileImgUrl","desktopImgUrl","SportNFTsModal","user","sportNfts","setSportNfts","currentTimestamp","MILLISECONDS_IN_SECOND","getUserGiftsSentTimestamp","LS","lastRequestTimestamp","isDifferenceGreaterThanOneDay","diff","async","_data$data","axios","partnerId","externalId","langId","CURRENT_LANGUAGE_PREFIX","Data","fetchData","handleModalClose","setItem","String","MOBILE_350","DESKTOP_720","SwiperSlider","showIndicators","activeSlide","spaceBetween","slidesPerView","bodyArrows","drawableTabs","nftData","Esport","FetchFavoriteTeamsData","MetaUpdatesWrapper","VIEWS","esport","Sportsbook","defaultConfigs","SPORTSBOOK_VIEW_TYPES","useSportsbookMountPoint","useBoostedOdds","View","elementConfigs","CLASSIC","setLoading","SPORTS_CONFIGS","fetch","then","responce","json","resp","store","setSportsConfigs","fromStatistics","gForCommand","removeItem","favoriteTeam","SportsbookConfigsContext","Provider","FallbackContainer","INCLUDE_SPORT_DATA_IN_META","ADVANCED","ADVANCED_SPORT_BY_COMPETITIONS_LAYOUT_SHOW_EVENTS_BUTTON_ID","STATE_FROM","useCustomHistory","useReactRouterHistory","getPathname","getFrom","pop","goBack","fallbackUrl","fromUrl","useEventbus","events","initEventBus","fireEvent","effect","isFirst","useIsFirstRender","getMarketTypes","getMarketType","sport_alias","swarmCommand","CommandNames","GET_MARKET_TYPE","details","sort","a","b","Order","MarketTypeName","BasaltKind","getter","shouldRedirect","redirectPath","mountPoint","SportDataContext","createContext","SportDataProvider","sportName","useSportName","useContext","AFTER_SIGN_IN_ACTION_TYPES","AfterSignIn","constructor","setAfterExecutionCallback","callback","afterExecutionCallback","setFinalExecutionCallback","finalExecutionCallback","appendAction","promise","actions","isActionsExist","removeActions","executeActions","Promise","all","successAction","resolve","func","_instance","this","setGamesNotifications","gameInfo","shouldSubscribe","updateCallback","command","SET_GAMES_NOTIFICATIONS","game_list","event_name","is_subscribed","connectingWS","socket","sendCommand","getUserAllNotifications","GET_USER_ALL_NOTIFICATIONS","setUserNotifications","getAppData","getSelectorRoot","getColCount","getRecaptchaEnabled","getRecaptchaVersion","getSiteKey","getTurnstileEnabled","getRecaptchaKey","getRounding","getRoundingLoading","getRegFieldData","getShowAdditionalInfo","getPersonalizedGenericSettings","getAtoZMenuData","getSectionsData","getPostGridHiddenParams","getCashoutModalOpen","getDepositModalOpen","getDepositStatus","getFirebaseToken","getOneSignalSubId","getHeaderState","getGeolocationShakeData","getHomeworkData","getSportsConfigsData","getIsPaymentsLoading","getCryptoCurrencies","getBetShopsData","getSID","getRemainingSessionDuration","getFavoriteOnHeaderOpen","getFavoriteSelectedTab","getIdinData","getLocateData","getIsDarkMode","getHigherZIndex","getInitSportsbookIframe","getForgotPasswordOpen","getForgotUsernameOpen","getShowToTopNav","getTourSteps","gettourStepsInitialData","getTourModalVisible","getAfterSignInActions","getGeoComplyErrorPopupAvailable","getGeoComplyErrorPopupText","getLeftSidebarOpenCloseTrigger","getBetSlip","getTabs","getTaxes","getMustOpen","getMustClose","getBetslipType","getLadderLoaded","getActiveTabPage","getFreezeTabChange","getAdvancedSelectedTab","getQuickSingleBetslipOpen","getIsBetslipOpenedInDefaultMode","createSelector","getQuickBetEnabled","quickBetEnabled","isBetslipOpened","getComputedBetType","betType","betslipType","EBetslipType","EBetslipBetType","SINGLE","getBookBetId","getUseBonusBalance","getIsBookingMode","getQuickBetStake","getShouldShowQuickBetInfoPopover","getQuickBetInProcessCount","getQuickBetSelectedEventId","getFreeBets","getIsFreeBetEnabled","selectedFreeBetEventId","getSelectedFreeBetEventId","freeBets","getFreeBetAmounts","getFreeBetAmountsUtil","freeBetStore","BASIC","singleEventFreeBets","CHAIN","MULTIPLE","multipleFreeBets","GENERAL_FIELD_KEY","advancedFreeBets","getSelectedFreeBetAmount","getSelectedFreeBetAmountUtil","freeBetAmounts","_freeBetAmounts$find","_freeBetAmounts$","freeBetAmount","selectedFreeBetId","getSingleEventFreeBetAmounts","eventId","freeBetsStore","getFreeBetsByEventId","getSelectedFreeBetData","amounts","getIsFrenchFreeBetEnabled","getIsSingleEventFreeBetEnabled","getOpenBetsData","getOpenBetsCount","getOpenBetsLoading","getUpdateOpenBetsTrigger","getOpenBetsCountAfterCashout","_getAllLsBets","getAllLsBets","allLsBets","getAllBets","getSubscriptions","getIsBetInProgress","getBettedTrigger","getUpdatedBetTickets","getBetTypesConf","getSelectedBetType","getSubscribedEvents","getConflictingGameIds","getTicketsChanged","getEventIds","subscriptions","subscription","getIsSpEvents","bets","sp","getSingleBetById","bet","getAllBetIds","getAllBetsCount","getOddFormat","getTotalOddsReturn","getEventPrevOdds","getBetsTotalOdds","getEventPrevOddById","prevOdds","getStakes","getTotalStake","getTotalBetStake","getTotalSingleWin","getMaxStakeLoading","getPredefinedStakes","getProfitBoost","getProfitBoostAdvanced","getProfitBoost_","getIsProfitBoostAvailable","profitBoost","_profitBoost$items","has_free_bets","singleProfitBoostItems","getSelectedEventProfitBoostItems","getSelectedEventProfitBoostItemsUtil","getSelectedProfitBoostItem","getSelectedProfitBoostItemUtil","checkIsProfitBoostAvailable","isAvailable","_singleProfitBoostIte","getIsEventSelectedOnProfitBoost","profitBoostSelectedEventId","getSelectedProfitBoostItemByEventId","selectedProfitBoostItem","getBetsCalculations","getSingleEventCalculationData","singleEventsCalculations","general","_Object$values","_Object$values$","generalStakeForSingleEvents","stake","calculation","getIsCounterOfferActiveByEventId","getIsSuperBetActiveByEventId","_singleEventsCalculat","superBet","getCounterOfferActiveEventIds","entries","ids","calc","getCounterOffersFromCalculations","_ref6","acc","_singleEventsCalculat2","oddOffer","getSuperBetActiveEventIds","_ref7","eventIds","_ref8","getSingleEventsStakes","_ref9","_calc$stake","getAllSingleEventsPossinleWin","_ref10","totalReturn","_calculation$finalRes","finalResult","possibleWin","_getAdvancedStake","isFinal","allBets","_ref11","totalBetStake","activeTab","_ref12","_singleEventsCalculat3","_singleEventsCalculat4","_singleEventsCalculat5","finalStake","EAdvancedSelectedTabs","QUICKBET","singleStakes","_ref13","_calculation$finalRes2","add","getAdvancedTotalStake","getAllStakes","_ref14","single","_ref15","_info$stake","info","getBetsTotalStake","advancedTotalStake","allStakes","_Object$values2","_singleEventsCalculat6","_singleEventsCalculat7","total","SYSTEM","getCounterOffers","getSentSuperBetCount","getOddsCounterOffers","getSentCounterOffersCount","getCounterOffersUnderReviewModal","getSelectedOddCounterOffer","getSelectedCounterOfferType","getIsCounterOfferActive","counterOffers","isActive","getSelected","getEditBet","getEditableBetTicket","openBets","editBet","betId","getCashoutFrom","getCashOutTicket","getSportBonuses","getSingleReturn","getIsCalculating","getCalculationLoading","getBasicEw","getSelectedSystem","getPossibleSystemCombinations","getSystemMinCombinationsCount","getSocket","getJackpots","getIsConnected","getPermissibleOdds","callbackError","commandObj","permissibleOddsCommand","GET_PERMISSIBLE_ODDS","Config","decimalFormatRemove3Digit","roundDecimalCoeficients","ODD_ROUNDING","useLadderForFractionalFormat","cache","oddFormat","ladderLoaded","Store","getState","betSlip","priceDecimal","ladder","loadLadder","ladderIsLoaded","updateOddFormat","convert","val","formatID","_ODD_FORMATS$find","isNaN","Infinity","format","ODD_FORMATS","parseFloat","cacheKey","round","converted","fValue","iValue","floor","rValue","toString","split","pow","CALCULATE_POWER_OF_10","toFixed","decimalValue","fracFL","dec","frac","price","issetPriceArray","Price","Numerator","Denominator","i","dec2fracFromLadder","decVal","Znxt","Dnxt","Nnxt","recCalc","Zcur","Dcur","Dprev","dec2frac","fractionalValue","americanValue","hongKongValue","malayValue","indoValue","convertLog","roundedConverted","_String","_String$split","_String$split$","partnerConfigs","price_decimals","leftSideBarCasinoMain","matchCasinoUrl","RegExp","casino","match","LEFT_SIDE_BAR","LEFT_SIDE_BAR_CASINO","recentPlayedParams","catId","category_id","isShowGamesCountBadge","gamesCount","games_count","FAVORITE","clearCasinoPopupQuery","querySearch","URLSearchParams","delete","CountryCodes","code","alpha3Code","translationName","i18n","phone_code","lang","CurrencyList","AFA","symbol","ALL","DZD","AOA","ARS","AMD","AWG","AUD","AZN","BSD","BHD","BDT","BBD","BYR","BYN","BEF","BZD","BMD","BTN","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","KHR","CAD","CVE","CYP","KYD","XOF","XAF","XPF","CLP","CNY","COP","KMF","CDF","CRC","HRK","CUC","CUP","CZK","DKK","DJF","DOP","XCD","EGP","ERN","EEK","ETB","EUR","FKP","FJD","GMD","GEL","DEM","GHC","GHS","GIP","GRD","GTQ","GGP","GNF","GYD","HTG","HNL","HKD","HUF","ISK","INR","IDR","IRR","IQD","IMP","ILS","ITL","JMD","JPY","JEP","JOD","KZT","KES","KWD","KGS","LAK","LVL","LBP","LSL","LRD","LYD","LTL","MTL","MOP","MKD","MGA","MWK","MYR","MVR","MRO","MUR","MXN","MDL","MNT","MZN","MAD","MZM","MMK","NAD","NPR","ANG","TWD","NZD","NIO","NGN","KPW","NOK","OMR","PKR","PAB","PGK","PYG","PEN","PHP","PLN","QAR","RON","RUB","RWF","SVC","WST","SAR","RSD","SCR","SLL","SGD","SKK","SBD","SOS","ZAR","KRW","XDR","LKR","SHP","SDG","SSP","SRD","SZL","SEK","CHF","SYP","STD","TJS","TZS","THB","TOP","TTD","TND","TRY","TMM","TMT","TVD","UGX","UAH","AED","UYU","USD","UZS","VUV","VEF","VND","YER","ZMK","ZWD","BTC","ETH","USDT","TUS","FTN","NSP","isRtl","BETSLIP_STAKE_LIMIT","BETSLIP_STAKE_LIMIT_WITH_COMMA","SEPARATOR","PRICE_SEPARATOR","DECIMAL","FRACTIONAL","HONGKONG","MALAY","INDO","ODD_TYPES","ALL_ESPORTS_ALIAS","SPORTSBOOK_WIDGETS_IDS","betslipWidget","eSportLeftSideBarWidget","eSportMiddleWidget","eSportSportsMenuWidget","europeanLiveContentWidget","europeanPrematchLeftWidget","europeanPrematchMiddleWidget","sportsbookGamesList","sportsbookGamesListMarkets","sportsbookSingleView","sportsbookLeftSideBarWidget","sportsbookSportsMenuWidget","sportsbookTabsSwitcherWidget","calendarWidget","resultsWidget","multiViewWidget","overViewWidget","tournamentsWidget","racingCategoryWidget","racingLeftSideWidget","racingUpcomingRacesWidget","EU_TWO_WAY_OUTCOME_SPORTS","defaultParams","date","includeWeekday","weekdaySeparator","dateFormat","time","dateTimeSeparator","finalDate","USE_CA_USA_DATE_FORMATTING","getPlacement","currencyPlacement","default","left","CURRENCY_PLACEMENT","currencyCode","CURRENCIES_WITH_SYMBOLS","amount","showCurrency","formatAmountWithCurrency","getValidPositiveNumber","_value","formattedValue","indexOfFirst","indexOf","indexOfSecond","substring","updatedValue","test","getIsPositiveNumber","getValidDecimalInput","target","regex","charAt","slice","lastIndexOf","thousandSeparator","valString","concat","removeComma","checkInitialLimitValues","formData","initialData","isFieldTouched","initialValue","getValidDecimalInputNoDot","deselectCurrent","require","clipboardToIE11Formatting","module","exports","text","options","debug","message","reselectPrevious","range","selection","mark","success","createRange","getSelection","createElement","textContent","ariaHidden","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","clipboardData","console","warn","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","extendStatics","d","setPrototypeOf","__proto__","p","hasOwnProperty","__assign","assign","s","n","prototype","apply","delay","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","self","elapsed","Date","now","args","exec","cancel","__","create","_extends","source","defaultProps","preventDefaultTouchmoveEvent","delta","rotationAngle","trackMouse","trackTouch","initialState","xy","swiping","eventData","start","LEFT","RIGHT","UP","DOWN","touchStart","touchMove","touchEnd","mouseMove","mouseUp","rotateXYByAngle","pos","angle","angleInRadians","PI","cos","sin","getHandlers","set","handlerProps","onStart","touches","state","onMove","onUp","clientX","clientY","initial","first","timeStamp","_rotateXYByAngle","x","y","deltaX","deltaY","absX","abs","absY","velocity","sqrt","dir","getDirection","onSwiping","cancelablePageSwipe","onSwiped","cancelable","onEnd","cleanUpMouse","attachTouch","el","tls","h","output","addState","cleanUpTouch","updateTransientState","Swipeable","_React$PureComponent","subClass","superClass","_this","_set","cb","transientState","render","_this$props","_this$props$nodeName","nodeName","innerRef","_getHandlers","handlers","React","propTypes","PropTypes","onSwipedUp","onSwipedRight","onSwipedDown","onSwipedLeft","rangeCount","activeElement","ranges","getRangeAt","tagName","focus","getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","uuid","REGEX","byteToHex","substr","arr","offset","validate","TypeError","buf","rnds","isObject","o","extend","noExtend","filter","__swiper__","needsNavigation","navigation","nextEl","prevEl","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","classes","c","trim","unique","wrapperClass","paramsList","isChildSwiperSlide","child","processChildren","slides","toArray","slide","getChildren","slots","slot","foundSlides","useIsomorphicLayoutEffect","SwiperSlideContext","SwiperContext","Swiper","forwardRef","_temp","externalElRef","tag","Tag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","swiperParams","passedParams","restProps","obj","splitEvents","on","defaults","extendedDefaults","_emitClasses","init","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","swiper","initSwiper","passParams","SwiperCore","virtual","enabled","extendWith","renderExternal","renderExternalUpdate","originalParams","off","emitSlidesClasses","destroyed","paginationEl","scrollbarEl","mountSwiper","destroy","eventName","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","controller","control","destroyModule","mod","isElement","remove","loop","newValue","update","classList","shadowEl","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","loopDestroy","loopCreate","updateSwiper","updateSlides","updateProgress","updateSlidesClasses","parallax","getSlideIndex","slideIndex","isHorizontal","rtlTranslate","from","to","loopFrom","loopTo","slidesToRender","renderVirtual","swiperSlideIndex","SwiperSlide","externalRef","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","classNames","getSlideClasses","slideData","isVisible","isPrev","isNext","renderChildren","onLoad","ssrDocument","querySelectorAll","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","hash","host","hostname","protocol","getDocument","doc","ssrWindow","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","getWindow","win","nextTick","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","nextSource","node","HTMLElement","nodeType","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","targetPosition","side","startPosition","translate","startTime","duration","speed","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","animate","getTime","progress","max","min","easeProgress","currentPosition","elementChildren","selector","matches","elementStyle","prop","elementIndex","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","calcBrowser","priority","eventsListeners","method","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","emit","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","slideClass","lazyEl","lazyPreloaderClass","unlazy","removeAttribute","preload","lazyPreloadPrevNext","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","_","column","slideIndexLastInView","rewind","realIndex","clientWidth","clientHeight","isVertical","parseInt","getDirectionLabel","property","getDirectionPropertyValue","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","shouldResetSlideSize","breakpoints","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","nextEls","nextElementSibling","next","elementNextAll","prevSlide","prevEls","previousElementSibling","prev","elementPrevAll","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionEmit","step","slideTo","normalizedTranslate","normalizedGrid","normalizedGridNext","transitionStart","transitionEnd","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","slideRealIndex","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","loopParams","newSlidesOrder","onTouchStart","touchEventsData","evCache","simulateTouch","pointerType","originalEvent","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","touchAngle","atan2","touchMoveStopPropagation","nested","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","resizeObserver","createElements","url","breakpointsBase","uniqueNavElements","passiveListeners","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","transitionDuration","moving","isLocked","__preventObserver__","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","isEnabled","base","containerEl","currentHeight","points","point","minRatio","wasLocked","lastSlideRightEdge","addClasses","suffixes","prefix","resultClasses","prepareClasses","removeClasses","swipers","newParams","modules","__modules__","extendParams","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","subEl","onPrevClick","onNextClick","initButton","destroyButton","clickable","isHidden","toggle","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","newSlideIndex","currentSlideIndex","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","innerHTML","paginationHTML","numberOfBullets","Autoplay","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","run","delayForce","currentSlideDelay","getSlideDelay","activeSlideEl","proceed","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order"],"sourceRoot":""}