{"version":3,"file":"static/chunks/5112.d1a23be994b9099c.js","mappings":"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","sources":["webpack://_N_E/./adapters/cloudinary/ImageFactory.js","webpack://_N_E/./adapters/helpers/pagespeedHelper.js","webpack://_N_E/./adapters/model/service/api/svc.js","webpack://_N_E/./adapters/model/service/warrantyExtension/warrantyExtension.helpers.js","webpack://_N_E/./components/Janrain/Janrain/janrainForms/RegisterProductForm/inputs.js","webpack://_N_E/./components/Janrain/components/FormGoalsCheckboxes/FormGoalsCheckboxes.js","webpack://_N_E/./components/Janrain/components/FormInput/FormInput.js","webpack://_N_E/./components/Janrain/components/FormSelect/FormSelect.js","webpack://_N_E/./components/Janrain/components/Button/Button.styles.js","webpack://_N_E/./components/Janrain/components/Button/Button.js","webpack://_N_E/./components/Janrain/components/SubmitButton/SubmitButton.js","webpack://_N_E/./components/Janrain/components/CheckboxInput/CheckboxInput.js","webpack://_N_E/./components/Janrain/components/RadioInput/RadioInput.styles.js","webpack://_N_E/./components/Janrain/components/RadioInput/RadioInput.js","webpack://_N_E/./components/Janrain/components/RegisterProduct/RegisterProduct.js","webpack://_N_E/./components/Janrain/components/ProductManagement/ProductManagement.js","webpack://_N_E/./components/Janrain/Janrain/janrainForms/ProfileForm/inputs.js","webpack://_N_E/./components/Janrain/components/EditProfile/EditProfile.js","webpack://_N_E/./components/Janrain/components/UpdateBenefitPreferences/UpdateBenefitPreferences.js","webpack://_N_E/./components/Janrain/components/FormBirthdate/FormBirthdate.js","webpack://_N_E/./components/Janrain/components/index.js","webpack://_N_E/./components/Janrain/helpers/product.helpers.js","webpack://_N_E/./components/Janrain/helpers/setting.helpers.js","webpack://_N_E/./components/MarkdownText/MarkdownText.js"],"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}\nexport default {\n buildContentfullImageUrl,\n buildContentfullImageUrlByHeight,\n buildContentfullImageUrlByWidth,\n imageContentfullDpr,\n imageContentfullSrc,\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}","import { SvcApiConstants, WarrantyExtensionConstants } from '../../../helpers/Constants';\nimport {\n deleteJanrainCaptureProfileDataFromLocalStorage,\n getJanrainCaptureTokenFromLocalStorage\n} from '../../../../components/Janrain/helpers/localstorage.helpers';\nimport {getJanrainCaptureProfileDataFromLocalStorage} from '../../../../components/Janrain/helpers/localstorage.helpers';\nimport {redirectTo} from '../../../../components/Janrain/helpers/redirect.helpers';\nimport { customJsonstringify } from '../../../helpers/Utils';\n\nexport function generateHeader(token) {\n let header = new Headers();\n header.append(SvcApiConstants.contentType, 'application/x-www-form-urlencoded');\n header.append(SvcApiConstants.ciamInstanceId, process.env.SVC_API_CIAM_INSTANCE_ID);\n\n const Authorization = 'Bearer ' + token;\n\n header.append('Authorization', Authorization);\n header.append('Cache-Control', 'no-cache');\n\n return header;\n}\n\nexport const postReplaceEntity = (object, newJanrainProduct, onSuccess = function(){}, onFailure = function(){}, registerData = {}, newJanrinComboProduct) => {\n const orderId = registerData?.orderId\n const productData = registerData?.data;\n // set order id has productId for the new product -\n // with the orderProductId value to find the traitproduct while delate time\n newJanrainProduct.productId = `${orderId}${WarrantyExtensionConstants.janrinProductIdDelimiter}${productData[WarrantyExtensionConstants.primaryProductIndex]?.orderProductId}`;\n object.traitProductType.push(newJanrainProduct);\n if(newJanrinComboProduct) {\n newJanrinComboProduct.productId = `${orderId}${WarrantyExtensionConstants.janrinProductIdDelimiter}${productData[WarrantyExtensionConstants.comboProductIndex]?.orderProductId}`;\n object.traitProductType.push(newJanrinComboProduct);\n }\n\n const token = getJanrainCaptureTokenFromLocalStorage();\n\n const header = generateHeader(token);\n var params = {\n attributes: customJsonstringify(object),\n type_name: process.env.SVC_API_TYPE_NAME\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_REPLACE, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'ok') {\n onSuccess(orderId);\n } else if (data.stat === 'error') {\n console.error('API entity.replace error:',data.error_description);\n onFailure(orderId);\n if(data.error_description === 'unknown access token') {\n logout();\n }\n } else {\n onFailure(orderId);\n if(data?.error_description) {\n console.error('API entity.replace error:',data.error_description);\n }\n }\n }\n });\n\n}\n\nexport const postReplaceEntityUpdate = (object, onSuccess = function(){}, onFailure = function(){}) => {\n const token = getJanrainCaptureTokenFromLocalStorage();\n\n const header = generateHeader(token);\n var params = {\n attributes: customJsonstringify(object),\n type_name: process.env.SVC_API_TYPE_NAME\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_REPLACE, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'ok') {\n refreshEntity(onSuccess);\n } else if (data.stat === 'error') {\n console.error('API entity.replace error:',data.error_description);\n onFailure();\n if(data.error_description === 'unknown access token') {\n logout();\n }\n } else {\n onFailure();\n if(data?.error_description) {\n console.error('API entity.replace error:',data.error_description);\n }\n }\n }\n });\n\n}\n\nexport const postReplaceGoals = (object, onSuccess = function(){}, onFailure = function(){}) => {\n const token = getJanrainCaptureTokenFromLocalStorage();\n\n const header = generateHeader(token);\n var params = {\n attributes: customJsonstringify(object),\n type_name: process.env.SVC_API_TYPE_NAME\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_REPLACE, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'ok') {\n console.info('replaceEntity');\n onSuccess();\n } else if (data.stat === 'error') {\n console.error('API entity.replace error:',data.error_description);\n onFailure();\n if(data.error_description === SvcApiConstants.unknownAccessToken) {\n logout();\n }\n } else {\n onFailure();\n console.error('API entity.replace error:',data?.error_description);\n }\n }\n });\n};\n\nexport const postReplaceBenefitPreferences = (object, onSuccess = function(){}, onFailure = function(){}) => {\n const token = getJanrainCaptureTokenFromLocalStorage();\n\n const header = generateHeader(token);\n var params = {\n attributes: customJsonstringify(object),\n type_name: process.env.SVC_API_TYPE_NAME\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_REPLACE, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'ok') {\n console.info('replaceEntity');\n onSuccess();\n } else if (data.stat === 'error') {\n console.error('API entity.replace error:',data.error_description);\n onFailure();\n if(data.error_description === 'unknown access token') {\n logout();\n }\n } else {\n onFailure();\n console.error('API entity.replace error:',data.error_description);\n }\n }\n refreshEntity();\n });\n\n}\n\n// Refresh janrainCaptureProfileData localStorage data,\n// we need to do this operation because the svc api do not refresh the state of the widget\nexport const refreshEntity = (onSuccess = function(){}, onFailure = function(){}) => {\n const token = getJanrainCaptureTokenFromLocalStorage();\n\n const header = generateHeader(token);\n\n const requestOptions = {\n method: 'POST',\n headers: header\n };\n let userData = {};\n fetch(process.env.SVC_API_URL_ENTITY, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'error') {\n console.error('API entity error:',data.error_description);\n if(data.error_description === 'unknown access token') {\n logout();\n } else {\n onFailure();\n }\n } else {\n userData = data.result;\n localStorage.setItem('janrainCaptureProfileData', customJsonstringify(userData));\n onSuccess();\n }\n }\n }).catch(error => {\n console.error(error);\n onFailure();\n });\n\n}\n\n// The is an issue an janrain side where the consumerID creation is delayed by around 15 sec.\n// we have to wait for the consumerID before we can allow the user to register a product.\nexport const waitConsumerID = (successRedirectPath) => {\n let janrainProfile = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n let consumerID = janrainProfile.consumerID;\n let attempThreshold = parseInt(process.env.WARRANTY_API_CONSUMER_ID_ATTEMP_TRESHOLD);\n let attempNumber = 0;\n\n // declare recursive function\n function recursiveUserEntityRefresh(consumerID, attempNumber, attempThreshold) {\n refreshEntity();\n janrainProfile = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n if (janrainProfile.consumerID) {\n consumerID = janrainProfile.consumerID;\n }\n attempNumber = attempNumber + 1;\n // time out, we wait\n if (!consumerID && attempNumber < attempThreshold) {\n setTimeout(function() { recursiveUserEntityRefresh(consumerID, attempNumber, attempThreshold) },\n parseInt(process.env.WARRANTY_API_CONSUMER_ID_RECURSIVE_TIMEOUT_TIME));\n } else {\n if (consumerID) {\n redirectTo(successRedirectPath);\n } else {\n // invalidate session\n if (window?.janrain?.capture?.ui?.endCaptureSession) {\n window.janrain.capture.ui.endCaptureSession();\n } else {\n deleteJanrainCaptureProfileDataFromLocalStorage();\n }\n redirectTo(process.env.JANRAIN_LOGIN_PATH);\n }\n }\n }\n\n // call recursive function if consumerID is empty\n if (!consumerID) {\n recursiveUserEntityRefresh(consumerID, attempNumber, attempThreshold);\n } else {\n redirectTo(successRedirectPath);\n }\n}\n\nexport const getPostReplaceEntityObject = (janrainProfileData) => {\n let postObject = {}\n\n // plural\n let traitProductTypeValue = removePluralListId(janrainProfileData?.traitProductType);\n postObject['traitProductType'] = traitProductTypeValue;\n\n let traitBenefitPreferencesValue = removePluralListId(janrainProfileData?.traitBenefitPreferences);\n postObject['traitBenefitPreferences'] = traitBenefitPreferencesValue;\n\n let optInsValue = removePluralListId(janrainProfileData?.optIns);\n postObject['optIns'] = optInsValue;\n\n // string or object\n postObject['traitBrushHeadReminderOptInFlag'] = janrainProfileData?.traitBrushHeadReminderOptInFlag;\n postObject['traitBrushheadReminderDate'] = janrainProfileData?.traitBrushheadReminderDate;\n postObject['primaryProduct'] = janrainProfileData?.primaryProduct;\n postObject['traitPrimaryBrush'] = janrainProfileData?.traitPrimaryBrush;\n\n return postObject;\n}\n\nexport const removePluralListId = (pluralList) => {\n if(pluralList) {\n pluralList.forEach(object => {\n delete object.id;\n });\n }\n return pluralList;\n}\n\nexport const logout = () => {\n if (window?.janrain?.capture?.ui?.endCaptureSession) {\n window.janrain.capture.ui.endCaptureSession();\n redirectTo(process.env.JANRAIN_LOGIN_PATH);\n } else {\n deleteJanrainCaptureProfileDataFromLocalStorage();\n redirectTo(process.env.JANRAIN_LOGIN_PATH);\n }\n}\n\nexport const sendEmailVerification = (email, onSuccess = function(){}, onFailure = function(){}) => {\n let header = new Headers();\n header.append(SvcApiConstants.contentType, 'application/x-www-form-urlencoded');\n header.append(SvcApiConstants.ciamInstanceId, process.env.SVC_API_CIAM_INSTANCE_ID);\n\n var params = {\n flow: process.env.JANRAIN_CAPTURE_FLOW_NAME,\n flow_version: process.env.JANRAIN_CAPTURE_FLOW_VERSION,\n locale: process.env.JANRAIN_CAPTURE_LOCALE,\n form: SvcApiConstants.resendVerificationForm,\n signInEmailAddress: email,\n client_id: process.env.JANRAIN_CAPTURE_CIENT_ID,\n // this redirect is not used in the implementation we are doing.\n // It fails if empty so we are letting the default value from documentation\n redirect_uri: 'http://localhost'\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_SEND_VERIFICATION_EMAIL, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data?.stat === 'ok') {\n onSuccess();\n } else {\n console.error('Double optIn verification email not sent:', data);\n onFailure();\n }\n }).catch(error => {\n console.log('Double optIn verification email not sent:', error);\n onFailure();\n });\n\n}\n\nexport const setEntityOptInStatus = (status, token, onSuccess = function(){}, onFailure = function(){}) => {\n\n // Step 1 get entity with token\n const headerEntity = generateHeader(token);\n\n const requestOptionsEntity = {\n method: 'POST',\n headers: headerEntity\n };\n let userData = {};\n fetch(process.env.SVC_API_URL_ENTITY, requestOptionsEntity)\n .then(response => response.json())\n .then(data => {\n if (data.stat) {\n if (data.stat === 'error') {\n console.error('API entity error:', data.error_description);\n if (data.error_description === 'unknown access token') {\n logout();\n }\n } else {\n userData = data.result;\n localStorage.setItem('janrainCaptureProfileData', customJsonstringify(userData));\n // Step 2: post replace entity call to update optStatus to true\n let postObject = getPostReplaceEntityObject(userData);\n\n // make sure we have one optins\n if (postObject['optIns'][0]) {\n postObject['optIns'][0].optStatus = true; \n if(userData && userData.emailVerified){\n postObject['optIns'][0].choiceDate = userData.emailVerified;\n }\n }\n postEntityOptStatus(postObject, token, onSuccess, onFailure);\n }\n }\n });\n\n}\n\n// We have 3 post replace entity method which are very similar except their callback\n// Might be optimizable to have only one method\nexport const postEntityOptStatus = (postObject, token, onSuccess = function(){}, onFailure = function(){}) => {\n const header = generateHeader(token);\n var params = {\n attributes: customJsonstringify(postObject),\n type_name: process.env.SVC_API_TYPE_NAME\n };\n\n const searchParams = new URLSearchParams();\n for (const prop in params) {\n searchParams.set(prop, params[prop]);\n }\n\n const requestOptions = {\n method: 'POST',\n headers: header,\n body: searchParams\n };\n\n fetch(process.env.SVC_API_URL_REPLACE, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.stat) {\n if(data.stat === 'ok') {\n onSuccess();\n refreshEntity();\n } else if (data.stat === 'error') {\n console.error('API entity.replace error:',data.error_description);\n onFailure();\n if(data.error_description === 'unknown access token') {\n logout();\n }\n } else {\n onFailure();\n if(data?.error_description) {\n console.error('API entity.replace error:',data.error_description);\n }\n }\n }\n });\n\n}\n\n","import {WarrantyExtensionConstants} from '../../../helpers/Constants';\nimport {formatDateToStringValue,customJsonstringify} from '../../../helpers/Utils';\nimport ImageFactory from '../../../cloudinary/ImageFactory';\nimport { optimizeImage } from '../../../helpers/pagespeedHelper';\n\n// FORM HEADERS\nexport function generateHeader() {\n let header = new Headers();\n header.append(WarrantyExtensionConstants.contentType, WarrantyExtensionConstants.json);\n header.append(WarrantyExtensionConstants.accessToken, process.env.WARRANTY_API_ACCESS_TOKEN);\n\n return header;\n}\n\nexport function isOldConsumer(consumerId) {\n consumerId = (consumerId || '').toString();\n return consumerId.startsWith('JR') || consumerId.startsWith('PC');\n}\n\nexport function generateEmailNotificationHeader() {\n let header = new Headers();\n header.append(WarrantyExtensionConstants.contentType, WarrantyExtensionConstants.json);\n header.append(WarrantyExtensionConstants.accessToken, process.env.WARRANTY_API_EMAIL_NOTIFICATION_ACCESS_TOKEN);\n\n return header;\n}\n\nexport const warrantyExtensionUrl = process.env.WARRANTY_API_BASE_URL \n + process.env.WARRANTY_API_VERSION + WarrantyExtensionConstants.warrantyExtensionPath\n + '?' + WarrantyExtensionConstants.programIdParam + process.env.WARRANTY_API_PROGRAM_ID\n + '&' + WarrantyExtensionConstants.localeParam + process.env.WARRANTY_API_LOCALE;\n\nexport const warrantyGetConsumerIdUrl = process.env.WARRANTY_API_BASE_URL \n + process.env.WARRANTY_API_VERSION + WarrantyExtensionConstants.getConsumerPath\n + '?' + WarrantyExtensionConstants.programIdParam + process.env.WARRANTY_API_PROGRAM_ID\n + '&' + WarrantyExtensionConstants.localeParam + process.env.WARRANTY_API_LOCALE;\n\nexport const warrantyExtensionGetProductsByTypeCode = process.env.WARRANTY_API_BASE_URL \n+ process.env.WARRANTY_API_VERSION + WarrantyExtensionConstants.getProductsByTypeCodePath\n+ '?' + WarrantyExtensionConstants.programIdParam + process.env.WARRANTY_API_PROGRAM_ID\n+ '&' + WarrantyExtensionConstants.localeParam + process.env.WARRANTY_API_LOCALE;\n\nexport const warrantyExtensionGetCampaignInfoMaster = process.env.WARRANTY_API_BASE_URL \n+ process.env.WARRANTY_API_VERSION + WarrantyExtensionConstants.getCampaignInfoMaster\n+ '?' + WarrantyExtensionConstants.programIdParam + process.env.WARRANTY_API_PROGRAM_ID\n+ '&' + WarrantyExtensionConstants.localeParam + process.env.WARRANTY_API_LOCALE;\n\nexport const warrantyExtensionGetProductList = process.env.WARRANTY_API_BASE_URL \n+ process.env.WARRANTY_API_VERSION + WarrantyExtensionConstants.getproductListBySeries\n+ '?' + WarrantyExtensionConstants.programIdParam + process.env.WARRANTY_API_PROGRAM_ID\n+ '&' + WarrantyExtensionConstants.localeParam + process.env.WARRANTY_API_LOCALE;\n\nexport const getProductByTypeCode = async (typeCode) => {\n const url = warrantyExtensionGetProductsByTypeCode\n const requestBody = {\n 'sType': Number(typeCode)\n }\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'POST',\n headers: warrantyHeader,\n body: customJsonstringify(requestBody)\n };\n try {\n const response = await fetch(url, requestOptions).then(response => response)\n return response\n } catch (error) {\n console.error('get product by typecode error=>', error)\n return {message: 'Server Error'};\n }\n}\n\nexport const getProductBySeries = async (lstInternSubGroup, lstSeries) => {\n let response = null;\n try {\n const requestBody = {\n lstInternSubGroup: [...lstInternSubGroup],\n lstSeries: [...lstSeries]\n };\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'POST',\n headers: warrantyHeader,\n body: customJsonstringify(requestBody)\n };\n const data = await fetch(warrantyExtensionGetProductList, requestOptions).then(response => response.json())\n if (data.error) {\n console.error('Product Fetch error', data.error)\n } else {\n response = data;\n }\n } catch (error) {\n console.error('series fetch error', error)\n }\n return response;\n};\n\nexport const postWarrantyRegistration = (product, janrainProfile, newJanrainProduct, postWarrantyOnSuccess = function(){}, postWarrantyOnFailure = function(){}) => {\n\n const getConsumerIDSuccess = (product, janrainProfile, newJanrainProduct, consumerID = null, onSuccess = function(){}, onFailure = function(){}) => {\n let registration = {\n program: {\n programId: parseInt(process.env.WARRANTY_API_PROGRAM_ID),\n locale: process.env.WARRANTY_API_LOCALE,\n sourceSystemId: parseInt(process.env.WARRANTY_API_SOURCE_SYSTEM_ID)\n },\n consumer: {\n },\n address: [],\n productOrder: {\n product: [\n {\n productId: WarrantyExtensionConstants.productId,\n productCode: product.primary.typeCode,\n productPurchased: product.primary.longDescription,\n productQuantity: 1,\n productName: product.primary.productName,\n dateOfPurchase: formatDateToStringValue(product.primary.purchaseDate, 'DD/MM/YYYY', 'YYYY-MM-DD'),\n productImageUrl: product.primary.mainAsset\n }\n ]\n }\n }\n\n if(product.secondary){\n registration.productOrder.product.push({\n productId: WarrantyExtensionConstants.productId,\n productCode: product.secondary.typeCode,\n productPurchased: product.secondary.longDescription,\n productQuantity: 1,\n productName: product.secondary.productName,\n dateOfPurchase: formatDateToStringValue(product.secondary.purchaseDate, 'DD/MM/YYYY', 'YYYY-MM-DD'),\n productImageUrl: product.secondary.mainAsset\n })\n }\n if (janrainProfile?.traitProductType?.length == 0) {\n registration.productOrder.product[0].isPrimary = true;\n }\n\n\n // After user create profile. There is a delay to get the consumerID.\n // For that reason we need to give the uuid to identify the user we are registering the product to.\n if (janrainProfile?.uuid) {\n registration.consumer.UUID = janrainProfile?.uuid;\n }\n\n\n // GCS consumerID will be available after first product registration. It works that way on their side.\n // They want us to add it to the call on subsequent product registration.\n if (consumerID) {\n registration.consumer.consumerId = consumerID;\n }\n\n if (janrainProfile?.consumerID || janrainProfile?.uuid) {\n registration.consumer.oneCPId = isOldConsumer(janrainProfile?.consumerID) ? janrainProfile?.consumerID : janrainProfile?.uuid;\n }\n\n if(janrainProfile?.countryId) {\n registration.address.push({\n addressTypeCode: WarrantyExtensionConstants.addressTypeCode,\n countryId: janrainProfile?.countryId\n })\n }\n\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'POST',\n headers: warrantyHeader,\n body: customJsonstringify(registration)\n };\n fetch(warrantyExtensionUrl, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.error) {\n console.error(data.error);\n onFailure();\n } else {\n onSuccess(newJanrainProduct, data);\n }\n })\n .catch((error) => {\n console.error(error);\n onFailure();\n });\n }\n\n getConsumerId(product, janrainProfile, newJanrainProduct, postWarrantyOnSuccess, postWarrantyOnFailure, getConsumerIDSuccess);\n\n}\n\nexport const getCountryId = async (countryValue) => {\n let countryId = -1;\n try {\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'GET',\n headers: warrantyHeader,\n };\n const data = await fetch(warrantyExtensionGetCampaignInfoMaster, requestOptions).then(response => response.json())\n if(data.error) {\n console.error('country ID find error', data.error)\n } else if(Array.isArray(data.programCountriesForAddress) && data.programCountriesForAddress.length > 0) {\n countryId = data.programCountriesForAddress.filter(country => country.countryCode === countryValue)[0].countryId\n } else {\n console.error('country ID not found', data)\n }\n } catch(error) {\n console.error('country ID find error', error)\n }\n return countryId;\n}\n\nexport const postWarrantyRegistrationUpdate = (product, janrainProfile, makePrimary = false, isDelete = false, onSuccess = function(){}, onFailure = function(){}, postObject, onPostReplaceSuccess = function(){}) => {\n let registration = {\n productId: product.gCSProductId,\n orderId: product.id,\n UUID: janrainProfile?.uuid,\n oneCPId: isOldConsumer(janrainProfile?.consumerID) ? janrainProfile?.consumerID : janrainProfile?.uuid,\n isPrimary: makePrimary,\n isDelete: isDelete,\n orderProductId: product?.orderProductId\n }\n\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'PUT',\n headers: warrantyHeader,\n body: customJsonstringify(registration)\n };\n fetch(warrantyExtensionUrl, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.code) {\n if(data.code == 'SUCCESS') {\n onSuccess(postObject, onPostReplaceSuccess);\n } else {\n onFailure(postObject);\n }\n } else {\n console.error(data.error);\n }\n })\n .catch((error) => {\n console.error(error);\n\n });\n}\n\n// Email notification send on congratulation page when clicking resend CTA.\n// Used on FR, DE, NL, UK markets\nexport const postEmailNotification = (janrainProfile, product, callback = null) => {\n // create image url\n const finalTransformations = '';\n const image = { fields: { assetId: product?.mainAsset?.fields?.asset?.fields?.file?.url }};\n const imageUrl = optimizeImage(ImageFactory.imageContentfullSrc(image, finalTransformations));\n\n let emailRequestBody = { email : janrainProfile?.email,\n parameters: [\n {\n name: 'fname',\n value: janrainProfile?.givenName\n }, {\n name: 'lineproduct',\n value: product?.title\n }, {\n name: 'itemurl1',\n value: imageUrl\n }, {\n name: 'productname',\n value: product?.title\n }, {\n name: 'typecode',\n value: product?.typeCode || ''\n }, {\n name: 'dateofpurchase',\n value: product?.traitDate\n }, {\n name: 'dateofregistration',\n value: product?.registrationDate\n }, {\n name: 'warrantyexpirationdate',\n value: product?.warrantyExpirationDate\n }, {\n name: 'email',\n value: janrainProfile?.email\n }\n ],\n campaignId:parseInt(process.env.WARRANTY_API_PROGRAM_ID),\n templateType:process.env.WARRANTY_API_EMAIL_TEMPLATE_TYPE,\n locale:process.env.WARRANTY_API_LOCALE,\n system:process.env.WARRANTY_API_EMAIL_SYSTEM\n }\n\n const warrantyHeader = generateEmailNotificationHeader();\n const requestOptions = {\n method: 'POST',\n headers: warrantyHeader,\n body: customJsonstringify(emailRequestBody)\n };\n fetch(process.env.WARRANTY_API_EMAIL_NOTIFICATION_URL, requestOptions)\n .then(response => response.json())\n .then(data => {\n if (data == null) {\n console.log('No data fetched')\n }\n })\n .catch((error) => {\n console.error('failed to notification send email', error);})\n .finally(() => {\n if (callback) {\n callback();\n }\n });\n}\n\nexport const getConsumerProduct = (onSuccess = function(){}, onFailure = function(){},\n profileData, productCategoryList, warrantyExtensionTime) => {\n const warrantyHeader = generateHeader();\n warrantyHeader.append(WarrantyExtensionConstants.UUID, profileData?.uuid);\n warrantyHeader.append(WarrantyExtensionConstants.oneCPId, profileData?.consumerID);\n\n const requestOptions = {\n method: 'GET',\n headers: warrantyHeader,\n };\n fetch(warrantyExtensionUrl, requestOptions)\n .then(response => response.json())\n .then(data => {\n if(data.error) {\n if (data.error.code == 'PRODUCT_NOT_FOUND' && data.error.statusCode == 400) {\n // user has no product, give empty array to success method.\n onSuccess([], profileData, productCategoryList, warrantyExtensionTime);\n }\n } else if(Array.isArray(data)) {\n onSuccess(data, profileData, productCategoryList, warrantyExtensionTime);\n } else {\n onFailure();\n }\n })\n .catch((error) => {\n onFailure();\n console.error(error);\n })\n}\n\nexport const getConsumerId = (product, janrainProfile, newJanrainProduct, postWarrantyOnSuccess = function(){}, postWarrantyOnFailure = function(){}, getConsumerIDSuccess = function(){}, getConsumerIDFailure = function(){}) => {\n const warrantyHeader = generateHeader();\n warrantyHeader.append(WarrantyExtensionConstants.UUID, janrainProfile?.uuid);\n\n const requestOptions = {\n method: 'GET',\n headers: warrantyHeader,\n };\n fetch(warrantyGetConsumerIdUrl, requestOptions)\n .then(response => response.json())\n .then(data => {\n if (data.error) {\n if (data.error.code == 'CONSUMER_NOT_FOUND' && data.error.statusCode == 400) {\n // user has no consumerID yet, give empty consumerID to success method.\n getConsumerIDSuccess(product, janrainProfile, newJanrainProduct, null, postWarrantyOnSuccess, postWarrantyOnFailure);\n }\n } else if (Array.isArray(data)) {\n let consumerID = data[0].ConsumerId;\n getConsumerIDSuccess(product, janrainProfile, newJanrainProduct, consumerID, postWarrantyOnSuccess, postWarrantyOnFailure);\n } else {\n getConsumerIDFailure();\n console.error(data);\n }\n })\n .catch((error) => {\n getConsumerIDFailure();\n console.error(error);\n })\n}\n\n// Second warranty notification email post. Used on SE, FI, IT markets.\n// Is called on product registration and when resend email CTA is triggered\nexport const postGWEProductWarrantyEmailNotification = (janrainProfile, orderId, callback = null) => {\n let emailRequestBody = {\n programId:parseInt(process.env.WARRANTY_API_PROGRAM_ID),\n locale:process.env.WARRANTY_API_LOCALE,\n janrain : {\n UUID: janrainProfile?.uuid\n },\n user : {\n emailAddress: janrainProfile?.email,\n firstName: janrainProfile?.givenName\n },\n orderId : orderId\n }\n\n const warrantyHeader = generateHeader();\n const requestOptions = {\n method: 'POST',\n headers: warrantyHeader,\n body: customJsonstringify(emailRequestBody)\n };\n fetch(process.env.WARRANTY_API_EMAIL_NOTIFICATION_GWE_URL, requestOptions)\n .then(response => response.json())\n .then(data => {\n if (data == null) {\n console.log('No data fetched');\n }\n })\n .catch((error) => {\n console.error('failed to notification send email', error);})\n .finally(() => {\n if (callback) {\n callback();\n }\n });\n}\n","export const inputs = {\n formName: 'registerProductForm',\n editFormName: 'editProfileForm',\n type: {\n text: 'text',\n date: 'date'\n },\n field: {\n selectProductType: 'selectProductType',\n reminderToReplace: 'reminderToReplace',\n dateOfPurchase: 'dateOfPurchase',\n traitProductType: {\n traitValue: 'traitProductType_traitValue',\n imageUrl: 'traitProductType_imageUrl',\n registrationDate: 'traitProductType_registrationDate',\n purchaseDate: 'traitProductType_purchaseDate'\n },\n registerProductsID: 'RegisterProductsID',\n primaryProduct: {\n traitValue: 'primaryProduct'\n }\n }\n}\n","import React, {useEffect, useState} from 'react';\nimport {CheckboxInput} from '../index';\nimport {inputs} from '../../Janrain/janrainForms/RegisterProductForm/inputs';\nimport PropTypes from 'prop-types';\n\nconst FormGoalsCheckboxes =({oralCareGoals, janrainLabels, setGoalsData, setReminderData, currentGoals, className}) => {\n const [selectedGoals, setSelectedGoals] = useState([]);\n\n const handleGoalSelection = event => {\n const checkbox = event.currentTarget;\n const goal = checkbox.getAttribute('value');\n const isChecked = checkbox.checked;\n let goals = [...selectedGoals];\n if (isChecked && !selectedGoals.includes(goal)) {\n goals.push(goal)\n } else {\n goals = goals.filter(elem => (elem !== goal))\n }\n setGoalsData(goals);\n setSelectedGoals(goals);\n };\n \n useEffect(() => {\n if (currentGoals?.length > 0) {\n setSelectedGoals([...currentGoals]);\n }\n },[currentGoals]);\n\n const handleReminder = checked => {\n setReminderData(checked);\n };\n\n return (\n
\n \n {janrainLabels.reminderToReplaceLabel &&\n {handleReminder(e.target.checked)}} />\n }\n
\n )\n};\n\nFormGoalsCheckboxes.propTypes = {\n oralCareGoals: PropTypes.array,\n janrainLabels: PropTypes.object,\n setGoalsData: PropTypes.func,\n setReminderData: PropTypes.func,\n currentGoals: PropTypes.object,\n className: PropTypes.string\n}\n\nFormGoalsCheckboxes.defaultProps = {\n className: ''\n}\n\nexport default FormGoalsCheckboxes;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst FormInput = ({\n inputType,\n name,\n label,\n value,\n toolTipText,\n checked,\n validationErrorText,\n placeholder,\n halfWidth,\n quarterWidth,\n required,\n ariaDescribedBy,\n onChange,\n onBlur,\n disabled=false\n}) => {\n const [dynamicInputType, setDynamicInputType] = useState(inputType);\n const [isPasswordShown, setIsPasswordShown] = useState(false);\n\n const togglePasswordShowHide = () => {\n dynamicInputType === 'password' ? setDynamicInputType('text') : setDynamicInputType('password');\n setIsPasswordShown(!isPasswordShown);\n };\n\n const isDateInputSupported = () => {\n const input = document.createElement('input');\n const notADateValue = 'not-a-date';\n\n if(input) {\n input.setAttribute('type', 'date');\n input.setAttribute('value', notADateValue);\n }\n\n return ((input) && (input.value !== notADateValue));\n };\n\n useEffect(() => {\n if (inputType === 'date' && !isDateInputSupported()) {\n setDynamicInputType('text');\n }\n }, []);\n\n return (\n
\n \n
\n {inputType === 'date' && isDateInputSupported() ? (\n\n \n ) : (\n \n )}\n { inputType === 'password' &&\n \n }\n
\n {toolTipText &&\n
\n

{toolTipText}

\n
\n }\n {validationErrorText &&\n

\n {validationErrorText}\n

\n }\n
\n )\n};\n\nFormInput.propTypes = {\n value: PropTypes.string,\n name: PropTypes.string.isRequired,\n label: PropTypes.string,\n required: PropTypes.bool,\n placeholder: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n inputType: PropTypes.oneOf(['text', 'email', 'password', 'tel', 'hidden', 'date']).isRequired,\n onChange: PropTypes.func,\n checked: PropTypes.bool,\n validationErrorText: PropTypes.string,\n toolTipText: PropTypes.string,\n halfWidth: PropTypes.bool,\n quarterWidth: PropTypes.bool,\n onBlur: PropTypes.func,\n disabled:PropTypes.bool\n};\n\nFormInput.defaultProps = {\n required: true,\n ariaDescribedBy: ''\n};\n\nexport default FormInput\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nconst FormSelect = ({ dataArray, value, selectLabel, name, onChange, isHalfWidth, ariaLabel, hasInitialValue }) => {\n const options = dataArray.map(el => \n {el.value}\n )\n\n /* eslint-disable jsx-a11y/no-onchange */\n return
\n {selectLabel &&\n \n }\n
\n \n
\n
\n}\n\nFormSelect.defaultProps = {\n isHalfWidth: false,\n hasInitialValue: false\n};\n\nFormSelect.propTypes = {\n dataArray: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n })).isRequired,\n isHalfWidth: PropTypes.bool,\n selectLabel: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n name: PropTypes.string,\n ariaLabel: PropTypes.string,\n hasInitialValue: PropTypes.bool\n}\n\nexport default FormSelect\n","import styled, { keyframes } from 'styled-components'\n\nexport const buttonColors = {\n light: {\n border: '#000000',\n text: '#000000',\n background: 'transparent'\n },\n dark: {\n border: '#000000',\n text: '#FFFFFF',\n background: '#000000'\n }\n}\n\nexport const oppositeColor = (variant) => variant === 'light' ? 'dark' : 'light'\n\nexport const ButtonWrapper = styled.a`\n display: block;\n background: ${({ variant }) => buttonColors[variant].background};\n padding: 10px 20px;\n outline: none;\n border: 2px solid ${({ variant }) => buttonColors[variant].border};\n cursor: pointer;\n font-size: 0.9rem;\n text-align: center;\n text-decoration: none;\n \n &:hover{\n background-color: ${({ variant, disabled }) => buttonColors[disabled ? variant : oppositeColor(variant)].background};\n border-color: ${({ variant, disabled }) => buttonColors[disabled ? variant :oppositeColor(variant)].border};\n }\n \n ${({ disabled }) => disabled && 'cursor: not-allowed;'}\n`\nexport const linkStyle = ` \n font-weight: bold;\n text-decoration: none;\n text-transform: uppercase;\n vertical-align: middle;\n`\n\nexport const ButtonLink = styled.span`\n color: ${({ variant }) => buttonColors[variant].text};\n \n ${ButtonWrapper}:hover & {\n color: ${({ variant, disabled }) => buttonColors[disabled ? variant : oppositeColor(variant)].text};\n }\n \n ${linkStyle}\n`\n\nconst loaderColors = {\n main: '#e2e2e2',\n second: '#545454',\n}\n\nconst spin = keyframes`\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n`\n\nexport const Loader = styled.span`\n border: 4px solid ${loaderColors.main};\n border-radius: 50%;\n border-top: 4px solid ${loaderColors.second};\n width: 9px;\n height: 9px;\n animation: ${spin} 2s linear infinite;\n display: inline-block;\n margin-left: 3%;\n vertical-align: middle;\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n ButtonLink,\n ButtonWrapper,\n Loader,\n} from './Button.styles'\n\nconst Button = ({\n disabled,\n onClick,\n url,\n variant,\n buttonText,\n isProcessing,\n buttonProcessingText,\n}) => \n \n {!isProcessing ? buttonText : buttonProcessingText}\n \n {isProcessing && }\n\n\nconst urlOrOnClickRequired = (props, propName, componentName) => {\n if (!props.onClick && !props.url) {\n return new Error(`One of props 'url' or 'onClick' was not specified in '${componentName}'.`)\n }\n if(props.onClick && typeof props.onClick !== 'function') {\n return new Error(`Invalid prop type of ${propName} supplied to '${componentName}'.`)\n }\n if(props.url && typeof props.url !== 'string') {\n return new Error(`Invalid prop type of ${propName} supplied to '${componentName}'.`)\n }\n}\n\nButton.propTypes = {\n buttonText: PropTypes.string.isRequired,\n url: urlOrOnClickRequired,\n onClick: urlOrOnClickRequired,\n variant: PropTypes.oneOf(['light', 'dark']),\n disabled: PropTypes.bool,\n isProcessing: PropTypes.bool,\n buttonProcessingText: PropTypes.string,\n}\n\nButton.defaultProps = {\n variant: 'light',\n disabled: false\n}\n\nexport default Button\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nconst SubmitButton = (props) => (\n \n);\n\nSubmitButton.propTypes = {\n buttonText: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isSubmitting: PropTypes.bool,\n ariaFormIsSubmitting: PropTypes.string,\n onClick: PropTypes.func\n};\n\nSubmitButton.defaultProps = {\n isSubmitting: false,\n disabled: false\n};\n\nexport default SubmitButton\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\n\nconst CheckboxInput = ({\n label,\n name,\n value,\n checked,\n isBold,\n isSquared,\n onChange,\n isWhite,\n isSmall,\n error,\n errorMessage,\n isRequired,\n className,\n isRound,\n}) => {\n const [isChecked, setChecked] = useState(checked);\n const onChangeEvent = (e) => {\n setChecked(!isChecked);\n if (onChange) {\n onChange(e);\n }\n };\n\n useEffect(() => {\n setChecked(checked);\n }, [checked]);\n\n return (\n
\n onChangeEvent(e)}\n type='checkbox'\n />\n \n \n \n \n\n {(error && errorMessage) &&\n

{errorMessage}

\n }\n
\n )\n};\n\nCheckboxInput.defaultProps = {\n checked: false,\n isBold: false,\n isSquared: false,\n isWhite: false,\n error: false,\n className: '',\n isRound: false\n};\n\nCheckboxInput.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool\n ]),\n isBold: PropTypes.bool,\n isSquared: PropTypes.bool,\n isWhite: PropTypes.bool,\n isSmall: PropTypes.bool,\n isRequired: PropTypes.bool,\n error: PropTypes.bool,\n errorMessage: PropTypes.string,\n onChange: PropTypes.func,\n className: PropTypes.string,\n isRound: PropTypes.bool,\n};\n\nexport default CheckboxInput\n","import styled from 'styled-components'\n\nconst colors = {\n darkGray: '#333333',\n}\n\nexport const RadioWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction:row;\n margin-bottom: 2%;\n \n @media(min-width: 768px){\n margin-bottom: 2%;\n }\n`\n\nexport const InputLabel = styled.label`\n text-transform: uppercase;\n font-size: 0.9rem;\n margin: 0.3% 0;\n`\n\nexport const Input = styled.input`\n background: none;\n color: ${colors.darkGray};\n font-size: 0.9rem;\n padding: 2%;\n border: 0;\n cursor: pointer;\n \n @media(min-width: 768px){\n margin-left: 0;\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { RadioWrapper, InputLabel, Input } from './RadioInput.styles'\n\nconst RadioInput = ({\n name,\n label,\n value,\n checked,\n onChange\n}) => (\n \n \n {label}\n \n)\n\nRadioInput.defaultProps = {\n checked: false,\n}\n\nRadioInput.propTypes = {\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n}\n\nexport default RadioInput\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport dynamic from 'next/dynamic';\nimport throttle from 'lodash/throttle';\nimport {FormInput, FormSelect, SubmitButton} from '../index';\nimport {inputs} from '../../Janrain/janrainForms/RegisterProductForm/inputs';\nimport {formatDate} from '../../../../adapters/helpers/Utils';\nimport {Markdown} from '../../../MarkdownText/MarkdownText';\nimport {getProductVariantName} from '../../helpers/product.helpers';\nconst Image = dynamic(() => import('../../../Image/Image'));\nconst Icon = dynamic(() => import('../../../Icon/Icon'));\nconst DotNav = dynamic(() => import('../../../DotNav/DotNav'));\n\nconst RegisterProduct = ({janrainLabels, dateOfPurchaseDisclaimer, dateOfPurchaseValidation, productCategoryList, productTypes, receiptPicture, setProductData, isCreatingProfile, setFormValidated, validPurchaseTimeWindow, warrantyExtensionTime, isGCSDown, formValidated, isSubmitting}) => {\n\n const [currentPage, setCurrentPage] = useState(0);\n const [numCarouselPages, setNumCarouselPages] = useState(0);\n const [currentProductList, setCurrentProductList] = useState([]);\n const [currentProductCategory, setCurrentProductCategory] = useState('');\n const [activeProductID, setActiveProductID] = useState(null);\n const [dateErrorText, setDateErrorText] = useState('');\n const [noWarrantyError, setNoWarrantyError] = useState('');\n const [productSelected, setProductSelected] = useState(false);\n const productCarouselRef = useRef(null);\n const dotNavRef = useRef(null);\n const locale = process.env.JANRAIN_CAPTURE_LOCALE;\n const commonControlBtnIconProps = {\n name: 'thinChevronDown',\n size: 2.4\n };\n\n const updateNumCarouselPages = () => {\n if (window && productCarouselRef?.current) {\n const carousel = productCarouselRef.current;\n const children = carousel.children;\n let fullCarouselWidth = 0;\n\n for(let i = 0; i < children.length; i++) {\n const element = children[i];\n\n let elementWidth = element.offsetWidth;\n const style = getComputedStyle(element);\n elementWidth += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n\n fullCarouselWidth += elementWidth;\n }\n\n if (children?.length % 3 === 1) {\n setNumCarouselPages(Math.ceil(fullCarouselWidth / carousel.offsetWidth));\n } else {\n setNumCarouselPages(Math.round(fullCarouselWidth / carousel.offsetWidth));\n }\n }\n };\n\n useEffect(() => {\n const handleResize = throttle(updateNumCarouselPages, 100);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n }\n });\n\n useEffect(() => {\n updateNumCarouselPages();\n }, [currentProductList]);\n\n const onScroll = useCallback(\n event => {\n if (!productCarouselRef.current) {\n return;\n }\n\n const currentRatio = event.target.scrollLeft / productCarouselRef.current.clientWidth;\n const min = Math.floor(currentRatio);\n\n let currentPosition = currentRatio < (min + 0.3) ? min : min + 1;\n currentPosition = Math.max(0, currentPosition);\n currentPosition = Math.min(currentProductList.length, currentPosition);\n\n setCurrentPage(currentPosition);\n },\n [productCarouselRef.current],\n );\n\n const handleDotClick = useCallback(i => {\n if(productCarouselRef.current) {\n const nextY = productCarouselRef.current.clientWidth * i;\n if(productCarouselRef.current.scrollTo) {\n productCarouselRef.current.scrollTo({ left: nextY, behavior: 'smooth'});\n } else {\n productCarouselRef.current.scrollLeft = nextY;\n }\n }\n }, []);\n\n const handleClick = event => {\n if (dotNavRef?.current && productCarouselRef?.current) {\n let activePageIndex = parseInt(dotNavRef.current.querySelector('.ob-dot-nav__item--active .ob-dot-nav__button').dataset.index, 10);\n const clickedButton = event.currentTarget.dataset.controlButton;\n if (clickedButton === 'next' && activePageIndex + 1 < numCarouselPages) {\n activePageIndex = activePageIndex + 1;\n } else if (clickedButton === 'prev' && activePageIndex - 1 >= 0) {\n activePageIndex = activePageIndex - 1;\n }\n const nextY = productCarouselRef.current.clientWidth * activePageIndex;\n if (productCarouselRef.current.scrollTo) {\n productCarouselRef.current.scrollTo({ left: nextY, behavior: 'smooth'});\n } else {\n productCarouselRef.current.scrollLeft = nextY;\n }\n }\n };\n\n const handleProductSelectClick = (productId, hasWarranty) => {\n if(hasWarranty) {\n setActiveProductID(productId);\n setProductSelected(true);\n }\n };\n\n const handleFormSelect = event => {\n event.stopPropagation();\n const value = event.currentTarget.value;\n let productVariantList = [];\n productCategoryList.forEach(category => {\n if (category.fields.name !== value) {\n return;\n }\n if (category?.fields?.productOverviewList) {\n category?.fields?.productOverviewList.forEach(productOverview => {\n productOverview.fields.productVariants.forEach(productVariant => {\n if(productVariant?.fields?.displayJanrainProduct === true) {\n let janrainProductId = productVariant?.fields?.sku;\n if(productVariant?.fields?.janrainProductId) {\n janrainProductId = productVariant?.fields?.janrainProductId;\n }\n productVariant.fields['productId'] = janrainProductId;\n productVariant.fields['displayName'] = productVariant?.fields?.name;\n if(productVariant?.fields?.shortTitle) {\n productVariant.fields['displayName'] = productVariant?.fields?.shortTitle;\n }\n productVariantList.push(productVariant);\n }\n });\n });\n setCurrentProductList(productVariantList);\n } else {\n setNoWarrantyError(janrainLabels.warrantyErrorLabel);\n setCurrentProductList([]);\n }\n });\n setCurrentProductCategory(value);\n };\n\n const validateDate = (inputValue) => {\n const regex = new RegExp(dateOfPurchaseValidation.fields.pattern);\n\n let inputDate = {};\n const currentDate = new Date();\n const validPurchaseWindow = new Date();\n validPurchaseWindow.setFullYear(validPurchaseWindow.getFullYear() - validPurchaseTimeWindow);\n\n switch (inputValue.indexOf('/')) {\n case 2: {\n let year = inputValue.substr(inputValue.length - 4);\n let month = inputValue.substring(3, 5);\n let day = inputValue.substring(0, 2);\n inputDate = new Date(`${year}-${month}-${day}T00:00:00`);\n break;\n }\n case 4: {\n inputDate = new Date(inputValue);\n break;\n }\n default: {\n inputDate = currentDate;\n }\n }\n\n let isValid = regex.test(inputValue) && inputDate < currentDate && inputDate.getFullYear() >= validPurchaseWindow.getFullYear();\n\n if (isValid) {\n setDateErrorText('');\n const cmsProductInfo = currentProductList.find(elem => elem?.fields?.productId === activeProductID);\n const productName = getProductVariantName(cmsProductInfo);\n const mainAsset = cmsProductInfo?.fields?.mainAsset;\n const today = new Date();\n // Get the date for the end of the month, one year later\n let warrantyExpirationDate = new Date(inputDate.getFullYear() + warrantyExtensionTime, inputDate.getMonth() + 1, inputDate.getDate()); // 0 gets the last day of the month\n\n let product = {\n traitDate: formatDate(inputValue, '/', 'dd-mm-yyyy'),\n purchaseDate: formatDate(inputValue, '/', 'dd-mm-yyyy'),\n productId: activeProductID,\n gCSProductId: cmsProductInfo?.fields?.gCSProductId,\n typeCode: cmsProductInfo?.fields?.typeCode,\n productName,\n mainAsset,\n warrantyExpirationDate: formatDate(warrantyExpirationDate, '/', 'dd-mm-yyyy'),\n warrantyExpirationDateInText: warrantyExpirationDate.toLocaleString(locale, { month: 'long', year: 'numeric'}),\n category: currentProductCategory,\n registrationDate: formatDate(today, '/', 'dd-mm-yyyy'),\n timeStamp: today.toUTCString()\n };\n\n setProductData(product);\n setFormValidated(true);\n } else {\n setDateErrorText(dateOfPurchaseValidation.fields.errorMessage);\n setFormValidated(false);\n }\n\n };\n\n const handleDateOfPurchase = event => {\n let value = event.currentTarget.value;\n if (event.currentTarget.type !== 'date') {\n // This autopopulates slashes in case input[type=\"date\"] isn't supported\n // eslint-disable-next-line no-useless-escape\n event.currentTarget.value = value.replace(/^(\\d\\d)(\\d)$/g,'$1/$2').replace(/^(\\d\\d\\/\\d\\d)(\\d+)$/g,'$1/$2').replace(/[^\\d\\/]/g,'');\n } else {\n value = value.replace(/-/g, '/')\n }\n if (activeProductID === null || activeProductID === '') {\n setDateErrorText(janrainLabels.noProductSelectedLabel);\n } else {\n validateDate(value);\n }\n };\n\n /* eslint-disable jsx-a11y/click-events-have-key-events */\n /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\n return (\n
\n \n\n {currentProductList?.length > 0 ? (\n <>\n
\n

{janrainLabels.selectProductLabel}

\n
    \n {currentProductList.map((productVariant, index) => (\n handleProductSelectClick(productVariant?.fields?.productId, productVariant?.fields?.hasWarranty)} >\n { productVariant.fields.mainAsset &&\n
    \n \n

    \n

    \n
    \n }\n { !productVariant.fields.hasWarranty &&\n

    \n {janrainLabels.noProductWarrantyLabel}\n

    \n }\n { productVariant.fields.hasWarranty &&\n
    \n \n
    \n }\n\n \n ))}\n
\n {numCarouselPages > 1 &&\n
\n \n \n
\n \n
\n
\n }\n
\n {productSelected &&\n
\n
\n \n
\n \n
\n {!isCreatingProfile && !isGCSDown &&\n \n }\n {!isCreatingProfile && isGCSDown &&\n

{janrainLabels.gcsDownErrorMessage}

\n }\n
\n \n
\n }\n \n ) : (\n noWarrantyError !== '' &&

{noWarrantyError}

\n )}\n
\n )\n};\n\nexport default RegisterProduct;\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport dynamic from 'next/dynamic';\nimport Modal from 'react-modal';\nimport {isObjectEmpty, toggleScroll,customJsonstringify} from '../../../../adapters/helpers/Utils';\nimport { WarrantyExtensionConstants } from '../../../../adapters/helpers/Constants';\nimport throttle from 'lodash/throttle';\nimport {\n removeProductFromDisplayedList, removeProductFromJanrainList \n} from './../../helpers/product.helpers';\nimport {getPostReplaceEntityObject} from '../../../../adapters/model/service/api/svc';\nimport {postWarrantyRegistrationUpdate} from '../../../../adapters/model/service/warrantyExtension/warrantyExtension.helpers';\nimport {\n deleteIsCreatingAccountFromLocalStorage, getJanrainCaptureProfileDataFromLocalStorage,\n} from '../../helpers/localstorage.helpers';\nimport {\n postReplaceEntityUpdate\n} from '../../../../adapters/model/service/api/svc';\nimport { optimizeImage } from '../../../../adapters/helpers/pagespeedHelper';\nconst MarkdownText = dynamic(() => import('../../../MarkdownText/MarkdownText'));\nconst Eyebrow = dynamic(() => import('../../../Eyebrow/Eyebrow'));\nconst Image = dynamic(() => import('../../../Image/Image'));\nconst Button = dynamic(() => import('../../../Button/Button'));\nconst Icon = dynamic(() => import('../../../Icon/Icon'));\nconst DotNav = dynamic(() => import('../../../DotNav/DotNav'));\nconst Label = dynamic(() => import('../../../Label/Label'));\nconst ResponsiveImage = dynamic(() => import('../../../ResponsiveImage/ResponsiveImage'));\nimport Link from 'next/link';\n\nconst ProductManagement = ({oralbProductList, profileProductManagementTab, commonLabels, customStyles, closeModalTimeoutMS, setOralbProductList, isGCSAPIDown}) => {\n const [currentPage, setCurrentPage] = useState(0);\n const [numCarouselPages, setNumCarouselPages] = useState(0);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [lastScroll, setLastScroll] = useState(0);\n const [requestedProduct, setRequestedProduct] = useState({});\n const [currentProduct, setCurrentProduct] = useState({});\n const [isDeleting, setIsDeleting] = useState(false);\n const [isProgress, setIsProgress] = useState(false);\n const productCarouselRef = useRef(null);\n const dotNavRef = useRef(null);\n const viewWarrantyLink = profileProductManagementTab?.viewWarrantyLink?.fields;\n const registeredProductLimit = profileProductManagementTab?.registeredProductLimit;\n const dummyImage = profileProductManagementTab?.dummyImage;\n\n const janrainLabels = {\n title: profileProductManagementTab?.title,\n profileIntroText: profileProductManagementTab?.profileIntroText,\n productManagementText: profileProductManagementTab?.productManagementText,\n primaryButtonLabel: profileProductManagementTab?.primaryButtonLabel?.fields?.text,\n makePrimaryButtonLabel: profileProductManagementTab?.makePrimaryButtonLabel?.fields?.text,\n deleteLabel: profileProductManagementTab?.delete?.fields?.text,\n registeredOn: profileProductManagementTab?.registeredOn?.fields?.text,\n registerProductLinkGwe: profileProductManagementTab?.registerProductLinkGwe,\n tryTheAppTitle: profileProductManagementTab?.tryTheAppTitle,\n tryTheAppText: profileProductManagementTab?.tryTheAppText,\n downloadOnAppStore: profileProductManagementTab?.downloadOnAppStore,\n downloadOnPlayStore: profileProductManagementTab?.downloadOnPlayStore,\n productManagementModalTitle: profileProductManagementTab?.productManagementModalTitle?.fields?.text,\n deleteProductModalTitle: profileProductManagementTab?.deleteProductModalTitle?.fields?.text,\n productManagementModalSubtitle: profileProductManagementTab?.productManagementModalSubtitle?.fields?.text,\n productManagementModalConfirm: profileProductManagementTab?.productManagementModalConfirm?.fields?.text,\n registeredProductLimitLabel: profileProductManagementTab?.registeredProductLimitLabel?.fields?.text,\n gcsDownErrorMessage: profileProductManagementTab?.gcsDownErrorMessage?.fields?.text,\n previousLabel: profileProductManagementTab?.previousLabel?.fields?.text,\n nextLabel: profileProductManagementTab?.nextLabel?.fields?.text,\n ...commonLabels\n };\n\n const commonControlBtnIconProps = {\n name: 'thinChevronDown',\n size: 2.4\n };\n\n const updateNumCarouselPages = () => {\n if (window && productCarouselRef?.current) {\n const carousel = productCarouselRef.current;\n const children = carousel.children;\n let fullCarouselWidth = 0;\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n\n let elementWidth = element.offsetWidth;\n const style = getComputedStyle(element);\n elementWidth += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n\n fullCarouselWidth += elementWidth;\n }\n // This fixes an issue where the result of \"fullCarouselWidth / carousel.offsetWidth\" was a low decimal point\n // and created less carousel pages than expected\n if (oralbProductList?.length % 3 === 1) {\n setNumCarouselPages(Math.ceil(fullCarouselWidth / carousel.offsetWidth));\n } else {\n setNumCarouselPages(Math.round(fullCarouselWidth / carousel.offsetWidth));\n }\n }\n };\n\n useEffect(() => {\n const handleResize = throttle(updateNumCarouselPages, 100);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n }\n });\n\n useEffect(() => {\n updateNumCarouselPages();\n }, []);\n\n useEffect(() => {\n if (!isObjectEmpty(oralbProductList)) {\n const product = oralbProductList.find(e => e.isPrimary);\n setCurrentProduct(product);\n }\n if (document.querySelector('.js-modal-container')) {\n Modal.setAppElement('.js-modal-container');\n }\n }, []);\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n }\n },\n [lastScroll]\n );\n\n useEffect(() => {\n toggleScroll(isModalOpen, lastScroll);\n }, [isModalOpen]);\n\n useEffect(() => {\n closeModal();\n updateNumCarouselPages();\n }, [oralbProductList]);\n\n const onScroll = useCallback(\n event => {\n if(!productCarouselRef.current) {\n return;\n }\n\n const currentRatio = event.target.scrollLeft / productCarouselRef.current.clientWidth;\n const min = Math.floor(currentRatio);\n\n let currentPosition = currentRatio < (min + 0.3) ? min : min + 1;\n currentPosition = Math.max(0, currentPosition);\n currentPosition = Math.min(oralbProductList.length, currentPosition);\n\n setCurrentPage(currentPosition);\n },\n [productCarouselRef.current],\n );\n\n const handleDotClick = useCallback(i => {\n if(productCarouselRef.current) {\n const nextY = productCarouselRef.current.clientWidth * i;\n if(productCarouselRef.current.scrollTo) {\n productCarouselRef.current.scrollTo({ left: nextY, behavior: 'smooth'});\n } else {\n productCarouselRef.current.scrollLeft = nextY;\n }\n }\n }, []);\n\n const handleClick = event => {\n if (dotNavRef?.current && productCarouselRef?.current) {\n let activePageIndex = parseInt(dotNavRef.current.querySelector('.ob-dot-nav__item--active .ob-dot-nav__button').dataset.index, 10);\n const clickedButton = event.currentTarget.dataset.controlButton;\n if (clickedButton === 'next' && activePageIndex + 1 < numCarouselPages) {\n activePageIndex = activePageIndex + 1;\n } else if (clickedButton === 'prev' && activePageIndex - 1 >= 0) {\n activePageIndex = activePageIndex - 1;\n }\n const nextY = productCarouselRef.current.clientWidth * activePageIndex;\n if (productCarouselRef.current.scrollTo) {\n productCarouselRef.current.scrollTo({ left: nextY, behavior: 'smooth'});\n } else {\n productCarouselRef.current.scrollLeft = nextY;\n }\n }\n };\n\n const handleScroll = useCallback(\n () => {\n if (!document.body.classList.contains('noScroll')) {\n setLastScroll(window.pageYOffset);\n }\n }\n );\n\n const closeModal = () => {\n setIsModalOpen(false);\n\n // Needed so the state only updates once the modal is closed and not during\n setTimeout(() => {\n setRequestedProduct({});\n setIsDeleting(false);\n }, closeModalTimeoutMS)\n };\n\n const openModal = event => {\n event.preventDefault();\n const product = JSON.parse(event.currentTarget.dataset.custom);\n setRequestedProduct(product);\n setIsModalOpen(true);\n };\n\n const deleteItem = () => {\n setIsProgress(true);\n const janrainProfileData = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n const newLocalStorageProductList = removeProductFromJanrainList(janrainProfileData.traitProductType, requestedProduct.id, requestedProduct.orderProductId);\n const newDisplayedProductList = removeProductFromDisplayedList(oralbProductList, requestedProduct.id, requestedProduct.orderProductId);\n // remove id from localStorage product. /entity.replace doesn't accept them. A new id will be generated.\n newLocalStorageProductList.forEach(product => {\n delete product.id;\n });\n\n let postObject = getPostReplaceEntityObject(janrainProfileData);\n postObject['traitProductType'] = newLocalStorageProductList;\n\n //remove primary product attributes\n if(requestedProduct?.isPrimary) {\n if(Array.isArray(newDisplayedProductList) && newDisplayedProductList.length > 0) {\n const oldestProductIndex = WarrantyExtensionConstants.janrinProfileOldestProductIndex;\n const oldestProduct = newDisplayedProductList[oldestProductIndex];\n const primaryProductSku = oldestProduct.productId;\n postObject['primaryProduct'] = primaryProductSku + '_' + oldestProduct.purchaseDate;\n const traitPrimaryBrushValue = {\n traitValue: null,\n productTypeCode : oldestProduct.typeCode\n }\n postObject['traitPrimaryBrush'] = traitPrimaryBrushValue;\n postWarrantyRegistrationUpdate(oldestProduct, janrainProfileData, true, false);\n newDisplayedProductList[oldestProductIndex].isPrimary = true;\n } else {\n postObject['primaryProduct'] = '';\n postObject['traitPrimaryBrush'] = {};\n }\n }\n\n const postReplaceSuccess = () => {\n setIsProgress(false);\n };\n // GCS post, callback janrain entity update on success\n postWarrantyRegistrationUpdate(requestedProduct, janrainProfileData, false, true, postReplaceEntityUpdate, function(){}, postObject, postReplaceSuccess);\n setOralbProductList(newDisplayedProductList);\n };\n\n const makePrimary = () => {\n setIsProgress(true);\n const janrainProfileData = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n let postObject = getPostReplaceEntityObject(janrainProfileData);\n\n const primaryProductSku = requestedProduct.productId;\n\n postObject['primaryProduct'] = primaryProductSku + '_' + requestedProduct.purchaseDate;\n const traitPrimaryBrushValue = {\n traitValue: null,\n productTypeCode : requestedProduct.typeCode\n }\n postObject['traitPrimaryBrush'] = traitPrimaryBrushValue;\n\n const postReplaceSuccess = () => {\n setIsProgress(false);\n };\n postWarrantyRegistrationUpdate(requestedProduct, janrainProfileData, true, false, postReplaceEntityUpdate, function(){}, postObject, postReplaceSuccess);\n // mark the previous primary product as non primary\n if(Array.isArray(oralbProductList)) {\n const primaryProducts = oralbProductList.filter((product) => product?.isPrimary);\n const previousPrimaryProduct = Array.isArray(primaryProducts) && primaryProducts.length > 0 && primaryProducts[0];\n previousPrimaryProduct && postWarrantyRegistrationUpdate(previousPrimaryProduct, janrainProfileData, false, false);\n }\n \n const newProductList = [];\n let primarySet = false;\n for (let i = 0; i < oralbProductList.length; i++) {\n const product = oralbProductList[i];\n if (!primarySet && product.productId === requestedProduct.productId &&\n product.orderProductId === requestedProduct.orderProductId &&\n product.id === requestedProduct.id) {\n product.isPrimary = true;\n primarySet = true;\n } else {\n product.isPrimary = false;\n }\n newProductList.push(product);\n }\n setOralbProductList(newProductList);\n };\n\n return (\n
\n \n {janrainLabels.title}\n \n {isProgress &&
}\n {!isObjectEmpty(oralbProductList) &&\n
\n
    \n {oralbProductList.map((product, index) => (\n
  • \n
    \n
    \n {product?.imageUrl ?\n {product?.name :\n }\n
    \n

    \n
    \n
    \n \n {janrainLabels.registeredOn + ' ' + product?.traitDate}\n \n
    \n {product.isPrimary ?\n \n {janrainLabels.primaryButtonLabel}\n \n :\n \n {janrainLabels.makePrimaryButtonLabel}\n \n }\n {\n setIsDeleting(true);\n openModal(e);\n }}\n disabled={isProgress}\n className={'ob-product-management__product-button'}>\n {janrainLabels.deleteLabel}\n \n
    \n
    \n
  • \n ))}\n
\n\n {numCarouselPages > 1 &&\n
\n \n \n
\n \n
\n
\n }\n
\n }\n {!isGCSAPIDown &&\n
\n {!isObjectEmpty(oralbProductList) && oralbProductList.length >= registeredProductLimit ? (\n <>\n \n {janrainLabels.registerProductLinkGwe?.fields?.title}\n \n {janrainLabels.registeredProductLimitLabel}\n \n ) : (\n \n {janrainLabels.registerProductLinkGwe?.fields?.title}\n \n )}\n
\n }\n\n {isGCSAPIDown &&\n

{janrainLabels.gcsDownErrorMessage}

\n }\n\n
\n {janrainLabels.tryTheAppTitle}\n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n\n \n
\n
\n

\n {isDeleting ? (\n

\n { !isDeleting && currentProduct?.cmsProductInfo?.title &&\n

\n \n

\n }\n
\n
\n \n {janrainLabels.productManagementModalConfirm}\n \n \n {janrainLabels.modalCancelButton}\n \n
\n
\n \n
\n )\n};\n\nexport default ProductManagement;\n","export const inputs = {\n formName: 'editProfileForm',\n type: {\n text: 'text',\n email: 'email',\n radio: 'radio',\n date: 'date',\n hidden: 'hidden',\n phone: 'tel'\n },\n field: {\n firstName: 'firstName',\n lastName: 'lastName',\n emailAddress: 'emailAddress',\n phone: 'phone',\n addressPostalCode: 'addressPostalCode',\n dateOfBirth: 'dateOfBirth',\n addressCountry: 'addressCountry',\n birthdate: {\n dateselect_month: 'birthdate[dateselect_month]',\n dateselect_year: 'birthdate[dateselect_year]',\n dateselect_day: 'birthdate[dateselect_day]'\n },\n traitProductType: {\n traitValue: 'traitProductType_traitValue',\n imageUrl: 'traitProductType_imageUrl',\n registrationDate: 'traitProductType_registrationDate'\n },\n traitBenefitPreferences: 'traitBenefitPreferences',\n traitBrushHeadReminderOptInFlag: 'traitBrushHeadReminderOptInFlag'\n }\n}\n","import React, {useEffect, useState} from 'react';\nimport dynamic from 'next/dynamic';\nimport PropTypes from 'prop-types';\nimport {inputs} from '../../Janrain/janrainForms/ProfileForm/inputs';\nimport { getJanrainCaptureProfileDataFromLocalStorage } from '../../helpers/localstorage.helpers';\nimport { getPostReplaceEntityObject, postReplaceBenefitPreferences } from '../../../../adapters/model/service/api/svc';\nimport {FormBirthdate, FormSelect, SubmitButton} from '../index';\nimport {CountryCode, Constants} from '../../../../adapters/helpers/Constants';\nimport {setMonths, setYears} from '../../../../adapters/helpers/Utils';\nimport { CheckboxInput } from '../../components';\nimport Modal from 'react-modal';\nimport useJanrainGlobalState from '../../Janrain/janrainForms/useJanrainGlobalState';\nconst FormInput = dynamic(() => import('../FormInput/FormInput'));\nconst Button = dynamic(() => import('../../../Button/Button'));\n\nconst EditProfile = ({profileStore, errors, form, userData, profileEditTab, commonLabels, janrainErrors, formValidated, customStyles, closeModalTimeoutMS}) => {\n\n const [isFormProcessing, setFormProcessing] = useState(false);\n const [arrMonths, setArrMonths] = useState([]);\n const [arrYear, setArrYear] = useState([]);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(false);\n const [areChangesSaved, setAreChangesSaved] = useState(false);\n const [arrCountries, setArrCountries] = useState([]);\n const [globalState, setGlobalState] = useJanrainGlobalState();\n \n const optStatus = userData?.optIns && userData?.optIns[Constants.optinIdx]?.optStatus;\n const [emailOptStatus, setEmailOptStatus] = useState(optStatus);\n\n const postalCodeValidationRegex = profileEditTab?.postalCodeValidationRegex?.fields?.pattern;\n const postalCodeSecondPattern = profileEditTab?.postalCodeValidationRegex?.fields?.secondPattern;\n const minimumAge = profileEditTab?.minimumAge || 18;\n\n const janrainLabels = {\n title: profileEditTab?.title,\n modalCancelButton: profileEditTab?.modalCancelButton?.fields?.text,\n allFieldsRequiredLabel: profileEditTab?.allFieldsRequiredLabel?.fields?.text,\n firstName: profileEditTab?.firstName?.fields?.text,\n lastName: profileEditTab?.lastName?.fields?.text,\n email: profileEditTab?.email?.fields?.text,\n dateOfBirth: profileEditTab?.dateOfBirth?.fields?.text,\n whyWeAskForDateOfBirth: profileEditTab?.whyWeAskForDateOfBirth,\n whyWeAskForDateOfBirthLegal: profileEditTab?.whyWeAskForDateOfBirthLegal,\n registerDateOfBirthPlaceholder: profileEditTab?.registerDateOfBirthPlaceholder?.fields?.text,\n dateValidationRegex: profileEditTab?.dateValidationRegex,\n monthSelectLabel: profileEditTab?.monthSelectLabel?.fields?.text,\n yearSelectLabel: profileEditTab?.yearSelectLabel?.fields?.text,\n postCode: profileEditTab?.postCode?.fields?.text,\n country: profileEditTab?.country?.fields?.text,\n changePasswordLink: profileEditTab?.changePasswordLink,\n emailDisclaimer: profileEditTab?.profileEmailAccountDisclaimer,\n ...commonLabels\n };\n\n const regExpPattern = (patternFormat) => {\n const pattern = new RegExp(patternFormat);\n return pattern;\n }\n\n const validPostalCode = function(input) {\n const pattern = regExpPattern(postalCodeValidationRegex);\n if(pattern.test(input)) {\n return true; \n } else {\n const secPattern = regExpPattern(postalCodeSecondPattern);\n return secPattern.test(input);\n }\n };\n\n // Is duplicated in register form, we try not to, but we need variable from the block context/scope\n const validAge = function(input) {\n let birthMonth = profileStore.form['birthdate[dateselect_month]'] - 1 || 0;\n const currentDate = new Date();\n const birthDate = new Date(input, birthMonth);\n // 31536000000 is the number of milisec in a year\n const age = (currentDate - birthDate) / 31536000000;\n return minimumAge <= age;\n };\n\n useEffect(() => {\n if (formValidated) {\n setIsSubmitDisabled(false);\n } else {\n setIsSubmitDisabled(true);\n }\n });\n\n useEffect (() => {\n profileStore.clear();\n profileStore.errorTexts = janrainErrors;\n profileStore.rehydrateForProfileForm(userData);\n setArrMonths(setMonths(janrainLabels.monthSelectLabel));\n setArrYear(setYears(janrainLabels.yearSelectLabel));\n if (document.querySelector('.js-modal-container')) {\n Modal.setAppElement('.js-modal-container');\n }\n\n profileStore.validation.addressPostalCode.push({\n error: 'postalCodeIsRequired',\n fn: validPostalCode\n });\n\n // dynamic minimumAge validation validation\n profileStore.validation['birthdate[dateselect_year]'].push({\n error: 'yearMustBeOldEnough',\n fn: validAge\n });\n\n const countries = profileEditTab?.countries;\n if (countries) {\n let newCountriesArr = [];\n for (let i = 0; i < countries.length; i++) {\n const country = countries[i].fields.text;\n const countryCode = CountryCode[country] || country;\n newCountriesArr.push({value: country, id: countryCode});\n }\n setArrCountries(newCountriesArr);\n }\n }, []);\n\n const handleEditProfileSendSuccess = () => {\n // updating the email opt status\n const janrainProfileData = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n const postObject = getPostReplaceEntityObject(janrainProfileData);\n if(postObject?.[Constants.optins]?.[Constants.optinIdx]){\n postObject[Constants.optins][Constants.optinIdx].optStatus = emailOptStatus;\n }\n postReplaceBenefitPreferences(postObject, handleFormSendSuccess, handleFormSendFailed);\n };\n\n useEffect(() => {\n if(isFormProcessing) {\n const formName = inputs.formName;\n\n let reminderFieldValues = {\n firstName: form.firstName,\n lastName: form.lastName,\n emailAddress: form.emailAddress,\n 'birthdate[dateselect_day]': form['birthdate[dateselect_day]'],\n 'birthdate[dateselect_month]': form['birthdate[dateselect_month]'],\n 'birthdate[dateselect_year]': form['birthdate[dateselect_year]'],\n addressPostalCode: form.addressPostalCode,\n addressCountry: form.addressCountry\n };\n\n globalState.givenName = form.firstName;\n setGlobalState(globalState);\n\n window.janrain.events.onCaptureSaveSuccess.addHandler(handleEditProfileSendSuccess);\n window.janrain.events.onCaptureSaveFailed.addHandler(handleFormSendFailed);\n window.janrain.capture.ui.postCaptureForm(formName, reminderFieldValues);\n }\n }, [isFormProcessing]);\n\n const handleFormSendFailed = () => {\n setFormProcessing(false);\n setAreChangesSaved(false);\n };\n\n const handleFormSendSuccess = () => {\n setFormProcessing(false);\n setAreChangesSaved(true);\n };\n\n const handleSubmit = () => {\n setFormProcessing(true);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n };\n\n const openModal = event => {\n event.preventDefault();\n setAreChangesSaved(false);\n if (formValidated) {\n setIsModalOpen(true);\n }\n };\n\n return (\n
\n

{janrainLabels.allFieldsRequiredLabel}

\n
\n
\n
\n profileStore.fieldChange(inputs.field.firstName, e.target.value)}\n validationErrorText={errors.firstName}\n />\n
\n
\n profileStore.fieldChange(inputs.field.lastName, e.target.value)}\n validationErrorText={errors.lastName}\n />\n
\n
\n
\n
\n profileStore.fieldChange(inputs.field.emailAddress, e.target.value)}\n validationErrorText={errors.emailAddress}\n />\n
\n
\n
\n
\n profileStore.fieldChange(inputs.field.birthdate.dateselect_month, parseInt(e.target.value, 10))}\n errorMonth={errors['birthdate[dateselect_month]']}\n arrYear={arrYear}\n nameYear={inputs.field.birthdate.dateselect_year}\n yearLabel={janrainLabels.yearSelectLabel}\n valueYear={form['birthdate[dateselect_year]'] || janrainLabels.yearSelectLabel}\n onChangeYear={(e) => profileStore.fieldChange(inputs.field.birthdate.dateselect_year, e.target.value)}\n errorYear={errors['birthdate[dateselect_year]']}\n />\n
\n profileStore.fieldChange(inputs.field.addressPostalCode, e.target.value)}\n validationErrorText={errors.addressPostalCode}\n />\n
\n
\n
\n profileStore.fieldChange(inputs.field.addressCountry, e.target.value)}\n dataArray={arrCountries}\n />\n
\n
\n {janrainLabels.emailDisclaimer &&\n <>\n
\n setEmailOptStatus(!emailOptStatus)}\n />\n
\n \n }\n \n {janrainLabels.saveLabel}\n \n \n {janrainLabels.changePasswordLink?.fields?.title}\n \n\n \n
\n
\n

\n {janrainLabels.editModalSaveChangesTitle}\n

\n
\n
\n {!areChangesSaved ? (\n <>\n \n \n \n ) : (\n <>\n

{janrainLabels.editModalSuccess}

\n \n \n )}\n
\n
\n \n \n
\n )\n};\n\nexport default EditProfile;\n\nEditProfile.propTypes = {\n profileStore: PropTypes.object,\n errors: PropTypes.object,\n form: PropTypes.object,\n userData: PropTypes.object,\n profileEditTab: PropTypes.object,\n commonLabels: PropTypes.object,\n janrainErrors: PropTypes.object,\n formValidated: PropTypes.bool,\n customStyles: PropTypes.string,\n closeModalTimeoutMS: PropTypes.number\n};\n","import React, {useEffect, useState} from 'react';\nimport dynamic from 'next/dynamic';\nimport Modal from 'react-modal';\nimport { mediaQueryHOC } from '../../../../adapters/helpers/Hooks';\nimport {SubmitButton} from '../index';\nimport {inputs} from '../../Janrain/janrainForms/ProfileForm/inputs';\nimport {isObjectEmpty, getDateInNinetyDays, substractDays} from '../../../../adapters/helpers/Utils';\nimport {getPostReplaceEntityObject, postReplaceBenefitPreferences} from '../../../../adapters/model/service/api/svc';\nimport {isToday, recoverPreferencesFromUserData} from '../../helpers/setting.helpers';\nimport {getJanrainCaptureProfileDataFromLocalStorage} from '../../helpers/localstorage.helpers';\nimport PropTypes from 'prop-types';\nconst Label = dynamic(() => import('../../../Label/Label'));\nconst ToggleInput = dynamic(() => import('../ToggleInput/ToggleInput'));\nconst Eyebrow = dynamic(() => import('../../../Eyebrow/Eyebrow'));\nconst FormGoalsCheckboxes = dynamic(() => import('../FormGoalsCheckboxes/FormGoalsCheckboxes'));\nconst Button = dynamic(() => import('../../../Button/Button'));\n\nconst UpdateBenefitPreferences = ({profileBenefitPreferencesTab, commonLabels, userData, customStyles, isMedium, closeModalTimeoutMS}) => {\n\n const [oralbBenefitPreferenceList, setOralbBenefitPreferenceList] = useState([]);\n const [goalsJson, setGoalsJson] = useState({});\n const [isReminded, setIsReminded] = useState(userData?.traitBrushHeadReminderOptInFlag?.traitValue === 'Yes');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [areChangesSaved, setAreChangesSaved] = useState(false);\n const [isFormProcessing, setFormProcessing] = useState(false);\n\n let traitBrushheadReminderDate = new Date();\n if(userData.traitBrushheadReminderDate?.traitDate) {\n let splitDate = userData.traitBrushheadReminderDate?.traitDate.split('-')\n traitBrushheadReminderDate = new Date(splitDate[0], splitDate[1] - 1, splitDate[2]);\n }\n const [brushheadReminderDateValue, setBrushheadReminderDateValue] = useState(traitBrushheadReminderDate);\n\n const locale = process.env.JANRAIN_CAPTURE_LOCALE;\n const threeMonthsFromNow = getDateInNinetyDays();\n\n const brushHeadReminderDates = profileBenefitPreferencesTab?.brushHeadAgeList;\n\n const [currentReminderDate, setCurrentReminderDate] = useState(getDateInNinetyDays(traitBrushheadReminderDate) || threeMonthsFromNow);\n\n const [daysSincePurchase, setDaysSincePurchase] = useState(null);\n\n const janrainLabels = {\n yourPreferenceTitle: profileBenefitPreferencesTab?.yourPreferenceTitle,\n yourPreferenceText: profileBenefitPreferencesTab?.yourPreferenceText,\n replaceBrushHeadTitle: profileBenefitPreferencesTab?.replaceBrushHeadTitle,\n replaceBrushHeadText: profileBenefitPreferencesTab?.replaceBrushHeadText,\n resetReminder: profileBenefitPreferencesTab?.resetReminder?.fields?.text,\n myBenefitPreferencesTitle: profileBenefitPreferencesTab?.myBenefitPreferencesTitle,\n myBenefitPreferencesSubtitle: profileBenefitPreferencesTab?.myBenefitPreferencesSubtitle,\n onLabel: profileBenefitPreferencesTab?.onLabel?.fields?.text,\n offLabel: profileBenefitPreferencesTab?.offLabel?.fields?.text,\n ...commonLabels\n };\n\n const resetReminder = (numDays) => {\n const daysSince = parseInt(numDays, 10);\n const newReminderDate = getDateInNinetyDays();\n setDaysSincePurchase(daysSince);\n newReminderDate.setDate(newReminderDate.getDate() - daysSince);\n setCurrentReminderDate(newReminderDate);\n\n // the value save in janrain is the date of purchase. They are adding the 90 days themselves for the reminder.\n // So we need to save the date of purchase and show date of purchase + 90 days.\n let reminderDateValue = substractDays(new Date(), daysSince);\n\n setBrushheadReminderDateValue(reminderDateValue);\n };\n\n const setGoalsData = data => {\n setGoalsJson(data);\n };\n\n useEffect(() => {\n assignCurrentBenefitPreferencesFromUserData();\n\n if (document.querySelector('.js-modal-container')) {\n Modal.setAppElement('.js-modal-container');\n }\n },[]);\n\n useEffect(() => {\n if(isFormProcessing) {\n window.janrain.events.onCaptureSaveSuccess.addHandler(handleFormSendSuccess);\n window.janrain.events.onCaptureSaveFailed.addHandler(handleFormSendFailed);\n }\n }, [isFormProcessing]);\n\n useEffect(() => {\n //reset reminder when turning reminder to true\n if(isToday(traitBrushheadReminderDate)) {\n resetReminder(0);\n }\n }, [isReminded]);\n\n const handleFormSendFailed = () => {\n setFormProcessing(false);\n setAreChangesSaved(false);\n };\n\n const handleFormSendSuccess = () => {\n setFormProcessing(false);\n setAreChangesSaved(true);\n };\n\n const assignCurrentBenefitPreferencesFromUserData = () => {\n let benefitList = recoverPreferencesFromUserData(userData);\n setOralbBenefitPreferenceList(benefitList);\n setGoalsData(benefitList);\n };\n\n const handleSubmit = () => {\n setFormProcessing(true);\n const janrainProfileData = JSON.parse(getJanrainCaptureProfileDataFromLocalStorage());\n let postObject = getPostReplaceEntityObject(janrainProfileData);\n // reminder Date\n const reminderValue = (isReminded) ? 'Yes' : null;\n let traitBrushHeadReminderOptInFlagValue = {\n traitValue: reminderValue\n }\n postObject['traitBrushHeadReminderOptInFlag'] = traitBrushHeadReminderOptInFlagValue;\n let reminderDate = brushheadReminderDateValue.toISOString().split('T')[0];\n if(!isReminded) {\n reminderDate = null;\n }\n let traitBrushheadReminderDateValue = {\n traitDate: reminderDate,\n traitValue: reminderDate\n }\n postObject['traitBrushheadReminderDate'] = traitBrushheadReminderDateValue;\n if (!isObjectEmpty(goalsJson)) {\n // BenefitPreferences\n let traitBenefitPreferencesValue = [];\n postObject['traitBenefitPreferences'] = [];\n goalsJson.forEach(goal => {\n let goalObject = {\n traitValue: goal,\n traitLastUpdated: new Date(),\n traitLastUpdatedClientId: process.env.JANRAIN_CAPTURE_CIENT_ID\n }\n traitBenefitPreferencesValue.push(goalObject);\n });\n postObject['traitBenefitPreferences'] = traitBenefitPreferencesValue;\n } else {\n postObject['traitBenefitPreferences'] = [];\n }\n postReplaceBenefitPreferences(postObject, handleFormSendSuccess, handleFormSendFailed);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n };\n\n const openModal = event => {\n event.preventDefault();\n setAreChangesSaved(false);\n setIsModalOpen(true);\n };\n\n return (\n
\n
\n {janrainLabels.yourPreferenceTitle}\n

{janrainLabels.yourPreferenceText}

\n
\n
\n
\n {janrainLabels.replaceBrushHeadTitle}\n {!isMedium &&\n setIsReminded(e.target.checked)}\n checked={isReminded}\n name={inputs.field.traitBrushHeadReminderOptInFlag}\n activeLabel={janrainLabels.onLabel}\n inactiveLabel={janrainLabels.offLabel}\n className={'ob-preferences__toggle-input--desktop'}\n />\n }\n
\n

\n {profileBenefitPreferencesTab?.RemindYouToReplace?.fields?.text}\n

\n {locale !== '' && isReminded &&\n \n \n \n }\n

{janrainLabels.resetReminder}

\n {isMedium &&\n setIsReminded(e.target.checked)}\n checked={isReminded}\n name={inputs.field.traitBrushHeadReminderOptInFlag}\n activeLabel={janrainLabels.onLabel}\n inactiveLabel={janrainLabels.offLabel}\n className={'ob-preferences__toggle-input--mobile'}\n />\n }\n {isReminded &&\n
    \n {brushHeadReminderDates.map((date, index) => (\n
  • \n resetReminder(date?.fields?.value)}\n />\n \n {date?.fields?.radioLabel?.fields?.text}\n \n
  • \n ))}\n
\n }\n
\n\n
\n

{janrainLabels.myBenefitPreferencesTitle}

\n {janrainLabels.myBenefitPreferencesSubtitle}\n \n
\n\n \n {janrainLabels.saveLabel}\n \n\n \n
\n
\n

\n {janrainLabels.editModalSaveChangesTitle}\n

\n
\n
\n {!areChangesSaved ? (\n <>\n \n \n \n ) : (\n <>\n

{janrainLabels.editModalSuccess}

\n \n \n )}\n
\n
\n \n
\n )\n};\n\nUpdateBenefitPreferences.propTypes = {\n profileBenefitPreferencesTab: PropTypes.object,\n commonLabels: PropTypes.object,\n userData: PropTypes.object,\n customStyles: PropTypes.string,\n isMedium: PropTypes.bool,\n closeModalTimeoutMS: PropTypes.number\n};\n\nexport default mediaQueryHOC(UpdateBenefitPreferences);\n// This export is for unit testing (do not remove) :\nexport const UpdateBenefitPreferencesTest = UpdateBenefitPreferences;\n","import React, {useState} from 'react';\nimport {FormSelect} from '../index';\nimport PropTypes from 'prop-types';\n\nconst FormBirthdate = (\n {\n className,\n dateOfBirthLabel,\n whyWeAskForDateOfBirth,\n whyWeAskForDateOfBirthLegal,\n arrMonths,\n nameMonth,\n monthLabel,\n valueMonth,\n onChangeMonth,\n errorMonth,\n arrYear,\n nameYear,\n yearLabel,\n valueYear,\n onChangeYear,\n errorYear,\n }) => {\n const [islegalTextShowing, setIslegalTextShowing] = useState(false)\n return (\n
\n

{dateOfBirthLabel}

\n
\n \n\n \n
\n {errorMonth && errorYear && errorMonth === errorYear ? (\n

\n {errorYear}\n

\n ) : (\n <>\n {errorMonth &&\n

\n {errorMonth}\n

\n }\n {errorYear &&\n

\n {errorYear}\n

\n }\n \n )}\n \n

\n {whyWeAskForDateOfBirthLegal}\n

\n
\n )\n};\n\nFormBirthdate.propTypes = {\n className: PropTypes.string,\n dateOfBirthLabel: PropTypes.string,\n whyWeAskForDateOfBirth: PropTypes.string,\n whyWeAskForDateOfBirthLegal: PropTypes.string,\n arrMonths: PropTypes.object,\n nameMonth: PropTypes.string,\n monthLabel: PropTypes.string,\n valueMonth: PropTypes.string,\n onChangeMonth: PropTypes.func,\n errorMonth: PropTypes.string,\n arrYear: PropTypes.object,\n nameYear: PropTypes.string,\n yearLabel: PropTypes.string,\n valueYear: PropTypes.string,\n onChangeYear: PropTypes.func,\n errorYear: PropTypes.string\n}\n\nexport default FormBirthdate;\n","export { default as Button } from './Button/Button'\nexport { default as SubmitButton } from './SubmitButton/SubmitButton'\nexport { default as FormInput } from './FormInput/FormInput'\nexport { default as FormSelect } from './FormSelect/FormSelect'\nexport { default as CheckboxInput } from './CheckboxInput/CheckboxInput'\nexport { default as RadioInput } from './RadioInput/RadioInput'\nexport { default as RegisterProduct } from './RegisterProduct/RegisterProduct'\nexport { default as FormGoalsCheckboxes } from './FormGoalsCheckboxes/FormGoalsCheckboxes'\nexport { default as ProductManagement } from './ProductManagement/ProductManagement'\nexport { default as EditProfile } from './EditProfile/EditProfile'\nexport { default as UpdateBenefitPreferences } from './UpdateBenefitPreferences/UpdateBenefitPreferences'\nexport { default as FormBirthdate } from './FormBirthdate/FormBirthdate'\n","import {formatDateToStringValue, customJsonstringify } from '../../../adapters/helpers/Utils';\nimport { WarrantyExtensionConstants } from '../../../adapters/helpers/Constants';\n\nexport const recoverProductsFromUserData = (profileData, productCategoryList, warrantyExtensionTime, gCSUserproductList) => {\n let products = [];\n\n if(gCSUserproductList && Array.isArray(gCSUserproductList)) {\n gCSUserproductList.forEach(gCSProduct => {\n // continue if product is not deleted\n if(!gCSProduct.isDelete) {\n productCategoryList.forEach(productCategory => {\n const productOverviews = productCategory?.fields?.productOverviewList;\n if (productOverviews) {\n productOverviews.forEach(productOverview => {\n productOverview.fields.productVariants.forEach(contentfulProduct => {\n let contentfulGCSProductId = contentfulProduct?.fields?.gCSProductId;\n if (contentfulProduct?.fields?.janrainProductId) {\n contentfulGCSProductId = contentfulProduct?.fields?.janrainProductId;\n }\n\n let gCSProductId = gCSProduct?.productId;\n if (gCSProductId == contentfulGCSProductId) {\n let enhanceProductVariant = JSON.parse(customJsonstringify(contentfulProduct.fields));\n // Product identifier eanCode or sku. It seems that it's called ean code in GCS even if they are SKU\n enhanceProductVariant.productId = gCSProduct.eanCode;\n\n // Order unique identifier. Is not post anywhere, but gives us the hability to identity two different order with the same product.\n // We use this identifier for delete or make primary manipulation.\n enhanceProductVariant.id = gCSProduct.orderId;\n\n // unique database identifier in GCS database. Needed for product registration.\n enhanceProductVariant.gCSProductId = gCSProductId;\n\n enhanceProductVariant.imageUrl = gCSProduct.imageUrl;\n enhanceProductVariant.registrationDate = formatDateToStringValue(gCSProduct.registrationDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n\n let warrantyDateObject = new Date(gCSProduct.warrantyExtendedDate);\n let warrantyExpirationDate = new Date(warrantyDateObject.getFullYear(), warrantyDateObject.getMonth(), warrantyDateObject.getDate());\n\n enhanceProductVariant.purchaseDate = formatDateToStringValue(gCSProduct.purchaseDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.traitDate = formatDateToStringValue(gCSProduct.purchaseDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.warrantyExpirationDate = formatDateToStringValue(warrantyExpirationDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.warrantyExpirationDateInText = warrantyExpirationDate.toLocaleString(process.env.JANRAIN_CAPTURE_LOCALE, {\n month: 'long',\n year: 'numeric'\n });\n enhanceProductVariant.category = productCategory?.fields?.name;\n enhanceProductVariant.timeStamp = new Date().toUTCString();\n\n // display name\n enhanceProductVariant.title = getProductVariantName(contentfulProduct);\n\n enhanceProductVariant.isPrimary = gCSProduct?.isPrimary;\n\n products.push(enhanceProductVariant);\n }\n })\n })\n }\n });\n }\n });\n }\n return products;\n};\n\nexport const enhanceProducts = (gCSUserproductList) => {\n let products = [];\n\n if(gCSUserproductList && Array.isArray(gCSUserproductList)) {\n gCSUserproductList.forEach(gCSProduct => {\n // continue if product is not deleted\n if(!gCSProduct.isDelete) {\n let gCSProductId = gCSProduct?.productId;\n \n let enhanceProductVariant = {};\n // Product identifier eanCode or sku. It seems that it's called ean code in GCS even if they are SKU\n enhanceProductVariant.productId = gCSProduct.productCode;\n enhanceProductVariant.orderProductId = gCSProduct.orderProductId;\n enhanceProductVariant.typeCode = gCSProduct.typeCode;\n\n // Order unique identifier. Is not post anywhere, but gives us the hability to identity two different order with the same product.\n // We use this identifier for delete or make primary manipulation.\n enhanceProductVariant.id = gCSProduct.orderId;\n\n // unique database identifier in GCS database. Needed for product registration.\n enhanceProductVariant.gCSProductId = gCSProductId;\n\n enhanceProductVariant.imageUrl = gCSProduct.productGasImageUrl;\n enhanceProductVariant.mainAsset = gCSProduct.productGasImageUrl;\n enhanceProductVariant.registrationDate = formatDateToStringValue(gCSProduct.registrationDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n\n let warrantyDateObject = new Date(gCSProduct.warrantyExtendedDate);\n let warrantyExpirationDate = new Date(warrantyDateObject.getFullYear(), warrantyDateObject.getMonth(), warrantyDateObject.getDate());\n \n enhanceProductVariant.purchaseDate = formatDateToStringValue(gCSProduct.purchaseDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.traitDate = formatDateToStringValue(gCSProduct.purchaseDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.warrantyExpirationDate = formatDateToStringValue(warrantyExpirationDate, 'YYYY-MM-DD', 'DD/MM/YYYY');\n enhanceProductVariant.warrantyExpirationDateInText = warrantyExpirationDate.toLocaleString(process.env.JANRAIN_CAPTURE_LOCALE, {\n month: 'long',\n year: 'numeric'\n });\n enhanceProductVariant.timeStamp = new Date().toUTCString();\n\n // display name\n enhanceProductVariant.name = gCSProduct?.productName;\n enhanceProductVariant.title = gCSProduct?.productName;\n\n enhanceProductVariant.isPrimary = gCSProduct?.isPrimary;\n\n products.push(enhanceProductVariant);\n \n }\n });\n }\n return products;\n};\n\nexport const removeProductFromJanrainList = (products, productIdToRemove, orderProductId) => {\n const orderIdWithProductId = `${productIdToRemove}${WarrantyExtensionConstants.janrinProductIdDelimiter}${orderProductId}`\n return products.filter(product => {\n if(product && product.productId && product.productId.toString().indexOf(WarrantyExtensionConstants.janrinProductIdDelimiter) > -1) {\n return product.productId !== orderIdWithProductId;\n } else {\n return product.productId !== productIdToRemove;\n }\n });\n};\n\nexport const removeProductFromDisplayedList = (products, orderId, orderProductId) => {\n return products.filter(product => (product.id !== orderId || product.orderProductId !== orderProductId));\n};\n\nexport const getJanrainProductId = (sku) => {\n let janrainId = sku;\n return janrainId;\n};\n\nexport const getContenfulPrimaryProductCode = (product) => {\n let code = product?.productId + '_' + product?.purchaseDate;\n return code;\n};\n\nexport const getProductVariantName = (productVariant) => {\n let title = productVariant?.fields?.name;\n if(productVariant?.fields?.shortTitle) {\n title = productVariant?.fields?.shortTitle;\n }\n return title;\n};\n","export const recoverPreferencesFromUserData = (profileData) => {\n const profilePreferences = profileData?.traitBenefitPreferences;\n const userPreferences = [];\n if(profilePreferences) {\n profilePreferences.forEach(benefitPreference => {\n let value = benefitPreference?.traitValue;\n if(value) {\n // set to upper case to be sure we match existing user benefit preferences in prod\n userPreferences.push(value);\n }\n })\n }\n return userPreferences;\n};\n\nexport const isToday = (someDate) => {\n const today = new Date()\n return someDate.getDate() == today.getDate() &&\n someDate.getMonth() == today.getMonth() &&\n someDate.getFullYear() == today.getFullYear()\n}","import React, {Suspense} from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport Block from '../../adapters/helpers/Block'\nimport PropTypes from 'prop-types';\nimport { MarkdownTextConstants } from '../../adapters/helpers/Constants'\nimport Loader from '../../adapters/helpers/Loader';\n\nexport function Markdown({ source, className }) {\n return (\n \n );\n}\n\nMarkdown.propTypes = {\n source: PropTypes.any,\n className: PropTypes.string,\n}\n\nexport default function MarkdownText(props) {\n const block = new Block(props);\n const document = block.getDocument();\n const classNames = document?.fields?.classNames;\n let ariaHidden = null;\n if (classNames && classNames.indexOf('aria-hidden') >= 0) {\n ariaHidden = true;\n }\n const Tag = props.isSpan ? 'span' : 'div';\n\n return ((document?.fields) ?\n \n \n }>\n \n \n \n :\n \n }>\n \n \n \n );\n}\n\nMarkdownText.propTypes = {\n value: PropTypes.string,\n isSpan: PropTypes.bool,\n className: PropTypes.string,\n};\n"],"names":["buildContentfullImageUrl","assetUrl","transformations","__webpack_exports__","ZP","buildContentfullImageUrlByHeight","height","arguments","length","undefined","buildContentfullImageUrlByWidth","width","imageContentfullDpr","imageContentfullSrc","optimizeImage","imageUrl","imageFormatValue","imageQualityValue","_imageUrl","_imageUrl2","imageFormat","imageQuality","includes","concat","_imageUrl3","generateHeader","token","header","Headers","append","SvcApiConstants","contentType","ciamInstanceId","process","env","SVC_API_CIAM_INSTANCE_ID","postReplaceEntity","object","newJanrainProduct","_productData$Warranty","_productData$Warranty2","onSuccess","onFailure","registerData","newJanrinComboProduct","orderId","productData","data","productId","WarrantyExtensionConstants","janrinProductIdDelimiter","primaryProductIndex","orderProductId","traitProductType","push","comboProductIndex","getJanrainCaptureTokenFromLocalStorage","params","attributes","customJsonstringify","type_name","SVC_API_TYPE_NAME","searchParams","URLSearchParams","prop","set","fetch","SVC_API_URL_REPLACE","method","headers","body","then","response","json","stat","console","error","error_description","logout","postReplaceEntityUpdate","refreshEntity","postReplaceGoals","info","unknownAccessToken","postReplaceBenefitPreferences","userData","SVC_API_URL_ENTITY","result","localStorage","setItem","getPostReplaceEntityObject","janrainProfileData","postObject","traitProductTypeValue","removePluralListId","traitBenefitPreferencesValue","traitBenefitPreferences","optInsValue","optIns","traitBrushHeadReminderOptInFlag","traitBrushheadReminderDate","primaryProduct","traitPrimaryBrush","pluralList","forEach","id","_window2","_window2$janrain","_window2$janrain$capt","_window2$janrain$capt2","window","janrain","capture","ui","endCaptureSession","deleteJanrainCaptureProfileDataFromLocalStorage","redirectTo","JANRAIN_LOGIN_PATH","sendEmailVerification","email","flow","JANRAIN_CAPTURE_FLOW_NAME","flow_version","JANRAIN_CAPTURE_FLOW_VERSION","locale","JANRAIN_CAPTURE_LOCALE","form","resendVerificationForm","signInEmailAddress","client_id","JANRAIN_CAPTURE_CIENT_ID","redirect_uri","SVC_API_URL_SEND_VERIFICATION_EMAIL","log","setEntityOptInStatus","status","headerEntity","optStatus","emailVerified","choiceDate","postEntityOptStatus","_ref","_ref2","_ref3","accessToken","WARRANTY_API_ACCESS_TOKEN","isOldConsumer","consumerId","toString","startsWith","warrantyExtensionUrl","WARRANTY_API_BASE_URL","WARRANTY_API_VERSION","warrantyExtensionPath","programIdParam","WARRANTY_API_PROGRAM_ID","localeParam","WARRANTY_API_LOCALE","warrantyGetConsumerIdUrl","getConsumerPath","warrantyExtensionGetProductsByTypeCode","getProductsByTypeCodePath","warrantyExtensionGetCampaignInfoMaster","getCampaignInfoMaster","warrantyExtensionGetProductList","getproductListBySeries","getProductByTypeCode","_asyncToGenerator","_regeneratorRuntime","_callee","typeCode","url","requestBody","requestOptions","_context","prev","next","Number","sent","abrupt","t0","message","stop","_x","apply","getProductBySeries","_callee2","lstInternSubGroup","lstSeries","_context2","_toConsumableArray","_x2","_x3","postWarrantyRegistration","product","janrainProfile","postWarrantyOnSuccess","postWarrantyOnFailure","getConsumerId","_janrainProfile$trait","consumerID","registration","program","programId","parseInt","sourceSystemId","WARRANTY_API_SOURCE_SYSTEM_ID","consumer","address","productOrder","productCode","primary","productPurchased","longDescription","productQuantity","productName","dateOfPurchase","formatDateToStringValue","purchaseDate","productImageUrl","mainAsset","secondary","isPrimary","uuid","UUID","oneCPId","countryId","addressTypeCode","getCountryId","_callee3","countryValue","_context3","Array","isArray","programCountriesForAddress","filter","country","countryCode","_x4","postWarrantyRegistrationUpdate","makePrimary","isDelete","onPostReplaceSuccess","gCSProductId","code","postEmailNotification","_product$mainAsset","_product$mainAsset$fi","_product$mainAsset$fi2","_product$mainAsset$fi3","_product$mainAsset$fi4","callback","image","fields","assetId","asset","file","ImageFactory","emailRequestBody","parameters","name","value","givenName","title","traitDate","registrationDate","warrantyExpirationDate","campaignId","templateType","WARRANTY_API_EMAIL_TEMPLATE_TYPE","system","WARRANTY_API_EMAIL_SYSTEM","WARRANTY_API_EMAIL_NOTIFICATION_ACCESS_TOKEN","WARRANTY_API_EMAIL_NOTIFICATION_URL","getConsumerProduct","profileData","productCategoryList","warrantyExtensionTime","warrantyHeader","statusCode","getConsumerIDSuccess","getConsumerIDFailure","ConsumerId","postGWEProductWarrantyEmailNotification","user","emailAddress","firstName","WARRANTY_API_EMAIL_NOTIFICATION_GWE_URL","inputs","formName","editFormName","type","text","date","field","selectProductType","reminderToReplace","traitValue","registerProductsID","FormGoalsCheckboxes","oralCareGoals","janrainLabels","setGoalsData","setReminderData","currentGoals","className","_useState","useState","selectedGoals","setSelectedGoals","handleGoalSelection","event","checkbox","currentTarget","goal","getAttribute","isChecked","checked","goals","elem","useEffect","handleReminder","_jsxs","children","_jsx","map","index","CheckboxInput","label","onChange","isSquared","isBold","reminderToReplaceLabel","e","target","defaultProps","FormInput","inputType","toolTipText","validationErrorText","placeholder","halfWidth","quarterWidth","required","ariaDescribedBy","onBlur","_ref$disabled","disabled","dynamicInputType","setDynamicInputType","_useState2","isPasswordShown","setIsPasswordShown","isDateInputSupported","input","document","createElement","notADateValue","setAttribute","htmlFor","autoComplete","onClick","viewBox","dangerouslySetInnerHTML","__html","FormSelect","dataArray","selectLabel","isHalfWidth","ariaLabel","hasInitialValue","options","el","buttonColors","light","border","background","dark","oppositeColor","variant","ButtonWrapper","styled","a","withConfig","displayName","componentId","_ref4","_ref5","spin","span","_ref6","_ref7","keyframes","SubmitButton","props","buttonText","isSubmitting","_Fragment","ariaFormIsSubmitting","components_SubmitButton_SubmitButton","isWhite","isSmall","errorMessage","isRequired","isRound","setChecked","onChangeEvent","CheckboxInput_CheckboxInput","div","dynamic","__webpack_require__","bind","loadableGenerated","webpack","MarkdownText","Promise","resolve","Eyebrow","Image","Button","Icon","DotNav","Label","ResponsiveImage","ProductManagement_ProductManagement","_profileProductManage","_profileProductManage2","_profileProductManage3","_profileProductManage4","_profileProductManage5","_profileProductManage6","_profileProductManage7","_profileProductManage8","_profileProductManage9","_profileProductManage10","_profileProductManage11","_profileProductManage12","_profileProductManage13","_profileProductManage14","_profileProductManage15","_profileProductManage16","_profileProductManage17","_profileProductManage18","_profileProductManage19","_profileProductManage20","_profileProductManage21","_profileProductManage22","_profileProductManage23","_profileProductManage24","_profileProductManage25","_janrainLabels$regist","_janrainLabels$regist2","_janrainLabels$regist3","_janrainLabels$regist4","_janrainLabels$regist5","_janrainLabels$regist6","_janrainLabels$downlo","_janrainLabels$downlo2","_janrainLabels$downlo3","_janrainLabels$downlo4","_janrainLabels$downlo5","_janrainLabels$downlo6","_janrainLabels$downlo7","_janrainLabels$downlo8","_currentProduct$cmsPr","_currentProduct$cmsPr2","oralbProductList","profileProductManagementTab","commonLabels","customStyles","closeModalTimeoutMS","setOralbProductList","isGCSAPIDown","currentPage","setCurrentPage","numCarouselPages","setNumCarouselPages","_useState3","isModalOpen","setIsModalOpen","_useState4","lastScroll","setLastScroll","_useState5","requestedProduct","setRequestedProduct","_useState6","currentProduct","setCurrentProduct","_useState7","isDeleting","setIsDeleting","_useState8","isProgress","setIsProgress","productCarouselRef","useRef","dotNavRef","viewWarrantyLink","registeredProductLimit","dummyImage","_objectSpread","profileIntroText","productManagementText","primaryButtonLabel","makePrimaryButtonLabel","deleteLabel","registeredOn","registerProductLinkGwe","tryTheAppTitle","tryTheAppText","downloadOnAppStore","downloadOnPlayStore","productManagementModalTitle","deleteProductModalTitle","productManagementModalSubtitle","productManagementModalConfirm","registeredProductLimitLabel","gcsDownErrorMessage","previousLabel","nextLabel","commonControlBtnIconProps","size","updateNumCarouselPages","current","carousel","fullCarouselWidth","i","element","elementWidth","offsetWidth","style","getComputedStyle","marginLeft","marginRight","Math","ceil","round","handleResize","throttle","addEventListener","removeEventListener","isObjectEmpty","find","querySelector","Modal","handleScroll","toggleScroll","closeModal","onScroll","useCallback","currentRatio","scrollLeft","clientWidth","min","floor","currentPosition","max","handleDotClick","nextY","scrollTo","left","behavior","handleClick","activePageIndex","dataset","clickedButton","controlButton","classList","contains","pageYOffset","setTimeout","openModal","preventDefault","JSON","parse","custom","ref","_viewWarrantyLink$pag","_viewWarrantyLink$pag2","src","alt","textTheme","tag","href","pagePath","slug","borderThemeBlue","dataCustom","rotate","count","color","deleteIsCreatingAccountFromLocalStorage","Link","rel","isOpen","onRequestClose","closeTimeoutMS","htmlOpenClassName","tokens","cmsProductInfo","getJanrainCaptureProfileDataFromLocalStorage","newLocalStorageProductList","removeProductFromJanrainList","newDisplayedProductList","removeProductFromDisplayedList","oldestProductIndex","janrinProfileOldestProductIndex","oldestProduct","primaryProductSku","traitPrimaryBrushValue","productTypeCode","primaryProducts","previousPrimaryProduct","newProductList","primarySet","modalCancelButton","radio","hidden","phone","lastName","addressPostalCode","dateOfBirth","addressCountry","birthdate","dateselect_month","dateselect_year","dateselect_day","EditProfile_EditProfile","_userData$optIns$Cons","_profileEditTab$posta","_profileEditTab$posta2","_profileEditTab$posta3","_profileEditTab$posta4","_profileEditTab$modal","_profileEditTab$modal2","_profileEditTab$allFi","_profileEditTab$allFi2","_profileEditTab$first","_profileEditTab$first2","_profileEditTab$lastN","_profileEditTab$lastN2","_profileEditTab$email","_profileEditTab$email2","_profileEditTab$dateO","_profileEditTab$dateO2","_profileEditTab$regis","_profileEditTab$regis2","_profileEditTab$month","_profileEditTab$month2","_profileEditTab$yearS","_profileEditTab$yearS2","_profileEditTab$postC","_profileEditTab$postC2","_profileEditTab$count","_profileEditTab$count2","_janrainLabels$change","_janrainLabels$change2","_janrainLabels$change3","_janrainLabels$change4","_janrainLabels$change5","_janrainLabels$change6","profileStore","errors","profileEditTab","janrainErrors","formValidated","isFormProcessing","setFormProcessing","arrMonths","setArrMonths","arrYear","setArrYear","isSubmitDisabled","setIsSubmitDisabled","areChangesSaved","setAreChangesSaved","arrCountries","setArrCountries","_useJanrainGlobalStat","useJanrainGlobalState","_useJanrainGlobalStat2","_slicedToArray","globalState","setGlobalState","Constants","optinIdx","emailOptStatus","setEmailOptStatus","postalCodeValidationRegex","pattern","postalCodeSecondPattern","secondPattern","minimumAge","allFieldsRequiredLabel","whyWeAskForDateOfBirth","whyWeAskForDateOfBirthLegal","registerDateOfBirthPlaceholder","dateValidationRegex","monthSelectLabel","yearSelectLabel","postCode","changePasswordLink","emailDisclaimer","profileEmailAccountDisclaimer","regExpPattern","patternFormat","RegExp","validPostalCode","test","secPattern","validAge","birthMonth","currentDate","Date","birthDate","clear","errorTexts","rehydrateForProfileForm","setMonths","setYears","validation","fn","countries","newCountriesArr","CountryCode","handleEditProfileSendSuccess","_postObject$Constants","optins","handleFormSendSuccess","handleFormSendFailed","reminderFieldValues","events","onCaptureSaveSuccess","addHandler","onCaptureSaveFailed","postCaptureForm","fieldChange","FormBirthdate","dateOfBirthLabel","nameMonth","monthLabel","valueMonth","onChangeMonth","errorMonth","nameYear","yearLabel","valueYear","onChangeYear","errorYear","saveLabel","editModalSaveChangesTitle","editModalSuccess","saveChangesLabel","ToggleInput","UpdateBenefitPreferences_UpdateBenefitPreferences","mediaQueryHOC","profileBenefitPreferencesTab","isMedium","oralbBenefitPreferenceList","setOralbBenefitPreferenceList","goalsJson","setGoalsJson","_userData$traitBrushH","isReminded","setIsReminded","_userData$traitBrushh","_profileBenefitPrefer","_profileBenefitPrefer2","_profileBenefitPrefer3","_profileBenefitPrefer4","_profileBenefitPrefer5","_profileBenefitPrefer6","_profileBenefitPrefer7","_profileBenefitPrefer8","_userData$traitBrushh2","splitDate","split","brushheadReminderDateValue","setBrushheadReminderDateValue","threeMonthsFromNow","getDateInNinetyDays","brushHeadReminderDates","brushHeadAgeList","currentReminderDate","setCurrentReminderDate","_useState9","daysSincePurchase","setDaysSincePurchase","yourPreferenceTitle","yourPreferenceText","replaceBrushHeadTitle","replaceBrushHeadText","resetReminder","myBenefitPreferencesTitle","myBenefitPreferencesSubtitle","onLabel","offLabel","numDays","daysSince","newReminderDate","setDate","getDate","substractDays","assignCurrentBenefitPreferencesFromUserData","isToday","benefitList","recoverPreferencesFromUserData","activeLabel","inactiveLabel","RemindYouToReplace","replacementDate","toLocaleString","month","day","toUpperCase","_date$fields","_date$fields2","_date$fields3","_date$fields5","_date$fields6","_date$fields6$radioLa","_date$fields6$radioLa2","_date$fields4","radioLabel","topOralCareGoals","reminderValue","reminderDate","toISOString","traitBrushheadReminderDateValue","goalObject","traitLastUpdated","traitLastUpdatedClientId","FormBirthdate_FormBirthdate","_whyWeAskForDateOfBir","_whyWeAskForDateOfBir2","islegalTextShowing","setIslegalTextShowing","enhanceProducts","gCSUserproductList","products","gCSProduct","enhanceProductVariant","productGasImageUrl","warrantyDateObject","warrantyExtendedDate","getFullYear","getMonth","warrantyExpirationDateInText","year","timeStamp","toUTCString","productIdToRemove","orderIdWithProductId","indexOf","profilePreferences","userPreferences","benefitPreference","someDate","today","Markdown","source","ReactMarkdown","escapeHtml","_document$fields","block","Block","getDocument","classNames","ariaHidden","Tag","isSpan","Suspense","fallback","Loader","getFieldValue","MarkdownTextConstants"],"sourceRoot":""}