{"version":3,"sources":["Shared/Icons/PlusToggleIcon.tsx","Shared/Icons/MinusToggleIcon.tsx","Cart/Cart.ts","Shared/CtaButton/CtaButton.tsx","Shared/Icons/HeartIcon.tsx","Shared/Icons/ArrowRightIcon.tsx","Shared/Icons/AccountIcon.tsx","Shared/Icons/SearchIcon.tsx","Shared/Icons/CartIcon.tsx","Shared/Icons/MenuIcon.tsx","Shared/Icons/GlobeIcon.tsx","Shared/Icons/Logo.tsx","Shared/Icons/LogoWhite.tsx","Shared/Icons/ProfileIconFilled.tsx","Shared/Icons/LoadingCircle.tsx","Shared/Icons/ExclamationMarkIcon.tsx","Shared/Icons/index.ts","Shared/Icons/ContactIcon.tsx","Shared/Icons/ProfileIcon.tsx"],"names":["styled","compose","Svg","css","width","height","viewBox","fill","xmlns","d","fillRule","clipRule","abortController","AbortController","hasMounted","cartUrl","litiumContext","requestVerificationToken","GetCart","useState","cart","setCart","useAppSettingsData","pageCacheTime","languageRoute","requestToken","channelId","useCurrentPage","isLoading","setIsLoading","JSON","stringify","channelSystemId","fectchedCart","useSWR","url","abort","signal","Fetcher","data","resolve","FetchCart","initialData","undefined","revalidateOnFocus","IS_PRODUCTION_ENV","dedupingInterval","useEffect","RemoveFromCart","productCode","a","fetch","method","headers","RequestVerificationToken","res","ok","json","notification","EventDispatcher","dispatch","NOTIFY_ACTION","mutate","UpdateCart","quantity","bookingNumber","updateQuantity","SetQuantity","EmptyCart","Button","button","backgroundColor","theme","primaryBlue","font","size","alpha","weight","fontWeight","bold","display","justifyContent","borderRadius","padding","y","spacing","x","media","mediaQuery","mediaMinLarge","primaryDarkBlue","cursor","headerIconGray","Link","KexLink","pseudo","ButtonText","span","color","white","textTransform","letterSpacing","LinkText","CtaButton","onClick","asLink","href","children","disabled","data-disabled","id","mask-type","maskUnits","mask","G","Path","isOpen","TopPathOut","opacity","TopPathIn","transform","CenterPathOut","CenterPathIn","BottomPathOut","BottomPathIn","CrossG","animationCrossIn","animationCrossOut","animationDuration","timings","threeTenths","animationMenuPathsIn","animationName","from","to","animationFillMode","animationMenuPathsOut","animationDelay","twoFifths","oneHalf","threeFifths","oneFifth","oneTenth","path","g","transformOrigin","StyledSvg","Circle","LoadingStyles","cx","cy","r","oneAndAHalf","animationTimingFunction","animationIterationCount","stroke","strokeWidth","small","strokeDashoffset","strokeDasharray","svg","xy","tiny","overflow","fill-rule"],"mappings":"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","file":"Dist/build-client/static/js/0.3565250f.chunk.js","sourcesContent":["import React from 'react';\r\nimport { styled } from '../../Theme';\r\nimport { StyledProps } from '@glitz/react';\r\n\r\nfunction PlusToggleIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(PlusToggleIcon);\r\n","import React from 'react';\r\nimport { styled } from '../../Theme';\r\nimport { StyledProps } from '@glitz/react';\r\n\r\nfunction MinusToggleIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(MinusToggleIcon);\r\n","import { useEffect, useState } from 'react';\r\nimport useSWR, { mutate } from 'swr';\r\nimport IKexCart from './Models/KexCart.interface';\r\nimport Fetcher from '../Shared/Common/Fetcher';\r\nimport { IS_PRODUCTION_ENV } from '../Shared/Configs/EnvConfig';\r\nimport { useAppSettingsData } from '../Shared/AppSettingsProvider/AppSettingsProvider';\r\nimport {\r\n EventDispatcher,\r\n NOTIFY_ACTION,\r\n} from '../Shared/Common/EventDispatcher';\r\nimport useCurrentPage from '../Shared/Hooks/useCurrentPage';\r\n\r\nlet abortController: AbortController = new AbortController();\r\nlet hasMounted = false;\r\nlet cartUrl = '';\r\nlet litiumContext = '';\r\nlet requestVerificationToken = '';\r\n\r\ntype CartReturnType = {\r\n cart: IKexCart;\r\n isLoading: boolean;\r\n};\r\n\r\nexport function GetCart(): CartReturnType {\r\n const tempCartObject: IKexCart = {} as IKexCart;\r\n\r\n const [cart, setCart] = useState(tempCartObject);\r\n const { pageCacheTime, languageRoute, requestToken } = useAppSettingsData();\r\n const { channelId } = useCurrentPage();\r\n const [isLoading, setIsLoading] = useState(true);\r\n cartUrl = `/api/${languageRoute}/PicturaCart/`;\r\n\r\n litiumContext = JSON.stringify({\r\n channelSystemId: channelId,\r\n });\r\n\r\n requestVerificationToken = requestToken;\r\n\r\n const { data: fectchedCart } = useSWR(\r\n `${cartUrl}GetCart`,\r\n () => FetchCart(`${cartUrl}GetCart`, litiumContext),\r\n {\r\n initialData: undefined,\r\n revalidateOnFocus: IS_PRODUCTION_ENV,\r\n dedupingInterval: pageCacheTime,\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (!hasMounted) {\r\n hasMounted = true;\r\n } else {\r\n if (fectchedCart) {\r\n setCart(fectchedCart);\r\n setIsLoading(false);\r\n }\r\n }\r\n }, [fectchedCart]);\r\n\r\n return { cart, isLoading };\r\n}\r\n\r\nexport async function RemoveFromCart(\r\n productCode: string,\r\n languageRoute: string\r\n) {\r\n cartUrl = `/api/${languageRoute}/PicturaCart/`;\r\n const res = await fetch(`${cartUrl}RemoveItem?code=${productCode}`, {\r\n method: 'POST',\r\n headers: {\r\n 'litium-request-context': litiumContext,\r\n RequestVerificationToken: requestVerificationToken,\r\n },\r\n });\r\n if (res.ok) {\r\n const { cart, notification } = await res.json();\r\n EventDispatcher.dispatch(NOTIFY_ACTION, notification);\r\n mutate(`${cartUrl}GetCart`, cart, false);\r\n }\r\n}\r\n\r\nexport async function UpdateCart(\r\n productCode: string,\r\n quantity: number,\r\n languageRoute: string,\r\n bookingNumber?: string,\r\n setIsLoading?: (value: boolean) => void\r\n) {\r\n setIsLoading && setIsLoading(true);\r\n cartUrl = `/api/${languageRoute}/PicturaCart/`;\r\n const updateQuantity = quantity;\r\n const res = await fetch(\r\n `${cartUrl}Update?code=${productCode}&bookingNumber=${bookingNumber}&quantity=${updateQuantity}`,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'litium-request-context': litiumContext,\r\n RequestVerificationToken: requestVerificationToken,\r\n },\r\n }\r\n );\r\n if (res.ok) {\r\n const { cart, notification } = await res.json();\r\n EventDispatcher.dispatch(NOTIFY_ACTION, notification);\r\n mutate(`${cartUrl}GetCart`, cart, false);\r\n setIsLoading && setIsLoading(false);\r\n return true;\r\n }\r\n setIsLoading && setIsLoading(false);\r\n return false;\r\n}\r\n\r\nexport async function SetQuantity(\r\n productCode: string,\r\n bookingNumber: string,\r\n quantity: number,\r\n languageRoute: string,\r\n setIsLoading?: (value: boolean) => void\r\n) {\r\n setIsLoading && setIsLoading(true);\r\n const updateQuantity = quantity;\r\n cartUrl = `/api/${languageRoute}/PicturaCart/`;\r\n const res = await fetch(\r\n `${cartUrl}SetQuantity?code=${productCode}&bookingNumber=${bookingNumber}&quantity=${updateQuantity}`,\r\n {\r\n method: 'POST',\r\n headers: {\r\n 'litium-request-context': litiumContext,\r\n RequestVerificationToken: requestVerificationToken,\r\n },\r\n }\r\n );\r\n if (res.ok) {\r\n const { cart, notification } = await res.json();\r\n EventDispatcher.dispatch(NOTIFY_ACTION, notification);\r\n mutate(`${cartUrl}GetCart`, cart, false);\r\n setIsLoading && setIsLoading(false);\r\n }\r\n}\r\n\r\nexport async function EmptyCart(languageRoute: string) {\r\n cartUrl = `/api/${languageRoute}/PicturaCart/`;\r\n const res = await fetch(`${cartUrl}RemoveAllItems`, {\r\n method: 'POST',\r\n headers: {\r\n 'litium-request-context': litiumContext,\r\n RequestVerificationToken: requestVerificationToken,\r\n },\r\n });\r\n if (res.ok) {\r\n const { cart, notification } = await res.json();\r\n EventDispatcher.dispatch(NOTIFY_ACTION, notification);\r\n mutate(`${cartUrl}GetCart`, cart, false);\r\n return true;\r\n }\r\n}\r\n\r\nfunction FetchCart(url: string, litiumContext: string) {\r\n abortController.abort();\r\n abortController = new AbortController();\r\n const signal = abortController.signal;\r\n\r\n return Fetcher(\r\n url,\r\n signal,\r\n (data, resolve) => {\r\n if (data.cart) {\r\n resolve(data.cart);\r\n }\r\n\r\n resolve(data);\r\n },\r\n litiumContext\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport { theme, styled } from '../../Theme';\r\n\r\nimport { media, pseudo } from '@glitz/core';\r\nimport { mediaQuery } from '../../Theme/mediaQueries';\r\nimport { StyledProps } from '@glitz/react';\r\n\r\nimport KexLink from '../KexLink/KexLink';\r\n\r\ntype PropTypes = StyledProps & {\r\n onClick?: () => void;\r\n asLink?: boolean;\r\n href?: string;\r\n children?: any;\r\n disabled?: boolean;\r\n};\r\n\r\nfunction CtaButton({\r\n compose,\r\n onClick,\r\n asLink,\r\n href,\r\n children,\r\n disabled,\r\n}: PropTypes) {\r\n return asLink ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n );\r\n}\r\n\r\nconst Button = styled.button({\r\n backgroundColor: theme.primaryBlue,\r\n font: { size: theme.alpha, weight: theme.fontWeight.bold },\r\n display: 'flex',\r\n justifyContent: 'center',\r\n borderRadius: '50px',\r\n padding: { y: theme.spacing(4), x: theme.spacing(6) },\r\n ...media(mediaQuery.mediaMinLarge, {\r\n ':hover': { backgroundColor: theme.primaryDarkBlue },\r\n }),\r\n ':disabled': {\r\n cursor: 'not-allowed',\r\n backgroundColor: theme.headerIconGray,\r\n ':hover': { backgroundColor: theme.headerIconGray },\r\n },\r\n});\r\n\r\nconst Link = styled(KexLink, {\r\n backgroundColor: theme.primaryBlue,\r\n font: { size: theme.alpha, weight: theme.fontWeight.bold },\r\n display: 'flex',\r\n justifyContent: 'center',\r\n borderRadius: '50px',\r\n padding: { y: theme.spacing(4), x: theme.spacing(6) },\r\n ...media(mediaQuery.mediaMinLarge, {\r\n ':hover': { backgroundColor: theme.primaryDarkBlue },\r\n }),\r\n ...pseudo([':nth-child(n)[data-disabled=\"true\"]'], {\r\n cursor: 'not-allowed',\r\n backgroundColor: theme.headerIconGray,\r\n ':hover': { backgroundColor: theme.headerIconGray },\r\n }),\r\n});\r\n\r\nconst ButtonText = styled.span({\r\n color: theme.white,\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.05em',\r\n});\r\n\r\nconst LinkText = styled.span({\r\n padding: { x: theme.spacing(2) },\r\n color: theme.white,\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.05em',\r\n});\r\n\r\nexport default CtaButton;\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction HeartIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(HeartIcon);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction ArrowRightIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(ArrowRightIcon);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction AccountIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(AccountIcon);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\ntype SearchIconType = StyledProps & {\r\n onClick?: () => void;\r\n};\r\n\r\nfunction SearchIcon({ compose, onClick }: SearchIconType) {\r\n return (\r\n onClick && onClick()}\r\n >\r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(SearchIcon);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction CartIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(CartIcon);\r\n","import React from 'react';\r\nimport { StyledProps } from '@glitz/react';\r\nimport { styled, theme } from '../../Theme';\r\nimport { Style } from '@glitz/type';\r\n\r\ntype PropType = StyledProps & {\r\n isOpen?: boolean;\r\n};\r\n\r\nfunction MenuIcon({ compose, isOpen }: PropType) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(MenuIcon);\r\n\r\nconst animationDuration = theme.timings.threeTenths;\r\n\r\nconst animationMenuPathsIn = {\r\n animationName: {\r\n from: {\r\n opacity: 0,\r\n },\r\n to: {\r\n opacity: 1,\r\n },\r\n },\r\n animationFillMode: 'forwards',\r\n animationDuration,\r\n} as Style;\r\n\r\nconst animationMenuPathsOut = {\r\n animationName: {\r\n from: {\r\n opacity: 1,\r\n },\r\n to: {\r\n opacity: 0,\r\n },\r\n },\r\n animationFillMode: 'forwards',\r\n animationDuration,\r\n} as Style;\r\n\r\nconst TopPathIn = {\r\n ...animationMenuPathsIn,\r\n animationDelay: theme.timings.twoFifths,\r\n};\r\nconst CenterPathIn = {\r\n ...animationMenuPathsIn,\r\n animationDelay: theme.timings.oneHalf,\r\n};\r\nconst BottomPathIn = {\r\n ...animationMenuPathsIn,\r\n animationDelay: theme.timings.threeFifths,\r\n};\r\n\r\nconst TopPathOut = {\r\n ...animationMenuPathsOut,\r\n animationDelay: theme.timings.oneFifth,\r\n};\r\nconst CenterPathOut = {\r\n ...animationMenuPathsOut,\r\n animationDelay: theme.timings.oneTenth,\r\n};\r\nconst BottomPathOut = {\r\n ...animationMenuPathsOut,\r\n};\r\n\r\nconst Path = styled.path({});\r\n\r\nconst animationCrossIn = {\r\n animationName: {\r\n '0%': {\r\n transform: 'scale(0)',\r\n },\r\n '90%': {\r\n transform: 'scale(1.1)',\r\n },\r\n '100%': {\r\n transform: 'scale(1)',\r\n },\r\n },\r\n animationDuration,\r\n animationFillMode: 'forwards',\r\n animationDelay: theme.timings.threeTenths,\r\n} as Style;\r\n\r\nconst animationCrossOut = {\r\n animationName: {\r\n '0%': {\r\n transform: 'scale(1)',\r\n },\r\n '10%': {\r\n transform: 'scale(1.1)',\r\n },\r\n '100%': {\r\n transform: 'scale(0)',\r\n },\r\n },\r\n animationFillMode: 'forwards',\r\n animationDuration,\r\n} as Style;\r\n\r\nconst CrossG = styled.g({\r\n transformOrigin: 'center',\r\n});\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction GlobeIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(GlobeIcon);\r\n","import React from 'react';\r\nimport { styled } from '../../Theme';\r\nimport { StyledProps } from '@glitz/react';\r\n\r\nfunction Logo({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(Logo);\r\n","import React from 'react';\r\nimport { styled } from '../../Theme';\r\nimport { StyledProps } from '@glitz/react';\r\n\r\nfunction LogoWhite({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(LogoWhite);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction ProfileIconFilled({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(ProfileIconFilled);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\nimport { StyleOrStyleArray } from '@glitz/type';\r\nimport { theme } from '../../Theme';\r\n\r\ntype LoadingCircleType = StyledProps & {\r\n width?: string;\r\n isLoading?: boolean;\r\n};\r\n\r\nfunction LoadingCircle({ isLoading, compose }: LoadingCircleType) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(LoadingCircle);\r\n\r\nconst LoadingStyles: StyleOrStyleArray = {\r\n transform: 'rotate(-90deg)',\r\n transformOrigin: '50%',\r\n animationDuration: theme.timings.oneAndAHalf,\r\n animationTimingFunction: 'cubic-bezier(0.47, 0.01, 0.51, 1)',\r\n animationIterationCount: 'infinite',\r\n stroke: theme.white,\r\n strokeWidth: theme.small,\r\n strokeDashoffset: 'calc(-3.14 * 2 * 100%)',\r\n strokeDasharray: 'calc(3.14 * 2 * 100%)',\r\n fill: 'none',\r\n animationName: {\r\n '0%': {\r\n strokeDashoffset: 'calc(3.14 * 2 * 100%)',\r\n },\r\n '50%': {\r\n strokeDashoffset: '0%',\r\n },\r\n '100%': {\r\n strokeDashoffset: '-calc(3.14 * 2 * 100%)',\r\n },\r\n },\r\n};\r\n\r\nconst StyledSvg = styled.svg({\r\n padding: {\r\n xy: theme.tiny,\r\n },\r\n overflow: 'visible',\r\n});\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction ExclamationMarkIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(ExclamationMarkIcon);\r\n","import AccountIcon from './AccountIcon';\r\nimport SearchIcon from './SearchIcon';\r\nimport HeartIcon from './HeartIcon';\r\nimport CartIcon from './CartIcon';\r\nimport ContactIcon from './ContactIcon';\r\nimport MenuIcon from './MenuIcon';\r\nimport GlobeIcon from './GlobeIcon';\r\nimport ArrowRightIcon from './ArrowRightIcon';\r\nimport CloseIcon from './CloseIcon';\r\nimport Logo from './Logo';\r\nimport LogoWhite from './LogoWhite';\r\nimport ProfileIcon from './ProfileIcon';\r\nimport ProfileIconFilled from './ProfileIconFilled';\r\nimport LoadingCircle from './LoadingCircle';\r\nimport ErrorIcon from './ExclamationMarkIcon';\r\n\r\nexport {\r\n AccountIcon,\r\n SearchIcon,\r\n HeartIcon,\r\n CartIcon,\r\n ContactIcon,\r\n MenuIcon,\r\n GlobeIcon,\r\n ArrowRightIcon,\r\n CloseIcon,\r\n Logo,\r\n LogoWhite,\r\n ProfileIcon,\r\n ProfileIconFilled,\r\n LoadingCircle,\r\n ErrorIcon,\r\n};\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction ContactIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(ContactIcon);\r\n","import React from 'react';\r\nimport { styled, StyledProps } from '@glitz/react';\r\n\r\nfunction ProfileIcon({ compose }: StyledProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default styled(ProfileIcon);\r\n"],"sourceRoot":""}