{"version":3,"file":"static/chunks/pages/product-88f7cd8ee47497a3.js","mappings":"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","sources":["webpack://_N_E/./adapters/cloudinary/ImageFactory.js","webpack://_N_E/./adapters/helpers/functions.js","webpack://_N_E/./adapters/helpers/pagespeedHelper.js","webpack://_N_E/./adapters/model/ContentfulClient.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/script.js","webpack://_N_E/"],"sourcesContent":["export function buildContentfullImageUrl(assetUrl, transformations) {\n if (transformations) {\n return 'https:'+ assetUrl + \"?\" + transformations; \n } else {\n return 'https:'+ assetUrl; \n }\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\nexport default {\n buildContentfullImageUrl,\n buildContentfullImageUrlByHeight,\n buildContentfullImageUrlByWidth,\n imageContentfullDpr,\n imageContentfullSrc,\n};\n","export function chunk(items, size) {\n if(!Array.isArray(items)\n || items.length === 0\n || !Number.isInteger(size)\n || size === 0) {\n return [];\n }\n\n const chunks = [];\n let chunk = [];\n\n for(let i = 0; i < items.length; i++) {\n chunk.push(items[i]);\n if((i + 1) % size === 0) {\n chunks.push(chunk);\n chunk = [];\n }\n }\n\n if(chunk.length > 0) {\n chunks.push(chunk);\n }\n\n return chunks;\n}\n\nexport function flatten(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.reduce((previous, current) => {\n if (Array.isArray(current)){\n return previous.concat(current);\n } else {\n previous.push(current);\n return previous;\n }\n }, []);\n}\n\nexport function minimum(array) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n let minimum = undefined;\n\n for(let i = 0; i < array.length; i++) {\n const value = array[i];\n if(typeof value === 'number') {\n if(minimum === undefined || value < minimum) {\n minimum = value;\n }\n }\n }\n\n return minimum;\n}\n\n// function to return N given of items in an Array\nexport function first(array, n) {\n // if passed array is not an array, return empty array\n if (!Array.isArray(array)\n || n <= 0) {\n return [];\n }\n\n //if N number is bigger or equal slice up the entire thing\n if(n >= array.length) {\n return array.slice();\n } else {\n // otherwise return only N numbers of array items\n return array.slice(0, n);\n }\n}\n\nexport function isLater(value) {\n // Return true if today is after the value date\n let result = false\n\n if (value && value instanceof Date) {\n result = new Date() > value;\n } else if (value) {\n result = new Date() > new Date(value)\n }\n\n return result;\n}\n\nexport function isObject(value) {\n return (!!value) && (value.constructor === Object);\n}\n\nexport function findIndex(array, fn) {\n if (!Array.isArray(array)\n || !(typeof fn === 'function')) {\n return undefined;\n }\n for(let i = 0; i < array.length; i++) {\n const element = array[i];\n\n if(fn(element)) {\n return i;\n }\n }\n\n return undefined;\n}\n\nexport function escapeHtml(unsafe) {\n return unsafe\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n","export const optimizeImage = (imageUrl, imageFormatValue, imageQualityValue) => {\n let imageFormat = imageFormatValue ? imageFormatValue : 'webp';\n let imageQuality = imageQualityValue ? imageQualityValue : 85;\n if((imageUrl !== undefined) && (imageUrl !== null) && (imageUrl.includes('images.ctfassets.net')) && (imageUrl.includes('fm=webp') == false) && (imageUrl.includes('.svg') == false)) {\n if(imageUrl?.includes('https')) {\n if(imageUrl?.includes('?') ) {\n imageUrl = imageUrl + `&fm=${imageFormat}` + `&q=${imageQuality}`;\n }\n else {\n imageUrl = imageUrl + `?fm=${imageFormat}` + `&q=${imageQuality}`;\n }\n }\n else {\n imageUrl = 'https:' + imageUrl\n if(imageUrl?.includes('?')) {\n imageUrl = imageUrl + `&fm=${imageFormat}` + `&q=${imageQuality}`;\n }\n else {\n imageUrl = imageUrl + `?fm=${imageFormat}` + `&q=${imageQuality}`;\n }\n }\n }\n return imageUrl;\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();","import '@babel/polyfill';\nimport React, {Fragment,Suspense} from 'react'\nimport PropTypes from 'prop-types'\nimport Router from 'next/router';\nimport dynamic from 'next/dynamic';\nimport Block from '../adapters/helpers/Block';\nimport { getCanonicalURL } from '../adapters/helpers/Utils';\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 { customJsonstringify, addBVProductPageCallback } from '../adapters/helpers/Utils';\nimport { optimizeImage } from '../adapters/helpers/pagespeedHelper';\nimport Script from 'next/script';\nconst Meta = dynamic(() => import('../components/Meta/Meta'));\nconst GTMScriptFunction = dynamic(() => import('../components/GTMScriptFunction'));\nimport Loader from '../adapters/helpers/Loader';\n\nclass Product extends React.Component {\n\n componentDidMount() {\n const slug = this.props?.slug;\n let product = this.getProduct();\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 return (\n }>\n \n }>\n \n \n
\n }>\n {this.renderBody()}\n \n
\n }>\n {this.renderBazaarVoiceDynamicCatalogCollectionScript()}\n
\n
\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 url = contentImageId && optimizeImage(ImageFactory.buildContentfullImageUrl(contentImageId));\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 = \n \n ;\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\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/client/script')\n","(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5345],{42456:function(e,n,t){\"use strict\";function r(e,n){return n?\"https:\"+e+\"?\"+n:\"https:\"+e}n.ZP={buildContentfullImageUrl:r,buildContentfullImageUrlByHeight:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?h=\"+n},buildContentfullImageUrlByWidth:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?w=\"+n},imageContentfullDpr:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";return n?r(e,n):r(e)},imageContentfullSrc:function(e,n){return r(e,n)}}},61986:function(e,n,t){\"use strict\";function r(e,n){if(!Array.isArray(e)||0===e.length||!Number.isInteger(n)||0===n)return[];for(var t=[],r=[],i=0;i0&&t.push(r),t}function i(e){if(Array.isArray(e)){for(var n=void 0,t=0;t=e.length?e.slice():e.slice(0,n)}function a(e){var n=!1;return e&&e instanceof Date?n=new Date>e:e&&(n=new Date>new Date(e)),n}function o(e){return!!e&&e.constructor===Object}function l(e,n){if(Array.isArray(e)&&\"function\"==typeof n)for(var t=0;t/g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")}t.d(n,{Kn:function(){return o},LT:function(){return i},Ps:function(){return u},Xv:function(){return c},cx:function(){return l},en:function(){return a},yo:function(){return r}})},19271:function(e,n,t){\"use strict\";t.d(n,{H:function(){return r}});var r=function(e,n,t){var r,i,u,a=n||\"webp\",o=t||85;null!=e&&e.includes(\"images.ctfassets.net\")&&0==e.includes(\"fm=webp\")&&0==e.includes(\".svg\")&&(e=(null==(r=e)?void 0:r.includes(\"https\"))?(null==(i=e)?void 0:i.includes(\"?\"))?e+\"&fm=\".concat(a)+\"&q=\".concat(o):e+\"?fm=\".concat(a)+\"&q=\".concat(o):(null==(u=e=\"https:\"+e)?void 0:u.includes(\"?\"))?e+\"&fm=\".concat(a)+\"&q=\".concat(o):e+\"?fm=\".concat(a)+\"&q=\".concat(o));return e}},57503:function(e,n,t){\"use strict\";var r=t(49376),i=t.n(r),u=t(33227),a=t.n(u),o=t(88361),l=t.n(o),c=t(87794),s=t.n(c),d=t(45432),f=function(){function e(){a()(this,e),this.personalAccessToken=\"\",this.deliveryAccessToken=\"2hdeQtNxkFZD46_bO-AYFvNMWsYUjhOzeqE0GaQzTNw\",this.spaceId=\"ynyrv8292f9c\",this.environmentId=\"master\",this.deliveryAccessToken&&\"\"!==this.deliveryAccessToken&&(this.contentfulClient=d.createClient({space:this.spaceId,accessToken:this.deliveryAccessToken,environment:this.environmentId}))}var n;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:(n=i()(s().mark((function e(){return s().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 n.apply(this,arguments)})}],[{key:\"create\",value:function(){return new e}}]),e}();n.Z=new f},77331:function(e,n,t){\"use strict\";t.r(n),t.d(n,{getBazaarVoiceMasterProductId:function(){return F},getBazaarVoiceMasterProductName:function(){return L}});var r=t(930),i=t.n(r),u=t(49376),a=t.n(u),o=t(33227),l=t.n(o),c=t(88361),s=t.n(c),d=t(85971),f=t.n(d),p=t(52715),v=t.n(p),g=t(91193),h=t.n(g),y=t(87794),m=t.n(y),b=(t(26981),t(67294)),w=t(11163),k=t.n(w),P=t(5152),C=t.n(P),O=t(40483),I=t(8996),x=t(42456),A=t(27952),D=t(57503),j=t(24036),N=t(19271),S=t(4298),B=t.n(S),T=t(47322),_=t(85893);function V(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function U(e){for(var n=1;n(new Date).getTime()}))}function s(e){if(\"undefined\"!=typeof localStorage&&localStorage.setItem){var n=d(),t=n.slice(),r=l(n,e);void 0!==r&&t.splice(r,1);var s=c(t),f=(0,a.Ps)([{id:e,expiral:(new Date).getTime()+2592e6}].concat(i()(s)),3);localStorage.setItem(u,(0,o.hD)(f))}}function d(){if(\"undefined\"!=typeof localStorage&&localStorage.getItem){var e=localStorage.getItem(u);if(null!==e)try{var n=(0,o.Cp)(e);return function(e){if(!Array.isArray(e))return!1;for(var n=0;n