{"version":3,"file":"AvailableSets.e6a7bcae8530ef297106.chunk.js","mappings":"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","sources":["webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/AvailableSetsList.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/AvailableSets.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AvailableSets/getProductImage.graphql"],"sourcesContent":["import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n discoverGiftSets: {\n id: 'pd.availableSets.discoverGiftSets',\n defaultMessage: 'Objevte dárkové sady s tímto produktem.',\n },\n discoverTravelSets: {\n id: 'pd.availableSets.discoverTravelSets',\n defaultMessage: 'Objevte cestovní sady s tímto produktem.',\n },\n discoverEconomySets: {\n id: 'pd.availableSets.discoverEconomySets',\n defaultMessage: 'Objevte výhodná balení s tímto produktem.',\n },\n discoverGiftSetsAndTravelSets: {\n id: 'pd.availableSets.discoverGiftSetsAndTravelSets',\n defaultMessage: 'Objevte dárkové a cestovní sady s tímto produktem.',\n },\n discoverGiftSetsAndEconomySets: {\n id: 'pd.availableSets.discoverGiftSetsAndEconomySets',\n defaultMessage: 'Objevte dárkové sady a výhodná balení s tímto produktem.',\n },\n discoverTravelSetsAndEconomySets: {\n id: 'pd.availableSets.discoverTravelSetsAndEconomySets',\n defaultMessage: 'Objevte cestovní sady a výhodná balení s tímto produktem.',\n },\n discoverSets: {\n id: 'pd.availableSets.discoverSets',\n defaultMessage: 'Objevte sety s tímto produktem. ',\n },\n setsWithThisProduct: {\n id: 'pd.availableSets.setsWithThisProduct',\n defaultMessage: 'Sady s tímto produktem',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport {\n IconRegularChevronRight,\n ProductSliderPlaceholder,\n breakpoints,\n theme,\n} from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\n\nexport const Chevron = styled(IconRegularChevronRight)`\n color: ${theme.color.icon.tertiary};\n height: 1.25rem;\n width: 1.25rem;\n`;\n\nexport const Wrapper = styled.div`\n padding: 0.75rem;\n background: ${theme.color.background.secondary};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n\n &:hover {\n background: ${theme.color.background.secondaryHover};\n }\n`;\n\nexport const DiscoverSetsText = styled.div`\n color: ${theme.color.text.secondary};\n flex: 1;\n ${theme.typography.labelRegular400}\n`;\n\nexport const StyledCdnImage = styled(CdnImage)`\n height: 3rem;\n width: 3rem;\n object-fit: contain;\n mix-blend-mode: multiply;\n`;\n\nexport const ImagePlaceholder = styled.div`\n height: 3rem;\n width: 3rem;\n`;\n\nexport const Title = styled.div`\n ${theme.typography.labelLarge}\n text-align: center;\n @media (min-width: ${breakpoints.md}) {\n ${theme.typography.titleLarge}\n }\n`;\n\nexport const SliderWrapper = styled.div<{ centerSlider: boolean }>`\n margin: 1.25rem 0 0.25rem;\n\n [data-testid='phone-slider'] {\n padding: 0 1.25rem 2rem;\n\n ${({ centerSlider }) =>\n centerSlider &&\n css`\n justify-content: center;\n `}\n }\n\n @media (min-width: ${breakpoints.md}) {\n margin: 2.25rem 0 2rem;\n\n ${({ centerSlider }) =>\n centerSlider &&\n css`\n [data-testid='desktop-slider'] > div {\n justify-content: center;\n }\n `}\n }\n`;\n\nexport const StyledLoadingPlaceholder = styled(ProductSliderPlaceholder)<{\n center: boolean;\n}>`\n margin: 1.25rem 0 2.25rem;\n\n @media (min-width: ${breakpoints.md}) {\n margin: 2.25rem 0 2rem;\n }\n\n ${({ center }) =>\n center &&\n css`\n justify-content: center;\n `}\n`;\n","import { GetProductsByIdBatchedQuery } from 'packages/shared/definitions/types';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nexport const GTM_LIST_LABEL = 'gift_sets';\n\ninterface TrackElementClickArgs {\n timing: number;\n name: string;\n type: string;\n action: string;\n interaction?: string;\n}\n\nexport const trackElementClick = ({\n action,\n name,\n timing,\n type,\n interaction = 'click',\n}: TrackElementClickArgs) => {\n dispatchTrackingEvent({\n event: 'element_click',\n _clear: true,\n element: {\n timing,\n interaction,\n name,\n type,\n action,\n },\n });\n};\n\nexport const trackAvailableSets = (\n products: GetProductsByIdBatchedQuery['vpProductByIds'],\n productIds: string[],\n interaction: 'scroll' | 'click'\n) => {\n const transformedProducts = products.map((product) =>\n ProductEventWither()\n .withVpProduct(product)\n .withAdditionalData({\n list_position: productIds.findIndex((id) => id === product.id) + 1,\n })\n .build()\n );\n\n dispatchTrackingEvent({\n event: 'view_item_list',\n _clear: true,\n product_lists: {\n list_name: GTM_LIST_LABEL,\n interaction,\n sorting_type: 'automatic',\n products: transformedProducts,\n },\n });\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useBreakpointValue } from '@notino/react-styleguide';\nimport { GetCatalogProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { ProductSlider } from '@components/ProductSlider';\nimport { useGetProductItemProps } from '@components/Universals/ProductItem/useGetProductItemProps';\nimport {\n useTrackToCartAsync,\n useTrackToCartFailedAsync,\n} from '@containers/WishList/components/WishlistPager/tracking';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useProductsByIdsBatched } from '../../ProductsSection/useProductsByIdsBatched';\n\nimport { messages } from './messages';\nimport { SliderWrapper, StyledLoadingPlaceholder, Title } from './styled';\nimport {\n GTM_LIST_LABEL,\n trackAvailableSets,\n trackElementClick,\n} from './tracking';\n\nconst ITEMS_PER_SLIDE = 3;\n\ntype Props = {\n sets: GetCatalogProductViewQuery['productDetailByCatalogMasterId']['features']['availableSets']['sets'];\n};\n\nexport const AvailableSetsList = ({ sets }: Props) => {\n const isDesktop = useBreakpointValue({ md: true });\n const { getTimeFromInit } = useTrackingContext();\n const isAlreadyTracked = React.useRef(false);\n const mobileSliderRef = React.useRef();\n\n const webIds = sets.map((set) => `${set.webId}`);\n\n const { data, loading } = useProductsByIdsBatched(webIds);\n\n const trackAddToCartFailedAsync = useTrackToCartFailedAsync(\n webIds,\n GTM_LIST_LABEL\n );\n const trackAddToCardAsync = useTrackToCartAsync(webIds, GTM_LIST_LABEL);\n\n const getProductItemProps = useGetProductItemProps({\n noPriceIfUnavailable: true,\n useMasterUrl: true,\n inSectionOfType: 'slider',\n wishlistActionLocation: 'list',\n onProductAddFailed: trackAddToCartFailedAsync,\n showBuyButton: true,\n showAddToCartModal: false,\n GTMEventLabel: GTM_LIST_LABEL,\n sendGTM: true,\n onProductAdded: trackAddToCardAsync,\n });\n\n React.useEffect(() => {\n if (!data || isAlreadyTracked.current) {\n return;\n }\n\n trackAvailableSets(\n data.vpProductByIds,\n webIds,\n isDesktop ? 'click' : 'scroll'\n );\n isAlreadyTracked.current = true;\n }, [data, isDesktop, isAlreadyTracked, webIds]);\n\n const placeholderCount = Math.min(sets.length, ITEMS_PER_SLIDE);\n const centerPlaceholder = placeholderCount < ITEMS_PER_SLIDE;\n\n const products =\n data?.vpProductByIds\n .map((product, index) =>\n getProductItemProps({\n product,\n position: index + 1,\n })\n )\n .filter(Boolean) ?? [];\n\n const onNewItemShow = React.useCallback(() => {\n if (isDesktop) {\n return;\n }\n\n if (mobileSliderRef?.current?.scrollLeft === 0) {\n return;\n }\n\n trackElementClick({\n timing: getTimeFromInit(),\n interaction: 'swipe',\n name: 'gift_sets_slide',\n type: 'gift_sets',\n action: 'gift_sets_slide',\n });\n }, [getTimeFromInit, isDesktop]);\n\n const onSlideChange = () => {\n trackElementClick({\n timing: getTimeFromInit(),\n interaction: 'click',\n name: 'gift_sets_slide',\n type: 'gift_sets',\n action: 'gift_sets_slide',\n });\n };\n\n return (\n
\n {isDesktop && (\n \n <FormattedMessage {...messages.setsWithThisProduct} />\n \n )}\n\n {!data || loading ? (\n \n ) : (\n \n \n }\n />\n \n )}\n
\n );\n};\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n ModalContext,\n ModalModel,\n useBreakpointValue,\n} from '@notino/react-styleguide';\nimport {\n GetProductImageQuery,\n GetProductImageQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useDrawer } from '@components/BottomSheet/DrawerProvider';\nimport { trackDrawerClose } from '@components/BottomSheet/tracking';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useProductDetailContext } from '../../ProductDetailContext';\n\nimport { AvailableSetsList } from './AvailableSetsList';\nimport getProductImageQuery from './getProductImage.graphql';\nimport { messages } from './messages';\nimport {\n ImagePlaceholder,\n StyledCdnImage,\n Wrapper,\n Chevron,\n DiscoverSetsText,\n} from './styled';\nimport { trackElementClick } from './tracking';\nimport { getDiscoverSetsMessage } from './utils';\n\nconst AvailableSets = () => {\n const { inView, ref } = useInView({ triggerOnce: true });\n const isDesktop = useBreakpointValue({ md: true });\n const { toggleModal, hideModal } = ModalContext.useModalContext();\n const { toggleDrawer } = useDrawer();\n const { getTimeFromInit } = useTrackingContext();\n const { formatMessage } = useIntl();\n const {\n product: {\n features: { availableSets },\n },\n } = useProductDetailContext();\n\n const sets = availableSets?.sets ?? [];\n\n const { data, loading } = useQuery<\n GetProductImageQuery,\n GetProductImageQueryVariables\n >(getProductImageQuery, {\n skip: sets.length === 0,\n variables: { webId: String(sets[0]?.webId) },\n ssr: false,\n });\n\n if (sets.length === 0) {\n return null;\n }\n\n const openAvailableSets = () => {\n trackElementClick({\n timing: getTimeFromInit(),\n action: 'gif_sets_open',\n type: 'gift_sets',\n name: 'gift_sets_open',\n interaction: 'click',\n });\n\n if (isDesktop) {\n toggleModal(, {\n size: ModalModel.Sizes.large,\n onClose: () => {\n trackElementClick({\n timing: getTimeFromInit(),\n name: 'gift_sets_close',\n type: 'gift_sets',\n action: 'gift_sets_close',\n });\n hideModal();\n },\n });\n return;\n }\n toggleDrawer(, {\n onDismiss: (closeType) =>\n trackDrawerClose({\n closeType,\n timing: getTimeFromInit(),\n name: 'gift_sets_close',\n type: 'gift_sets',\n action: 'gift_sets_close',\n }),\n header: formatMessage(messages.setsWithThisProduct),\n ...(sets.length >= 3 && { ignoreBodySwipe: true }),\n });\n };\n\n const imageUrl = inView && !loading && data?.vpProductById?.imageUrl;\n\n return (\n \n {imageUrl ? (\n \n ) : (\n \n )}\n\n \n (\n {sets.length})\n \n\n \n \n );\n};\n\nexport default AvailableSets;\n","import {\n GetCatalogProductViewQuery,\n ProductAvailableSetType,\n} from '@notino/shared/definitions/types';\n\nimport { messages } from './messages';\n\nexport const getDiscoverSetsMessage = (\n sets: GetCatalogProductViewQuery['productDetailByCatalogMasterId']['features']['availableSets']['sets']\n) => {\n let containsUnknown = false;\n let containsGiftSet = false;\n let containsTravelSet = false;\n let containsEconomySet = false;\n\n sets.forEach((set) => {\n if (set.type === ProductAvailableSetType.Unknown) {\n containsUnknown = true;\n }\n if (set.type === ProductAvailableSetType.GiftSet) {\n containsGiftSet = true;\n }\n if (set.type === ProductAvailableSetType.TravelSet) {\n containsTravelSet = true;\n }\n if (set.type === ProductAvailableSetType.EconomyPack) {\n containsEconomySet = true;\n }\n });\n\n if (containsUnknown) {\n return messages.discoverSets;\n }\n if (containsGiftSet && containsTravelSet && containsEconomySet) {\n return messages.discoverSets;\n }\n\n if (containsGiftSet && containsEconomySet) {\n return messages.discoverGiftSetsAndEconomySets;\n }\n if (containsTravelSet && containsEconomySet) {\n return messages.discoverTravelSetsAndEconomySets;\n }\n if (containsGiftSet && containsTravelSet) {\n return messages.discoverGiftSetsAndTravelSets;\n }\n\n if (containsGiftSet) {\n return messages.discoverGiftSets;\n }\n if (containsEconomySet) {\n return messages.discoverEconomySets;\n }\n if (containsTravelSet) {\n return messages.discoverTravelSets;\n }\n\n return messages.discoverSets;\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getProductImage\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"webId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"vpProductById\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"webId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imageUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":97}};\n doc.loc.source = {\"body\":\"query getProductImage($webId: String!) {\\n vpProductById(id: $webId) {\\n id\\n imageUrl\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getProductImage\"] = oneQuery(doc, \"getProductImage\");\n \n\ndoc.documentId = \"b46885dafedf866bfd0975fa8bc4b5aaedd23033862526a2e45cb4831626746e\""],"names":["messages","defineMessages","discoverGiftSets","id","discoverTravelSets","discoverEconomySets","discoverGiftSetsAndTravelSets","discoverGiftSetsAndEconomySets","discoverTravelSetsAndEconomySets","discoverSets","setsWithThisProduct","Chevron","styled","IconRegularChevronRight","withConfig","componentId","theme","Wrapper","DiscoverSetsText","StyledCdnImage","CdnImage","ImagePlaceholder","Title","breakpoints","SliderWrapper","_ref","centerSlider","css","_ref2","StyledLoadingPlaceholder","ProductSliderPlaceholder","_ref3","center","GTM_LIST_LABEL","trackElementClick","action","name","timing","type","_ref$interaction","interaction","dispatchTrackingEvent","event","_clear","element","AvailableSetsList","_data$vpProductByIds$","sets","isDesktop","useBreakpointValue","md","getTimeFromInit","useTrackingContext","isAlreadyTracked","React","mobileSliderRef","webIds","map","set","webId","_useProductsByIdsBatc","useProductsByIdsBatched","data","loading","trackAddToCartFailedAsync","useTrackToCartFailedAsync","trackAddToCardAsync","useTrackToCartAsync","getProductItemProps","useGetProductItemProps","noPriceIfUnavailable","useMasterUrl","inSectionOfType","wishlistActionLocation","onProductAddFailed","showBuyButton","showAddToCartModal","GTMEventLabel","sendGTM","onProductAdded","current","products","productIds","transformedProducts","product","ProductEventWither","withVpProduct","withAdditionalData","list_position","findIndex","build","product_lists","list_name","sorting_type","trackAvailableSets","vpProductByIds","placeholderCount","Math","min","length","centerPlaceholder","index","position","filter","Boolean","onNewItemShow","_mobileSliderRef$curr","scrollLeft","FormattedMessage","rows","ProductSlider","mobileScrollContainerRef","itemsPerSlide","onItemShow","inViewThreshold","onSlideChange","fallback","_availableSets$sets","_sets$","_data$vpProductById","_useInView","useInView","triggerOnce","inView","ref","_ModalContext$useModa","ModalContext","toggleModal","hideModal","toggleDrawer","useDrawer","formatMessage","useIntl","availableSets","useProductDetailContext","features","_useQuery","useQuery","getProductImageQuery","skip","variables","String","ssr","imageUrl","vpProductById","onClick","size","ModalModel","onClose","_extends","onDismiss","closeType","trackDrawerClose","header","ignoreBodySwipe","src","sourceKey","containsUnknown","containsGiftSet","containsTravelSet","containsEconomySet","forEach","ProductAvailableSetType","getDiscoverSetsMessage","doc","collectFragmentReferences","node","refs","kind","add","value","selectionSet","selections","selection","variableDefinitions","def","definitions","loc","source","definitionRefs","findOperation","i","Set","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","oneQuery","documentId"],"sourceRoot":""}