(ReviewItemsProvider)(ReviewsComponent);\n","import styled from 'styled-components';\n\nexport const ReviewsPageWrapper = styled.div`\n margin-bottom: 5rem;\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Grid, ModalContext } from '@notino/react-styleguide';\nimport { getImageAttributes } from '@notino/react-web-utils';\n\nimport { ContentWrapper } from '@components';\nimport { DrawerProvider } from '@components/BottomSheet/DrawerProvider';\nimport { Divider } from '@components/Divider';\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { PageGone } from '@components/NotFound';\nimport { ProductQueryParams } from '@containers/ProductDetailContainer';\nimport { useGetProductView } from '@containers/ProductDetailContainer/hooks/useGetProductView';\nimport { useSettings } from '@containers/ProductDetailContainer/hooks/useSettings';\nimport { Breadcrumb } from '@containers/ProductDetailContainer/ProductDetail/Breadcrumb';\nimport { useShouldShowReviewPage } from '@containers/ProductDetailContainer/ProductDetail/hooks/useShouldShowReviewPage';\nimport { getProductFullName } from '@containers/ProductDetailContainer/ProductDetail/ProductTabContent/utils';\nimport {\n ProductDetailContextProvider,\n useProductDetailContext,\n} from '@containers/ProductDetailContainer/ProductDetailContext';\nimport { ProductStateHandler } from '@containers/ProductDetailContainer/ProductStateHandler';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { DESCRIPTION_MIN_LENGTH } from './constants';\nimport { Header } from './Header';\nimport { HeadMetaReviewsPage } from './HeadMeta/HeadMetaReviewsPage';\nimport { headMetaMessages } from './HeadMeta/messages';\nimport { Reviews } from './Reviews';\nimport { ReviewsPageWrapper } from './styled';\nimport { getProductName } from './utils';\n\nconst ReviewsPage = () => {\n const { product, currentVariant, currentCurrency } =\n useProductDetailContext();\n const { Settings: { imageDomainPath } = {} } = useSettings();\n const { formatMessage } = useIntl();\n\n const shouldShowReviewPage = useShouldShowReviewPage(\n product.reviewOverview?.textReviewsCount,\n product.reviewOverview?.rating\n );\n\n React.useEffect(() => {\n dispatchTrackingEvent({\n event: 'page_view',\n page: {\n path: window.location.pathname,\n title: formatMessage(headMetaMessages.seoTitle, {\n productName: getProductName(currentVariant, product),\n }),\n type: 'review',\n unified_name: `product-${currentVariant.productCode}`,\n subpage: undefined,\n },\n _clear: true,\n });\n }, [formatMessage, product, currentVariant]);\n\n const productName = getProductName(currentVariant, product);\n const productFullName = getProductFullName(product);\n\n const annotation =\n currentVariant.attributes && currentVariant.attributes.Master\n ? product.annotation\n : currentVariant.variantName;\n\n const imageAttrs = getImageAttributes(\n currentVariant.media.mainImage,\n imageDomainPath,\n 'detailMain'\n );\n\n const breadcrumbs = [\n ...product.breadcrumb,\n {\n name: product.brand.name,\n link: product.brand.url,\n },\n {\n name: getProductName(currentVariant, product),\n link: product.url,\n },\n ];\n\n const description = product.description.split(/(.*?)<\\/p>/g)?.[1] || '';\n\n const simpleDescription =\n description.length > DESCRIPTION_MIN_LENGTH ? description : null;\n\n if (!shouldShowReviewPage) {\n return ;\n }\n\n return (\n \n \n \n \n\n \n \n \n \n\n \n\n \n\n \n \n \n \n \n );\n};\n\nconst WrappedReviewsPage: React.FC = ({\n catalogId,\n productId,\n ssrEnabled,\n}) => {\n const { data, error, loading } = useGetProductView({\n catalogId,\n productId,\n ssrEnabled,\n });\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default WrappedReviewsPage;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"SeoMetaData\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"keywords\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":55}};\n doc.loc.source = {\"body\":\"query SeoMetaData {\\n description\\n keywords\\n title\\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[\"SeoMetaData\"] = oneQuery(doc, \"SeoMetaData\");\n \n\ndoc.documentId = \"d94576b3b77ef000c2b943c893c240125bc80d89612901e7454edfa2cc7b17fe\""],"names":["messages","defineMessages","deliveryPiece","id","deliveryPrice","brands0Categories0","brands1Categories0","brands2Categories0","brands3Categories0","brandsNCategories0","brands0Categories1","brands0Categories2","brands0Categories3","brands0CategoriesN","brands1Categories1","brands1Categories2","brands2Categories1","brands2Categories2","brandsNCategoriesN","selectedProducts","tooltipInfo","Link","styled","ConditionsRow","ConditionTooltipContent","ConditionsTooltip","_ref","children","targets","content","map","target","idx","React","key","url","href","name","length","PortalTooltip","interactive","shouldWrapText","transformToMessageValues","reduce","acc","type","toLowerCase","Condition","formatMessage","useIntl","brands","categories","partition","formattedMessage","these","parts","messageId","brandsCount","others","slice","categoriesCount","Text","typography","block","marginTop","Wrapper","leftPadding","LabelRow","PriceWrapper","_ref2","isSpaced","isPrefix","css","WrapperComponent","LineSeparator","Line","DualPriceWrapper","PriceSplitter","ConditionalTooltipContent","conditionalFreeDelivery","value","isDualPriceForCroatia","getLeftSideFormattedPrice","getRightSideFormattedPrice","leftSideCurrency","rightSideCurrency","useIsDualPriceForCroatia","DiscountWrapper","IconRegularDelivery","color","width","height","price","PriceLabel","currencyComponent","wrapperComponent","position","TooltipModel","FormattedMessage","IconSolidInfo","MainImgWrapper","componentId","breakpoints","ImageWrapper","MainImgComponent","MainImage","imageAttrs","_extends","loading","reviewsPageBuy","reviewsPageTitle","TopSection","withConfig","DescriptionWrapper","H1","Heading","H2","Annotation","Description","VoucherWrapper","BuyLink","fullWidth","WhiteBlock","Header","annotation","productFullName","redirectUrl","simpleDescription","selectedVariant","currency","productName","ref","inView","useInView","initialInView","getTimeFromInit","useTrackingContext","handleBuyLinkClicked","dispatchTrackingEvent","event","element","action","timing","interaction","_clear","voucherDiscount","attributes","VoucherDiscount","displayType","values","dangerouslySetInnerHTML","__html","VoucherDiscountMaster","hideLine","isArrowHidden","onClick","ContentWrapper","getProductName","variant","product","variantDescription","Master","variantName","brand","collection","headMetaMessages","review","seoTitle","seoKeywords","seoUrl","HeadMetaReviewsPage","useSsrProductUrl","src","imageSrc","useImageAttributes","media","mainImage","cache","useApolloClient","hostname","origin","URL","title","keywords","productShortName","productReviewsUrl","productUrl","description","metaData","writeQuery","query","getSeoMetadataQuery","data","Helmet","property","rel","ReviewsJsonLd","imageDomainPath","reviews","reviewsData","bazaarvoice_pd_components","useFeatureFlags","shopSettings","useProductDetailContext","countryCode","reviewBody","text","reviewRating","ratingValue","score","author","userName","discountedVariantOffers","variantOffers","useVariantOffers","itemCountry","JsonLd","item","sku","masterProductCode","gtin13","eanCode","category","image","getImagesSrc","offers","reviewOverview","count","aggregateRating","getAggregateRating","ReviewsWrapper","ReviewCount","TitleWrapper","Reviews","withProviders","ReviewItemsProvider","masterId","productCode","isAllReviewsPage","catalogMasterId","reviewsSummaryData","reviewsSummaryLoading","error","reviewsSummaryError","refetch","reviewsSummaryRefetch","useReviewsSummaryFetch","ssr","reviewsRefetch","fetchMore","useReviewsFetch","DEFAULT_REVIEW_COUNT","loggedInUserReviewData","refetchLoggedInUserReview","useLoggedInUserReviewFetch","brandName","productDetailByCatalogMasterId","reviewSummary","textReviewsCount","reviewsLength","reviewCount","LoadingWrapper","isLoading","isError","skeleton","ReviewSummarySkeleton","CenterWrapper","ErrorMessage","ActionButton","buttonSize","ButtonModel","ReviewsSummary","loggedInUserReview","async","ReviewsSkeleton","SortBox","ReviewsItems","reviewsLoading","reviewsError","ReviewsPageWrapper","ReviewsPage","currentVariant","currentCurrency","Settings","useSettings","shouldShowReviewPage","useShouldShowReviewPage","rating","page","path","window","location","pathname","unified_name","subpage","undefined","getProductFullName","getImageAttributes","breadcrumbs","breadcrumb","link","split","DESCRIPTION_MIN_LENGTH","ErrorBoundary","Grid","fluid","Breadcrumb","alignToRight","items","Divider","shouldShowOnMobile","webMasterId","PageGone","catalogId","productId","ssrEnabled","useGetProductView","ProductStateHandler","isReviewPage","ProductDetailContextProvider","PDView","ModalContext","DrawerProvider","doc","collectFragmentReferences","node","refs","kind","add","selectionSet","selections","forEach","selection","variableDefinitions","def","definitions","loc","source","definitionRefs","findOperation","i","Set","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery","documentId"],"sourceRoot":""}