{"version":3,"file":"static/chunks/pages/product-ec35225336402c37.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/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/"],"sourcesContent":["export function buildContentfullImageUrl(assetUrl, transformations) {\n if (transformations) {\n return 'https:'+ assetUrl + \"?\" + transformations + \"&fm=webp\" + \"&q=75\"; \n } else {\n return 'https:'+ assetUrl + \"?fm=webp\" + \"&q=75\"; \n }\n}\n\nexport function buildContentfullImageUrlByHeight(assetUrl, height = 'auto', transformations = 'c_limit', format = 'auto') {\n return 'https:'+ assetUrl + \"?h=\"+ height + \"&fm=webp\" + \"&q=75\";\n}\n\nexport function buildContentfullImageUrlByWidth(assetUrl, width = 'auto', transformations = 'c_limit', format = 'auto') {\n return 'https:'+ assetUrl + \"?w=\"+ width + \"&fm=webp\" + \"&q=75\"; \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","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, lazy} from 'react'\nimport PropTypes from 'prop-types'\nimport Router from 'next/router';\nimport Block from '../adapters/helpers/Block';\nimport { getCanonicalURL, customJsonstringify } 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 { addBVProductPageCallback } from '../adapters/helpers/Utils';\n\nconst Meta = lazy(() => import('../components/Meta/Meta'));\nconst GTMScriptFunction = lazy(() => import('../components/GTMScriptFunction'));\nconst Loader = lazy(() => import('../adapters/helpers/Loader'));\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 return (\n }>\n \n }>\n \n \n
\n }>{this.renderBody()}\n
\n }>\n \n \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 assetId = 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 = ImageFactory.buildContentfullImageUrlByWidth(assetId, 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 = \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 let lastDigit = Number(barcode.substring(barcode.length - 1));\n let checkSum;\n if (isNaN(lastDigit)) { return false; } // not a valid upc/ean\n\n let arr = barcode.substring(0,barcode.length - 1).split('').reverse();\n let oddTotal = 0, evenTotal = 0;\n\n for (let 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 ","(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+\"&fm=webp&q=75\":\"https:\"+e+\"?fm=webp&q=75\"}n.ZP={buildContentfullImageUrl:r,buildContentfullImageUrlByHeight:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?h=\"+n+\"&fm=webp&q=75\"},buildContentfullImageUrlByWidth:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"auto\";return\"https:\"+e+\"?w=\"+n+\"&fm=webp&q=75\"},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 u(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 a(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 l},Xv:function(){return s},cx:function(){return a},en:function(){return u},yo:function(){return r}})},57503:function(e,n,t){\"use strict\";var r=t(49376),i=t.n(r),l=t(33227),u=t.n(l),o=t(88361),a=t.n(o),s=t(87794),c=t.n(s),d=t(45432),f=function(){function e(){u()(this,e),this.personalAccessToken=\"\",this.deliveryAccessToken=\"LYTyIrx6veW_OgzrCvdBxUPyJT_-7B02fCgfyQRqxrs\",this.spaceId=\"189m7722pndf\",this.environmentId=\"master\",this.deliveryAccessToken&&\"\"!==this.deliveryAccessToken&&(this.contentfulClient=d.createClient({space:this.spaceId,accessToken:this.deliveryAccessToken,environment:this.environmentId}))}var n;return a()(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()(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 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 U},getBazaarVoiceMasterProductName:function(){return V}});var r=t(930),i=t.n(r),l=t(49376),u=t.n(l),o=t(33227),a=t.n(o),s=t(88361),c=t.n(s),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(40483),C=t(8996),x=t(42456),I=t(27952),O=t(57503),A=t(24036),D=t(85893);function j(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 S(e){for(var n=1;n(new Date).getTime()}))}function c(e){if(\"undefined\"!=typeof localStorage&&localStorage.setItem){var n=d(),t=n.slice(),r=a(n,e);void 0!==r&&t.splice(r,1);var c=s(t),f=(0,u.Ps)([{id:e,expiral:(new Date).getTime()+2592e6}].concat(i()(c)),3);localStorage.setItem(l,(0,o.hD)(f))}}function d(){if(\"undefined\"!=typeof localStorage&&localStorage.getItem){var e=localStorage.getItem(l);if(null!==e)try{var n=(0,o.Cp)(e);return function(e){if(!Array.isArray(e))return!1;for(var n=0;n