{"version":3,"file":"static/chunks/pages/product-1478ab79a925031c.js","mappings":"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","sources":["webpack://_N_E/./adapters/cloudinary/ImageFactory.js","webpack://_N_E/./adapters/model/ContentfulClient.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/amp-mode.js","webpack://_N_E/./node_modules/next/dist/shared/lib/head.js","webpack://_N_E/./node_modules/next/dist/shared/lib/side-effect.js","webpack://_N_E/./node_modules/next/dist/shared/lib/utils/warn-once.js","webpack://_N_E/./pages/product.js","webpack://_N_E/./persistence/localStorage.js","webpack://_N_E/./persistence/recentlyViewed.js","webpack://_N_E/?4c9c","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/"],"sourcesContent":["export function buildContentfullImageUrl(assetUrl, transformations) {\n return transformations ? 'https:'+ assetUrl + \"?\" + transformations : 'https:'+ assetUrl; \n}\n\nexport function buildContentfullImageUrlByHeight(assetUrl, height = 'auto', transformations = 'c_limit', format = 'auto') {\n return 'https:'+ assetUrl + \"?h=\"+ height ;\n}\n\nexport function buildContentfullImageUrlByWidth(assetUrl, width = 'auto', transformations = 'c_limit', format = 'auto') {\n return 'https:'+ assetUrl + \"?w=\"+ width ; \n}\n\nexport function imageContentfullSrc(assetUrl, transformations) {\n return buildContentfullImageUrl(assetUrl, transformations);\n}\n\nexport function imageContentfullDpr(assetUrl, transformations = '') {\n if (!transformations) {\n return buildContentfullImageUrl(assetUrl);\n }\n\n return buildContentfullImageUrl(assetUrl, transformations)\n}\n\n\nexport default {\n buildContentfullImageUrl,\n buildContentfullImageUrlByHeight,\n buildContentfullImageUrlByWidth,\n imageContentfullDpr,\n imageContentfullSrc,\n};\n","const contentful = require('contentful');\n\nclass ContentfulClient {\n\n constructor() {\n this.personalAccessToken = process.env.CF_PERSONAL_ACCESS_TOKEN;\n this.deliveryAccessToken = process.env.CF_DELIVERY_ACCESS_TOKEN;\n this.spaceId = process.env.CF_SPACE_ID;\n this.environmentId = process.env.CF_ENVIRONMENT;\n\n if(this.deliveryAccessToken && this.deliveryAccessToken !== '') {\n this.contentfulClient = contentful.createClient({\n space: this.spaceId,\n accessToken: this.deliveryAccessToken,\n environment: this.environmentId\n });\n }\n\n }\n\n static create() {\n return new ContentfulClient();\n }\n getPersonalAccessToken() {\n return this.personalAccessToken;\n }\n getDeliveryAccessToken() {\n return this.deliveryAccessToken;\n }\n getSpaceId() {\n return this.spaceId;\n }\n getEnvironmentId() {\n return this.environmentId;\n }\n\n async getClient() {\n return this.contentfulClient;\n }\n}\n\nexport default new ContentfulClient();","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AmpStateContext = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nconst AmpStateContext = _react.default.createContext({});\nexports.AmpStateContext = AmpStateContext;\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext';\n}\n\n//# sourceMappingURL=amp-context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isInAmpMode = isInAmpMode;\nfunction isInAmpMode({ ampFirst =false , hybrid =false , hasQuery =false , } = {}) {\n return ampFirst || hybrid && hasQuery;\n}\n\n//# sourceMappingURL=amp-mode.js.map","\"use client\";\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultHead = defaultHead;\nexports.default = void 0;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _interop_require_wildcard = require(\"@swc/helpers/lib/_interop_require_wildcard.js\").default;\nvar _react = _interop_require_wildcard(require(\"react\"));\nvar _sideEffect = _interop_require_default(require(\"./side-effect\"));\nvar _ampContext = require(\"./amp-context\");\nvar _headManagerContext = require(\"./head-manager-context\");\nvar _ampMode = require(\"./amp-mode\");\nvar _warnOnce = require(\"./utils/warn-once\");\n'use client';\nfunction defaultHead(inAmpMode = false) {\n const head = [\n /*#__PURE__*/ _react.default.createElement(\"meta\", {\n charSet: \"utf-8\"\n })\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ _react.default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (process.env.NODE_ENV !== 'development' && process.env.__NEXT_OPTIMIZE_FONTS && !inAmpMode) {\n if (c.type === 'link' && c.props['href'] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.\n [\n 'https://fonts.googleapis.com/css',\n 'https://use.typekit.net/'\n ].some((url)=>c.props['href'].startsWith(url))) {\n const newProps = _extends({}, c.props || {});\n newProps['data-href'] = newProps['href'];\n newProps['href'] = undefined;\n // Add this attribute to make it easy to identify optimized tags\n newProps['data-optimized-fonts'] = true;\n return /*#__PURE__*/ _react.default.cloneElement(c, newProps);\n }\n }\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? `<script> tag with src=\"${c.props['src']}\"` : `inline <script>`;\n (0, _warnOnce).warnOnce(`Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`);\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnOnce).warnOnce(`Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`);\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head({ children }) {\n const ampState = (0, _react).useContext(_ampContext.AmpStateContext);\n const headManager = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n return /*#__PURE__*/ _react.default.createElement(_sideEffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampMode).isInAmpMode(ampState)\n }, children);\n}\nvar _default = Head;\nexports.default = _default;\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=head.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = SideEffect;\nvar _interop_require_wildcard = require(\"@swc/helpers/lib/_interop_require_wildcard.js\").default;\nvar _react = _interop_require_wildcard(require(\"react\"));\nfunction SideEffect(props) {\n const { headManager , reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var ref;\n headManager == null ? void 0 : (ref = headManager.mountedInstances) == null ? void 0 : ref.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect(()=>{\n var ref1;\n headManager == null ? void 0 : (ref1 = headManager.mountedInstances) == null ? void 0 : ref1.add(props.children);\n return ()=>{\n var ref;\n headManager == null ? void 0 : (ref = headManager.mountedInstances) == null ? void 0 : ref.delete(props.children);\n };\n });\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n };\n });\n useClientOnlyEffect(()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n };\n });\n return null;\n}\nconst isServer = typeof window === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\n\n//# sourceMappingURL=side-effect.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.warnOnce = void 0;\nlet warnOnce = (_)=>{};\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set();\n exports.warnOnce = warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n}\nexports.warnOnce = warnOnce;\n\n//# sourceMappingURL=warn-once.js.map","import '@babel/polyfill';\nimport Head from 'next/head'\nimport React, {Fragment} from 'react'\nimport PropTypes from 'prop-types'\nimport Router from 'next/router';\nimport Block from '../adapters/helpers/Block';\nimport { customJsonstringify, getCanonicalURL } from '../adapters/helpers/Utils';\nimport dynamic from 'next/dynamic';\nconst Meta = dynamic(()=>import('../components/Meta/Meta'))\nimport ImageFactory from '../adapters/cloudinary/ImageFactory';\nimport { setViewed } from '../persistence/recentlyViewed'\nimport contentfulClient from '../adapters/model/ContentfulClient';\nimport { MetaConstants } from '../adapters/helpers/Constants';\nimport { BazaarVoiceConstants } from '../adapters/helpers/Constants';\nimport { OrganizationConstants, ComponentFactoryConstants } from '../adapters/helpers/Constants';\nimport { addBVScript } from '../adapters/helpers/Utils';\nimport { addBVProductPageCallback } from '../adapters/helpers/Utils';\nimport { optimizeImage } from '../adapters/helpers/pagespeedHelper';\nimport DOMPurify from 'isomorphic-dompurify'\nimport { getBVSite } from '../localTracker';\nconst GTMScriptFunction = dynamic(()=>import('../components/GTMScriptFunction'))\n\nclass Product extends React.Component {\n\n componentDidMount() {\n const slug = this.props?.slug;\n const product = this.getProduct();\n\n if(slug) {\n setViewed(slug);\n }\n\n Router.beforePopState(({as}) => {\n location.href = as;\n });\n\n addBVScript();\n addBVProductPageCallback(product.name);\n }\n\n static async getInitialProps({ asPath }) {\n const client = await contentfulClient.getClient();\n const locales = await client.getLocales();\n const defaultLocale = locales.items.find(locale => locale.default);\n const countryCode = defaultLocale.code.slice(-2);\n const languageCode = defaultLocale.code.substring(0, 2);\n\n let baseProps = await this.initPage(asPath);\n baseProps.countryCode = countryCode;\n baseProps.languageCode = languageCode;\n return {\n ...baseProps\n }\n }\n\n static async initPage(slug) {\n let product = undefined;\n\n // Errors pages doesn't have a page entry in Contentful CMS\n\n if (slug) {\n const { default: productDao } = await import('Model/dao/ProductDao');\n product = await productDao.getActiveProductBySlug(slug);\n }\n let newProducts = product;\n newProducts?.fields?.blocks[0]?.fields?.blocks[1]?.fields?.blocks.map((blocksArr)=>{\n if(blocksArr?.fields?.contentType == ComponentFactoryConstants.ProductHighlights && blocksArr?.fields?.background?.fields){\n blocksArr.fields.background.fields.isBannerImage = true;\n }else if(blocksArr.fields.devicesConfigurations){\n blocksArr.fields.devicesConfigurations.map((devices)=>{\n if(devices.fields.backgroundAsset && devices.fields.backgroundAsset.fields){\n devices.fields.backgroundAsset.fields.isBannerImage = true;\n }\n })\n }\n })\n if(newProducts?.fields?.productOverview?.fields?.mainAsset?.fields){\n newProducts.fields.productOverview.fields.mainAsset.fields.isBannerImage = true;\n }\n\n return {'product' : newProducts, 'slug' : slug};\n }\n\n constructor(props) {\n super(props);\n }\n\n /**\n * Rendering of the page. This always render the page using a common layout.\n *\n * Override the render method to do otherwise.\n *\n * @returns {*}\n */\n render() {\n let product = this.getProduct();\n let pagePath = product?.productOverview?.fields?.slug?.fields?.slug;\n let productVariants = product?.productOverview?.fields?.productVariants;\n let productVariant = {}\n if (productVariants) {\n productVariant = productVariants[0];\n }\n let metaData = this.getMetadata()\n if(metaData){\n metaData.pageType = 'product'\n }\n const bvDataUrl=getBVSite()\n return (\n <Fragment>\n <Head>\n <script type = \"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html:DOMPurify.sanitize(\n `{\n \"@context\": \"https://schema.org/\",\t\n \"@type\": \"Product\",\t\n \"brand\": {\t\n \"@type\": \"Product\",\t\n \"name\": \"Oral-B\"\t\n },\n \"name\": \"${product?.name}\",\t\n \"description\": \"${product?.metadata?.fields?.metaDescription}\",\n \"image\": \"${product?.productOverview?.fields?.mainAsset?.fields?.asset?.fields?.file?.url}\"\n }`)\n }}\n/>\t\t\n\n \n <script async src={bvDataUrl}></script>\n </Head>\n <Meta metadata={metaData} pagePath={pagePath}/>\n <div className='ob-wrapper'>\n {this.renderBody()}\n </div>\n <GTMScriptFunction languageCode={this.props.languageCode} countryCode={this.props.countryCode} productVariant={productVariant} />\n {this.renderBazaarVoiceDynamicCatalogCollectionScript()}\n </Fragment>\n )\n }\n\n getProduct() {\n return this.props.product.fields;\n }\n\n getMetadata() {\n return this.props.product.fields.metadata.fields\n }\n\n /**\n * By default, the page will render the modules of the Product.\n * Can be overridden on the child class to do specific rendering.\n * @returns {*|void}\n */\n renderBody() {\n return new Block(this.props.product).renderChildBlocks({ extraAttributes : {entity: this.getProduct(), slug: this.props.slug}});\n }\n\n getImageUrl(image) {\n let contentImageId = image?.fields?.asset?.fields?.file?.url;\n let rendition = image?.fields?.imageRendition;\n let aspectRatio = rendition?.fields?.aspectRatio;\n let transformations = rendition?.fields?.transformations;\n let format = image?.fields?.forcedFormat || 'auto';\n let url = contentImageId && optimizeImage(ImageFactory.buildContentfullImageUrlByWidth(contentImageId, aspectRatio, transformations, format));\n return url;\n }\n\n renderBazaarVoiceDynamicCatalogCollectionScript() {\n let product = this.getProduct();\n\n let countryCode = this.props.countryCode;\n\n let imageUrl = this.getImageUrl(product.productOverview.fields.mainAsset);\n let productPageUrl = getCanonicalURL(product.productOverview.fields.slug.fields.slug, MetaConstants.https);\n\n let productVariants = product.productOverview.fields.productVariants;\n let skus = [];\n let eans = [];\n let reviewAndRatingId;\n if (productVariants) {\n for (let i = 0; i < productVariants.length; i++) {\n let productVariant = productVariants[i];\n\n let sku = productVariant?.fields?.sku;\n let ean = productVariant?.fields?.ean;\n\n if (ean) {\n if(this.isValidBarcode(ean)) {\n if (ean.length == 13) {\n eans.push(ean);\n }\n }\n }\n\n if(sku) {\n if(this.isValidBarcode(sku)) {\n if (sku.length == 12) {\n skus.push(sku);\n }\n // EANs have been put in the SKU fields of product variant in contentful\n // add sku to ean list if sku is a ean code(length of 13).\n if (sku.length == 13) {\n if (!eans.includes(sku)) {\n eans.push(sku);\n }\n }\n }\n }\n\n if (productVariant.fields.isBazaarVoiceIdentifier) {\n reviewAndRatingId = productVariant?.fields?.bazaarVoiceId;\n // if reviewAndRatingId is null use sku/ean\n if (reviewAndRatingId === undefined) {\n if (sku) {\n reviewAndRatingId = sku;\n } else if (sku === undefined) {\n reviewAndRatingId = ean;\n }\n if (reviewAndRatingId === undefined) {\n console.error('No reviewAndRatingId specified for product variant Bazaar Voice identifier:',\n productVariant?.fields?.name);\n }\n }\n }\n }\n }\n\n // product\n let dccProduct = {\n 'productId': reviewAndRatingId,\n 'productName': product.name,\n 'productDescription': product.productOverview.fields.description,\n 'productImageURL': imageUrl,\n 'productPageURL': productPageUrl,\n 'brandName': OrganizationConstants.brand,\n 'upcs' : skus,\n 'eans': eans\n }\n\n if(product.productOverview.fields.reviewAndRatingCategory) {\n dccProduct.categoryPath = [\n {\n 'Name' : product.productOverview.fields.reviewAndRatingCategory\n }\n ]\n }\n\n // Catalog\n let catalogProducts = [];\n catalogProducts.push(dccProduct);\n\n\n // Family and Bazaar voice master product values\n let reviewAndRatingFamilyId = product.productOverview.fields.reviewAndRatingFamilyId;\n\n if (reviewAndRatingFamilyId) {\n let familyJson = [{\n 'id': reviewAndRatingFamilyId,\n 'expand': false\n }];\n dccProduct.families = familyJson;\n // Master product\n let masterProductId = getBazaarVoiceMasterProductId(reviewAndRatingFamilyId);\n let masterProductName = getBazaarVoiceMasterProductName(reviewAndRatingFamilyId);\n\n let masterProductJson = {\n 'productId': masterProductId,\n 'productName': masterProductName,\n 'productPageURL': productPageUrl,\n 'upcs' : skus,\n 'eans': eans,\n 'families': [{\n 'id': reviewAndRatingFamilyId,\n 'expand': true\n }]\n }\n catalogProducts.push(masterProductJson)\n }\n\n let languageCode = this.props.languageCode;\n let bazaarVoiceLocale = languageCode + '_' + countryCode;\n let catalogProductsString = customJsonstringify(catalogProducts);\n\n let render;\n // do not render if we no productID\n if(reviewAndRatingId) {\n render = <Fragment>\n <script defer dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(`window.bvDCC = {\n catalogData: {\n locale: '${bazaarVoiceLocale}',\n catalogProducts: ${catalogProductsString}\n }\n };\n window.bvCallback = function (BV) {\n BV.pixel.trackEvent(\"CatalogUpdate\", {\n type: 'Product',\n locale: window.bvDCC.catalogData.locale,\n catalogProducts: window.bvDCC.catalogData.catalogProducts\n });\n };`\n )}}>\n </script>\n </Fragment> ;\n }\n\n return render;\n }\n\n isValidBarcode(barcode) {\n // check length\n if (barcode.length != 12 && barcode.length != 13) {\n return false;\n }\n\n var lastDigit = Number(barcode.substring(barcode.length - 1));\n var checkSum;\n if (isNaN(lastDigit)) { return false; } // not a valid upc/ean\n\n var arr = barcode.substring(0,barcode.length - 1).split('').reverse();\n var oddTotal = 0, evenTotal = 0;\n\n for (var i=0; i<arr.length; i++) {\n if (isNaN(arr[i])) { return false; } // can't be a valid upc/ean we're checking for\n\n if (i % 2 == 0) { oddTotal += Number(arr[i]) * 3; }\n else { evenTotal += Number(arr[i]); }\n }\n checkSum = (10 - ((evenTotal + oddTotal) % 10)) % 10;\n\n // true if they are equal\n return checkSum == lastDigit;\n }\n\n}\n\nexport function getBazaarVoiceMasterProductId(reviewAndRatingFamilyId) {\n let masterProductId = BazaarVoiceConstants.masterProductIdPrefix + reviewAndRatingFamilyId;\n return masterProductId;\n}\n\nexport function getBazaarVoiceMasterProductName(reviewAndRatingFamilyId) {\n let masterProductName = BazaarVoiceConstants.masterProductNamePrefix + reviewAndRatingFamilyId;\n return masterProductName;\n}\n\nProduct.propTypes = {\n product: PropTypes.object,\n countryCode: PropTypes.string,\n languageCode: PropTypes.string,\n slug: PropTypes.any,\n url: PropTypes.shape({\n asPath: PropTypes.string,\n })\n}\n\nexport default Product\n","\nconst LOCAL_STORAGE_KEYS = {\n RECENTLY_VIEWED_PRODUCTS: 'RECENTLY_VIEWED_PRODUCTS',\n}\n\nexport { LOCAL_STORAGE_KEYS };","import { LOCAL_STORAGE_KEYS } from './localStorage';\nimport { first } from '../adapters/helpers/functions';\nimport { customJsonstringify, customSuperJsonParse, customSuperJsonStringify } from '../adapters/helpers/Utils';\n\nconst PRODUCT_PERSISTENCE_LIFESPAN_MILLISECONDS = 30 * 24 * 60 * 60 * 1000;\n\nfunction findProductIndex(products, id) {\n for(let i = 0; i < products.length; i++) {\n const product = products[i];\n\n if(product.id === id) {\n return i;\n }\n }\n\n return undefined;\n}\n\nfunction filterExpiredProducts(products) {\n return products.filter(({expiral}) =>\n new Date(expiral).getTime() > new Date().getTime())\n}\n\n\n// TODO: Remove in prod (Used for data consistency between changes)\nfunction isProductsDataValid(products) {\n if(!Array.isArray(products)) { return false; }\n\n for(let i = 0; i < products.length; i++) {\n const product = products[i];\n\n if(!product) { return false; }\n\n if(!product.hasOwnProperty('id')) { return false; }\n if(!product.hasOwnProperty('expiral')) { return false; }\n\n if(!(typeof product.id === 'string')) { return false; }\n if(!(typeof product.expiral === 'number')) { return false; }\n }\n return true;\n}\n\nexport function setViewed(id) {\n if((typeof localStorage !== 'undefined') && localStorage.setItem) {\n const products = getProducts();\n\n // Remove already viewed product\n const productsWithoutCurrentProduct = products.slice();\n const currentProductIndex = findProductIndex(products, id);\n\n if(currentProductIndex !== undefined) {\n productsWithoutCurrentProduct.splice(currentProductIndex, 1);\n }\n\n // Filter expirered products\n const expiralFilteredProduct = filterExpiredProducts(productsWithoutCurrentProduct);\n\n // Add id to first place\n const nextProducts = first([\n { id, expiral: (new Date().getTime() + PRODUCT_PERSISTENCE_LIFESPAN_MILLISECONDS)},\n ...expiralFilteredProduct\n ], 3);\n\n localStorage.setItem(LOCAL_STORAGE_KEYS.RECENTLY_VIEWED_PRODUCTS, customSuperJsonStringify(nextProducts));\n }\n}\n\nexport function getProducts() {\n if((typeof localStorage !== 'undefined') && localStorage.getItem) {\n const json = localStorage.getItem(LOCAL_STORAGE_KEYS.RECENTLY_VIEWED_PRODUCTS);\n\n if(json !== null) {\n try {\n const products = customSuperJsonParse (json);\n\n // TODO: Remove in prod\n if(!isProductsDataValid(products)) { return [];}\n\n return filterExpiredProducts(products);\n } catch(_e) {\n // Do nothing or log error\n }\n }\n }\n\n return [];\n}\n\nexport function removeProduct(id) {\n if((typeof localStorage !== 'undefined') && localStorage.setItem) {\n const products = getProducts();\n\n // Remove product\n const productsWithoutCurrentProduct = products.slice();\n const currentProductIndex = findProductIndex(products, id);\n\n if(currentProductIndex !== undefined) {\n productsWithoutCurrentProduct.splice(currentProductIndex, 1);\n }\n\n // Filter expirered products\n const expiralFilteredProduct = filterExpiredProducts(productsWithoutCurrentProduct);\n\n localStorage.setItem(LOCAL_STORAGE_KEYS.RECENTLY_VIEWED_PRODUCTS, customSuperJsonStringify(expiralFilteredProduct));\n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/product\",\n function () {\n return require(\"private-next-pages/product.js\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/product\"])\n });\n }\n ","module.exports = require('./dist/shared/lib/head')\n","(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5345],{42456:function(e,t,n){\"use strict\";function r(e,t){return t?\"https:\"+e+\"?\"+t:\"https:\"+e}t.ZP={buildContentfullImageUrl:r,buildContentfullImageUrlByHeight:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?h=\"+t},buildContentfullImageUrlByWidth:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?w=\"+t},imageContentfullDpr:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";return t?r(e,t):r(e)},imageContentfullSrc:function(e,t){return r(e,t)}}},57503:function(e,t,n){\"use strict\";var r=n(49376),i=n.n(r),a=n(33227),u=n.n(a),o=n(88361),l=n.n(o),s=n(87794),c=n.n(s),d=n(45432),f=function(){function e(){u()(this,e),this.personalAccessToken=\"\",this.deliveryAccessToken=\"lRnkNzAfphZD5EmIvd-Sscv45GEkW5bUwS4FN1SHcZE\",this.spaceId=\"xwl2qgknr5qo\",this.environmentId=\"master\",this.deliveryAccessToken&&\"\"!==this.deliveryAccessToken&&(this.contentfulClient=d.createClient({space:this.spaceId,accessToken:this.deliveryAccessToken,environment:this.environmentId}))}var t;return l()(e,[{key:\"getPersonalAccessToken\",value:function(){return this.personalAccessToken}},{key:\"getDeliveryAccessToken\",value:function(){return this.deliveryAccessToken}},{key:\"getSpaceId\",value:function(){return this.spaceId}},{key:\"getEnvironmentId\",value:function(){return this.environmentId}},{key:\"getClient\",value:(t=i()(c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",this.contentfulClient);case 1:case\"end\":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}],[{key:\"create\",value:function(){return new e}}]),e}();t.Z=new f},83582:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.AmpStateContext=void 0;var r=(0,n(92648).Z)(n(67294)).default.createContext({});t.AmpStateContext=r},80354:function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.isInAmpMode=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ampFirst,n=void 0!==t&&t,r=e.hybrid,i=void 0!==r&&r,a=e.hasQuery,u=void 0!==a&&a;return n||i&&u}},16505:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.defaultHead=c,t.default=void 0;var r=n(6495).Z,i=n(92648).Z,a=(0,n(91598).Z)(n(67294)),u=i(n(70148)),o=n(83582),l=n(60523),s=n(80354);n(92783);function c(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[a.default.createElement(\"meta\",{charSet:\"utf-8\"})];return e||t.push(a.default.createElement(\"meta\",{name:\"viewport\",content:\"width=device-width\"})),t}function d(e,t){return\"string\"==typeof t||\"number\"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((function(e,t){return\"string\"==typeof t||\"number\"==typeof t?e:e.concat(t)}),[])):e.concat(t)}var f=[\"name\",\"httpEquiv\",\"charSet\",\"itemProp\"];function p(e,t){var n,i,u,o,l=t.inAmpMode;return e.reduce(d,[]).reverse().concat(c(l).reverse()).filter((n=new Set,i=new Set,u=new Set,o={},function(e){var t=!0,r=!1;if(e.key&&\"number\"!=typeof e.key&&e.key.indexOf(\"$\")>0){r=!0;var a=e.key.slice(e.key.indexOf(\"$\")+1);n.has(a)?t=!1:n.add(a)}switch(e.type){case\"title\":case\"base\":i.has(e.type)?t=!1:i.add(e.type);break;case\"meta\":for(var l=0,s=f.length;l<s;l++){var c=f[l];if(e.props.hasOwnProperty(c))if(\"charSet\"===c)u.has(c)?t=!1:u.add(c);else{var d=e.props[c],p=o[c]||new Set;\"name\"===c&&r||!p.has(d)?(p.add(d),o[c]=p):t=!1}}}return t})).reverse().map((function(e,t){var n=e.key||t;if(!l&&\"link\"===e.type&&e.props.href&&[\"https://fonts.googleapis.com/css\",\"https://use.typekit.net/\"].some((function(t){return e.props.href.startsWith(t)}))){var i=r({},e.props||{});return i[\"data-href\"]=i.href,i.href=void 0,i[\"data-optimized-fonts\"]=!0,a.default.cloneElement(e,i)}return a.default.cloneElement(e,{key:n})}))}var v=function(e){var t=e.children,n=a.useContext(o.AmpStateContext),r=a.useContext(l.HeadManagerContext);return a.default.createElement(u.default,{reduceComponentsToState:p,headManager:r,inAmpMode:s.isInAmpMode(n)},t)};t.default=v,(\"function\"==typeof t.default||\"object\"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,\"__esModule\",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},70148:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){var t=e.headManager,n=e.reduceComponentsToState;function o(){if(t&&t.mountedInstances){var i=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(i,e))}}if(i){var l;null==t||null==(l=t.mountedInstances)||l.add(e.children),o()}return a((function(){var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),function(){var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}})),a((function(){return t&&(t._pendingUpdate=o),function(){t&&(t._pendingUpdate=o)}})),u((function(){return t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),function(){t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)}})),null};var r=(0,n(91598).Z)(n(67294));var i=!1,a=i?function(){}:r.useLayoutEffect,u=i?function(){}:r.useEffect},92783:function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.warnOnce=void 0;t.warnOnce=function(e){}},77331:function(e,t,n){\"use strict\";n.r(t),n.d(t,{getBazaarVoiceMasterProductId:function(){return H},getBazaarVoiceMasterProductName:function(){return L}});var r=n(930),i=n.n(r),a=n(49376),u=n.n(a),o=n(33227),l=n.n(o),s=n(88361),c=n.n(s),d=n(85971),f=n.n(d),p=n(52715),v=n.n(p),g=n(91193),h=n.n(g),m=n(87794),y=n.n(m),b=(n(26981),n(9008)),w=n.n(b),k=n(67294),P=n(11163),C=n.n(P),O=n(40483),I=n(8996),x=n(5152),_=n.n(x),S=n(42456),A=n(27952),j=n(57503),D=n(24036),B=n(19271),N=n(29238),E=n.n(N),T=n(91782),U=n(85893);function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){i()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function V(e){var t=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=h()(e);if(t){var i=h()(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return v()(this,n)}}var Z=_()((function(){return n.e(2552).then(n.bind(n,23140))}),{loadableGenerated:{webpack:function(){return[23140]}}}),z=_()((function(){return n.e(7667).then(n.bind(n,37667))}),{loadableGenerated:{webpack:function(){return[37667]}}}),F=function(e){f()(a,e);var t,r,i=V(a);function a(e){return l()(this,a),i.call(this,e)}return c()(a,[{key:\"componentDidMount\",value:function(){var e,t=null==(e=this.props)?void 0:e.slug,n=this.getProduct();t&&(0,A.OS)(t),C().beforePopState((function(e){var t=e.as;location.href=t})),(0,I.Jy)(),(0,I.FS)(n.name)}},{key:\"render\",value:function(){var e,t,n,r,i,a,u,o,l,s,c,d,f,p,v,g=this.getProduct(),h=null==g||null==(e=g.productOverview)||null==(t=e.fields)||null==(n=t.slug)||null==(r=n.fields)?void 0:r.slug,m=null==g||null==(i=g.productOverview)||null==(a=i.fields)?void 0:a.productVariants,y={};m&&(y=m[0]);var b=this.getMetadata();b&&(b.pageType=\"product\");var P=(0,T.N)();return(0,U.jsxs)(k.Fragment,{children:[(0,U.jsxs)(w(),{children:[(0,U.jsx)(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:E().sanitize('{\\n \"@context\": \"https://schema.org/\",\\t\\n \"@type\": \"Product\",\\t\\n \"brand\": {\\t\\n \"@type\": \"Product\",\\t\\n \"name\": \"Oral-B\"\\t\\n },\\n \"name\": \"'.concat(null==g?void 0:g.name,'\",\\t\\n \"description\": \"').concat(null==g||null==(u=g.metadata)||null==(o=u.fields)?void 0:o.metaDescription,'\",\\n \"image\": \"').concat(null==g||null==(l=g.productOverview)||null==(s=l.fields)||null==(c=s.mainAsset)||null==(d=c.fields)||null==(f=d.asset)||null==(p=f.fields)||null==(v=p.file)?void 0:v.url,'\"\\n }'))}}),(0,U.jsx)(\"script\",{async:!0,src:P})]}),(0,U.jsx)(Z,{metadata:b,pagePath:h}),(0,U.jsx)(\"div\",{className:\"ob-wrapper\",children:this.renderBody()}),(0,U.jsx)(z,{languageCode:this.props.languageCode,countryCode:this.props.countryCode,productVariant:y}),this.renderBazaarVoiceDynamicCatalogCollectionScript()]})}},{key:\"getProduct\",value:function(){return this.props.product.fields}},{key:\"getMetadata\",value:function(){return this.props.product.fields.metadata.fields}},{key:\"renderBody\",value:function(){return new O.Z(this.props.product).renderChildBlocks({extraAttributes:{entity:this.getProduct(),slug:this.props.slug}})}},{key:\"getImageUrl\",value:function(e){var t,n,r,i,a,u,o,l,s=null==e||null==(t=e.fields)||null==(n=t.asset)||null==(r=n.fields)||null==(i=r.file)?void 0:i.url,c=null==e||null==(a=e.fields)?void 0:a.imageRendition,d=null==c||null==(u=c.fields)?void 0:u.aspectRatio,f=null==c||null==(o=c.fields)?void 0:o.transformations,p=(null==e||null==(l=e.fields)?void 0:l.forcedFormat)||\"auto\";return s&&(0,B.H)(S.ZP.buildContentfullImageUrlByWidth(s,d,f,p))}},{key:\"renderBazaarVoiceDynamicCatalogCollectionScript\",value:function(){var e,t=this.getProduct(),n=this.props.countryCode,r=this.getImageUrl(t.productOverview.fields.mainAsset),i=(0,I.DN)(t.productOverview.fields.slug.fields.slug,D.FU.https),a=t.productOverview.fields.productVariants,u=[],o=[];if(a)for(var l=0;l<a.length;l++){var s,c,d,f,p=a[l],v=null==p||null==(s=p.fields)?void 0:s.sku,g=null==p||null==(c=p.fields)?void 0:c.ean;if(g&&this.isValidBarcode(g)&&13==g.length&&o.push(g),v&&this.isValidBarcode(v)&&(12==v.length&&u.push(v),13==v.length&&(o.includes(v)||o.push(v))),p.fields.isBazaarVoiceIdentifier)if(void 0===(e=null==p||null==(d=p.fields)?void 0:d.bazaarVoiceId))if(v?e=v:void 0===v&&(e=g),void 0===e)console.error(\"No reviewAndRatingId specified for product variant Bazaar Voice identifier:\",null==p||null==(f=p.fields)?void 0:f.name)}var h={productId:e,productName:t.name,productDescription:t.productOverview.fields.description,productImageURL:r,productPageURL:i,brandName:D.XI.brand,upcs:u,eans:o};t.productOverview.fields.reviewAndRatingCategory&&(h.categoryPath=[{Name:t.productOverview.fields.reviewAndRatingCategory}]);var m=[];m.push(h);var y=t.productOverview.fields.reviewAndRatingFamilyId;if(y){var b=[{id:y,expand:!1}];h.families=b;var w={productId:H(y),productName:L(y),productPageURL:i,upcs:u,eans:o,families:[{id:y,expand:!0}]};m.push(w)}var P,C=this.props.languageCode+\"_\"+n,O=(0,I.Zl)(m);return e&&(P=(0,U.jsx)(k.Fragment,{children:(0,U.jsx)(\"script\",{defer:!0,dangerouslySetInnerHTML:{__html:E().sanitize(\"window.bvDCC = {\\n catalogData: {\\n locale: '\".concat(C,\"',\\n catalogProducts: \").concat(O,\"\\n }\\n };\\n window.bvCallback = function (BV) {\\n BV.pixel.trackEvent(\\\"CatalogUpdate\\\", {\\n type: 'Product',\\n locale: window.bvDCC.catalogData.locale,\\n catalogProducts: window.bvDCC.catalogData.catalogProducts\\n });\\n };\"))}})})),P}},{key:\"isValidBarcode\",value:function(e){if(12!=e.length&&13!=e.length)return!1;var t=Number(e.substring(e.length-1));if(isNaN(t))return!1;for(var n=e.substring(0,e.length-1).split(\"\").reverse(),r=0,i=0,a=0;a<n.length;a++){if(isNaN(n[a]))return!1;a%2==0?r+=3*Number(n[a]):i+=Number(n[a])}return(10-(i+r)%10)%10==t}}],[{key:\"getInitialProps\",value:(r=u()(y().mark((function e(t){var n,r,i,a,u,o,l;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.asPath,e.next=3,j.Z.getClient();case 3:return r=e.sent,e.next=6,r.getLocales();case 6:return i=e.sent,a=i.items.find((function(e){return e.default})),u=a.code.slice(-2),o=a.code.substring(0,2),e.next=12,this.initPage(n);case 12:return(l=e.sent).countryCode=u,l.languageCode=o,e.abrupt(\"return\",R({},l));case 16:case\"end\":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:\"initPage\",value:(t=u()(y().mark((function e(t){var r,i,a,u,o,l,s,c,d,f,p,v,g;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(f=void 0,!t){e.next=9;break}return e.next=4,n.e(2817).then(n.bind(n,42817));case 4:return p=e.sent,v=p.default,e.next=8,v.getActiveProductBySlug(t);case 8:f=e.sent;case 9:return null==(g=f)||null==(r=g.fields)||null==(i=r.blocks[0])||null==(a=i.fields)||null==(u=a.blocks[1])||null==(o=u.fields)||o.blocks.map((function(e){var t,n,r;(null==e||null==(t=e.fields)?void 0:t.contentType)==D.a9.ProductHighlights&&(null==e||null==(n=e.fields)||null==(r=n.background)?void 0:r.fields)?e.fields.background.fields.isBannerImage=!0:e.fields.devicesConfigurations&&e.fields.devicesConfigurations.map((function(e){e.fields.backgroundAsset&&e.fields.backgroundAsset.fields&&(e.fields.backgroundAsset.fields.isBannerImage=!0)}))})),(null==g||null==(l=g.fields)||null==(s=l.productOverview)||null==(c=s.fields)||null==(d=c.mainAsset)?void 0:d.fields)&&(g.fields.productOverview.fields.mainAsset.fields.isBannerImage=!0),e.abrupt(\"return\",{product:g,slug:t});case 13:case\"end\":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),a}(k.Component);function H(e){return D.Uo.masterProductIdPrefix+e}function L(e){return D.Uo.masterProductNamePrefix+e}t.default=F},27952:function(e,t,n){\"use strict\";n.d(t,{Xp:function(){return d},kh:function(){return f},OS:function(){return c}});var r=n(7980),i=n.n(r),a=\"RECENTLY_VIEWED_PRODUCTS\",u=n(61986),o=n(8996);function l(e,t){for(var n=0;n<e.length;n++){if(e[n].id===t)return n}}function s(e){return e.filter((function(e){var t=e.expiral;return new Date(t).getTime()>(new Date).getTime()}))}function c(e){if(\"undefined\"!=typeof localStorage&&localStorage.setItem){var t=d(),n=t.slice(),r=l(t,e);void 0!==r&&n.splice(r,1);var c=s(n),f=(0,u.Ps)([{id:e,expiral:(new Date).getTime()+2592e6}].concat(i()(c)),3);localStorage.setItem(a,(0,o.hD)(f))}}function d(){if(\"undefined\"!=typeof localStorage&&localStorage.getItem){var e=localStorage.getItem(a);if(null!==e)try{var t=(0,o.Cp)(e);return function(e){if(!Array.isArray(e))return!1;for(var t=0;t<e.length;t++){var n=e[t];if(!n)return!1;if(!n.hasOwnProperty(\"id\"))return!1;if(!n.hasOwnProperty(\"expiral\"))return!1;if(\"string\"!=typeof n.id)return!1;if(\"number\"!=typeof n.expiral)return!1}return!0}(t)?s(t):[]}catch(e){}}return[]}function f(e){if(\"undefined\"!=typeof localStorage&&localStorage.setItem){var t=d(),n=t.slice(),r=l(t,e);void 0!==r&&n.splice(r,1);var i=s(n);localStorage.setItem(a,(0,o.hD)(i))}}},71634:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push([\"/product\",function(){return n(77331)}])},9008:function(e,t,n){e.exports=n(16505)}},function(e){e.O(0,[9636,7749,4885,8759,5432,5609,483,9774,2888,179],(function(){return t=71634,e(e.s=t);var t}));var t=e.O();_N_E=t}]);"],"names":["self","webpackChunk_N_E","push","e","t","n","r","ZP","buildContentfullImageUrl","buildContentfullImageUrlByHeight","arguments","length","buildContentfullImageUrlByWidth","imageContentfullDpr","imageContentfullSrc","i","a","u","o","l","s","c","d","f","personalAccessToken","deliveryAccessToken","spaceId","environmentId","contentfulClient","createClient","space","accessToken","environment","key","value","mark","wrap","prev","next","abrupt","stop","apply","Z","Object","defineProperty","AmpStateContext","default","createContext","isInAmpMode","ampFirst","hybrid","hasQuery","defaultHead","createElement","charSet","name","content","type","Fragment","concat","Children","toArray","props","children","reduce","p","inAmpMode","reverse","filter","Set","indexOf","slice","has","add","hasOwnProperty","map","href","some","startsWith","cloneElement","useContext","HeadManagerContext","reduceComponentsToState","headManager","__esModule","assign","exports","mountedInstances","Array","from","Boolean","updateHead","delete","_pendingUpdate","useLayoutEffect","useEffect","warnOnce","getBazaarVoiceMasterProductId","H","getBazaarVoiceMasterProductName","L","v","g","h","m","y","b","w","k","P","C","O","I","x","_","S","A","j","D","B","N","E","T","U","M","keys","getOwnPropertySymbols","getOwnPropertyDescriptor","enumerable","then","bind","loadableGenerated","webpack","z","F","Reflect","construct","sham","Proxy","prototype","valueOf","call","constructor","slug","getProduct","OS","beforePopState","as","location","Jy","FS","productOverview","fields","productVariants","getMetadata","pageType","jsxs","jsx","dangerouslySetInnerHTML","__html","sanitize","metadata","metaDescription","mainAsset","asset","file","url","async","src","pagePath","className","renderBody","languageCode","countryCode","productVariant","renderBazaarVoiceDynamicCatalogCollectionScript","product","renderChildBlocks","extraAttributes","entity","imageRendition","aspectRatio","transformations","forcedFormat","getImageUrl","DN","FU","https","sku","ean","isValidBarcode","includes","isBazaarVoiceIdentifier","bazaarVoiceId","console","error","productId","productName","productDescription","description","productImageURL","productPageURL","brandName","XI","brand","upcs","eans","reviewAndRatingCategory","categoryPath","Name","reviewAndRatingFamilyId","families","id","expand","Zl","defer","Number","substring","isNaN","split","asPath","getClient","sent","getLocales","items","find","code","initPage","R","forEach","getOwnPropertyDescriptors","defineProperties","getActiveProductBySlug","blocks","contentType","a9","ProductHighlights","background","isBannerImage","devicesConfigurations","backgroundAsset","Component","Uo","masterProductIdPrefix","masterProductNamePrefix","Xp","kh","expiral","Date","getTime","localStorage","setItem","splice","Ps","hD","getItem","Cp","isArray","window","__NEXT_P","_N_E"],"sourceRoot":""}