{"version":3,"sources":["components/BrandLogo.js","components/EmailValidation.js","components/Error.js","components/Confirmation.js","components/DownloadReceipt.js","Pages/MainPage.js","App.js","registerServiceWorker.js","i18nextConf.js","index.js","images/hmicon.svg","images/cosicon.svg","images/monkiicon.svg","images/weekdayicon.svg","images/otherstoriesicon.svg","images/arketicon.svg","images/CombinedShape.svg","images/DownloadApp.svg"],"names":["imgURL","0","hmLogo","1","cos","2","monki","3","weekday","5","aos","6","ark","BrandLogo","props","brandId","src","alt","className","EmailValidation","countrycode","transactiondate","receiptId","translation","locale","MainState","useState","emailBtnDisabled","setEmailBtnDisabled","emailId","setEmailId","validate","setValidate","isEmailEmpty","setÍsEmailEmpty","showEmailSentMsg","showEmailSentMsgContent","showEmailSentMsgObj","setShowEmailSentMsgObj","emailRex","validateEmail","e","emails","target","value","test","SendEmailEvent","isLoading","emailSentCount","prevState","SendEmailReceipt","a","callDateDiff","setExpireState","callLoading","EmailCustomerInfos","BusinessPartnerId","CountryCode","FirstName","LastName","CorporateBrandId","CorporateBrand","Base64PDF","base64PDF","Base64BarCodeImage","barcode","Locale","CustomerLoyaltyId","EmailAddres","TransactionDate","NonMemberReceiptBlobsIndexRequest","ReceiptId","EmailSentCount","DeviceType","deviceType","OsName","osName","BrowserName","browserName","emailCountAndCustomerInfo","fetch","method","headers","body","JSON","stringify","response","json","data","error","updateInput","updateEmailSenCount","Row","Col","xs","sm","FormGroup","Input","type","disabled","emailInputDisable","id","name","autocomplete","onBlur","onChange","onKeyPress","event","key","invalid","FormFeedback","style","Button","backgroundColor","borderColor","color","borderRadius","onClick","bind","this","Spinner","size","ErrorComponent","isReceiptExpired","marginLeft","marginTop","CombinedShape","width","height","textAlign","fontWeight","fontSize","fontFamily","Confirmation","sendPlayStore","startDateTime","Date","toISOString","url","toLowerCase","window","open","endDateTime","customDimensions","Countrycode","Transaction","BrandId","CaptureNonmemberLogs","ProcessName","MessageId","StartTime","EndTime","Status","ErrorMessage","CustomDimensions","md","marginRight","styles","StyleSheet","create","div","float","DownloadReceipt","ShowReceiptExpirationMessage","showDownloadMsg","showDownloadMsgContent","showDownloadMsgObj","setShowDownloadMsgObj","downloadreceipt","pdfData","fileName","iOS","isIOS","iOSVersion","navigator","userAgent","match","substr","split","map","n","parseInt","attachmentName","contentType","binary","atob","replace","len","length","buffer","ArrayBuffer","view","Uint8Array","i","charCodeAt","linkElement","document","createElement","hrefUrl","blob","isChrome","Blob","URL","createObjectURL","setAttribute","clickEvent","MouseEvent","bubbles","cancelable","dispatchEvent","DownloadLogs","status","errorMsg","showReceiptExpirationMessageText","receiptViewExpiryDate","TouchableOpacity","hitSlop","top","bottom","left","right","downloadApp","MainPage","executing","setExecuting","search","location","crypticdata","URLSearchParams","get","useTranslation","t","i18n","receiptLines","loading","showMessage","counter","popup","previousEmail","conditionPopup","emailSent","sim","enableEmailOptionByCountryAndBrandId","setMainState","showlogo","ShowHeader","setShowHeader","date_diff_indays","setShowReceiptExpirationMessage","updateEmailInput","useEffect","populateReceiptData","timer","templUrlGetDate","getDataResponse","getData","countryCode","transactionDate","showReceiptExpirationMessage","receiptExpiryDays","disableTranslation","changeLanguage","clearTimeout","IsGetReceipt","Crypticdata","OSName","barcodeImage","Number","setTimeout","Container","borderRightColor","variant","user","App","path","Component","displayName","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","catch","resources","en","fr","fr_0","gb_0","gb_1","gb_2","gb_3","gb_4","gb_5","gb_6","use","initReactI18next","init","fallbackLng","keySeparator","interpolation","escapeValue","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","process","origin","addEventListener","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker","module","exports"],"mappings":"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","file":"static/js/main.3061e91d.chunk.js","sourcesContent":["import React from 'react';\r\nimport '../home.css';\r\nimport hmLogo from '../images/hmicon.svg';\r\nimport cos from '../images/cosicon.svg';\r\nimport monki from '../images/monkiicon.svg';\r\nimport weekday from '../images/weekdayicon.svg';\r\n//import cm from '../images/cm.svg';\r\nimport aos from '../images/otherstoriesicon.svg';\r\nimport ark from '../images/arketicon.svg';\r\n\r\nlet imgURL = {\r\n 0: hmLogo,\r\n 1: cos,\r\n 2: monki,\r\n 3: weekday,\r\n //4: cm,\r\n 5: aos,\r\n 6: ark\r\n}\r\nexport default function BrandLogo(props) {\r\n\r\n const { brandId } = props;\r\n\r\n return (\r\n \"hm_logo\"\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Input, FormGroup, FormFeedback, Button, Row, Col, Spinner\r\n} from \"reactstrap\"\r\nimport '../home.css'\r\nimport { deviceType, osName, browserName } from 'react-device-detect';\r\n\r\nexport default function EmailValidation(props) {\r\n\r\n const { countrycode, transactiondate, receiptId, translation, locale } = props\r\n const MainState = props.MainState;\r\n const [emailBtnDisabled, setEmailBtnDisabled] = useState(MainState.emailBtnDisabled);\r\n const [emailId, setEmailId] = useState(\"\");\r\n const [validate, setValidate] = useState(false);\r\n const [isEmailEmpty, setÍsEmailEmpty] = useState(true);\r\n const [showEmailSentMsgObj, setShowEmailSentMsgObj] = useState({\r\n showEmailSentMsg: false,\r\n showEmailSentMsgContent: {translation('You have reached the maximum number of emails you can send(4).Please use the download function instead.')}\r\n });\r\n const emailRex =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n function validateEmail(e) {\r\n setÍsEmailEmpty(true);\r\n setEmailId(e.target.value);\r\n validateEmailText(e.target.value);\r\n }\r\n function validateEmailText(emails) {\r\n setEmailBtnDisabled(true);\r\n if (emailRex.test(emails)) {\r\n setEmailBtnDisabled(false);\r\n }\r\n }\r\n function SendEmailEvent() {\r\n if (MainState.isLoading) return;\r\n\r\n if (!emailRex.test(emailId) || MainState.emailSentCount >= 4) {\r\n setShowEmailSentMsgObj(prevState => {\r\n return {\r\n showEmailSentMsg: true, showEmailSentMsgContent: {translation('You have reached the maximum number of emails you can send(4).Please use the download function instead.')} } });\r\n return;\r\n }\r\n SendEmailReceipt();\r\n /*setIsEmailSent(true);\r\n props.updateInput(emailId, validate);*/\r\n }\r\n function handleInputBlur(e) {\r\n if (emailId != \"\")\r\n setÍsEmailEmpty(false);\r\n setEmailBtnDisabled(!emailRex.test(emailId));\r\n setValidate(emailRex.test(emailId));\r\n };\r\n const SendEmailReceipt = async () => {\r\n if (props.callDateDiff < 0) {\r\n props.setExpireState();\r\n setEmailId(\"\");\r\n setÍsEmailEmpty(true);\r\n return;\r\n }\r\n props.callLoading(true);\r\n\r\n const EmailCustomerInfos = {\r\n BusinessPartnerId: null,\r\n CountryCode: countrycode,\r\n FirstName: null,\r\n LastName: null,\r\n CorporateBrandId: 0,\r\n CorporateBrand: \"HM\",\r\n Base64PDF: MainState.base64PDF,\r\n Base64BarCodeImage: MainState.barcode,\r\n Locale: locale,\r\n CustomerLoyaltyId: null,\r\n EmailAddres: emailId,\r\n TransactionDate: transactiondate\r\n };\r\n const NonMemberReceiptBlobsIndexRequest = {\r\n ReceiptId: receiptId,\r\n TransactionDate: transactiondate,\r\n CountryCode: countrycode,\r\n EmailSentCount: MainState.emailSentCount + 1,\r\n DeviceType : deviceType,\r\n OsName : osName,\r\n BrowserName: browserName\r\n }\r\n const emailCountAndCustomerInfo = {\r\n EmailCustomerInfos,\r\n NonMemberReceiptBlobsIndexRequest\r\n }\r\n var response = await fetch('receiptline/sendemail', {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(emailCountAndCustomerInfo)\r\n });\r\n const data = await response.json();\r\n props.callLoading(false);\r\n\r\n if (data != null && data.error != null) {\r\n if (data.error != \"Success\") {\r\n setShowEmailSentMsgObj(prevState => {\r\n return {\r\n showEmailSentMsg: true, showEmailSentMsgContent: {translation('Unable to send receipt. Please try again or download the receipt.')}\r\n } });\r\n return;\r\n }\r\n\r\n setShowEmailSentMsgObj(prevState => { return { showEmailSentMsg: false } });\r\n props.updateInput(emailId, true);\r\n props.updateEmailSenCount();\r\n props.callLoading(false);\r\n }\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n
{translation('Email')}
\r\n { handleInputBlur(e) }}\r\n onChange={(e) => {\r\n validateEmail(e);\r\n }}\r\n onKeyPress={(event) => {\r\n if (event.key === \"Enter\") {\r\n SendEmailEvent()\r\n }\r\n }}\r\n value={emailId}\r\n invalid={!validate && isEmailEmpty == false}\r\n />\r\n \r\n {translation('Please enter a valid email')}\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {showEmailSentMsgObj.showEmailSentMsg &&\r\n \r\n {showEmailSentMsgObj.showEmailSentMsgContent}\r\n \r\n }\r\n \r\n \r\n
\r\n );\r\n}","import React from 'react';\r\nimport { Row, Col } from \"reactstrap\";\r\nimport '../home.css';\r\nimport CombinedShape from '../images/CombinedShape.svg'\r\n\r\n\r\nexport default function ErrorComponent(props) {\r\n const { receiptId, isReceiptExpired, translation } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \"combined_shape\"\r\n \r\n
\r\n {\r\n !isReceiptExpired &&\r\n
{translation('Receipt ID')} {receiptId} {translation('has failed to load!')}\r\n
\r\n {translation('Please contact our customer service.')}
\r\n }\r\n {\r\n isReceiptExpired &&\r\n
\r\n {translation('Your receipt')} {receiptId} {translation('has expired')}\r\n
\r\n {translation('If you need your receipt, please contact our customer service.')}\r\n
\r\n }\r\n\r\n
\r\n
\r\n
\r\n\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Input, FormGroup, FormFeedback, Button, Row, Col } from \"reactstrap\"\r\nimport '../home.css'\r\nimport { deviceType, osName, browserName } from 'react-device-detect';\r\n\r\nexport default function Confirmation(props) {\r\n const { emailId, transactiondate, translation, countrycode, receiptId, locale, brandId } = props;\r\n\r\n const sendPlayStore = async () => {\r\n const startDateTime = new Date().toISOString();\r\n\r\n if (props.callDateDiff < 0) {\r\n props.setExpireState();\r\n props.updateInput(emailId, false);\r\n return;\r\n }\r\n\r\n var url = \"https://www2.hm.com/\" + locale.toLowerCase() + \"/member/info.html\";\r\n window.open(url);\r\n\r\n const endDateTime = new Date().toISOString();\r\n\r\n const customDimensions = {\r\n Countrycode: countrycode,\r\n ReceiptId: receiptId,\r\n Transaction: transactiondate,\r\n DeviceType: deviceType,\r\n OsName: osName,\r\n BrowserName: browserName,\r\n Locale: locale,\r\n BrandId: brandId\r\n }\r\n const CaptureNonmemberLogs = {\r\n ProcessName: \"DrsNonmemberReceiptsUIMemberButtonClick\",\r\n MessageId: \"\",\r\n StartTime: startDateTime,\r\n EndTime: endDateTime,\r\n Status: \"Success\",\r\n ErrorMessage: \"\",\r\n CustomDimensions: customDimensions\r\n }\r\n\r\n var response = await fetch('receiptline/capturelogs', {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(CaptureNonmemberLogs)\r\n });\r\n const result = await response.json();\r\n }\r\n function closebtn() {\r\n props.updateInput(emailId, false);\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n

{translation('Receipt has been sent!')}

\r\n
{translation('The receipt has been sent to')} {emailId}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
{translation('Collect your receipts in a H&M member account instead!')}
\r\n
\r\n
{translation('Become a H&M member and register your membership at next purchase and collect your digital receipt at your account.')}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Input, FormGroup, FormFeedback, Button, Row, Col, Spinner } from \"reactstrap\"\r\nimport downloadApp from '../images/DownloadApp.svg'\r\nimport '../home.css'\r\nimport { isIOS, deviceType, osName, browserName, isChrome } from 'react-device-detect';\r\nimport { TouchableOpacity, StyleSheet } from 'react-native';\r\nconst styles = StyleSheet.create({\r\n div: {\r\n float: 'right'\r\n }\r\n});\r\nexport default function DownloadReceipt(props) {\r\n const MainState = props.MainState;\r\n const ShowReceiptExpirationMessage = props.ShowReceiptExpirationMessage;\r\n const { countrycode, transactiondate, receiptId, translation, locale, brandId } = props\r\n const [showDownloadMsgObj, setShowDownloadMsgObj] = useState({ showDownloadMsg: false, showDownloadMsgContent: \"\" });\r\n\r\n const downloadreceipt = async (pdfData) => {\r\n if (props.callDateDiff < 0) {\r\n props.setExpireState();\r\n return;\r\n }\r\n const startDateTime = new Date().toISOString();\r\n\r\n const fileName = \"hm_digitalreceipt_\" + receiptId + '.pdf';\r\n\r\n try {\r\n\r\n if (pdfData) {\r\n var iOS = isIOS;\r\n var iOSVersion = [];\r\n\r\n if (iOS) {\r\n iOSVersion = navigator.userAgent\r\n .match(/OS [\\d_]+/i)[0]\r\n .substr(3)\r\n .split(\"_\")\r\n .map((n) => parseInt(n));\r\n }\r\n\r\n var attachmentData = pdfData;\r\n var attachmentName = fileName;\r\n var contentType = \"application/pdf\";\r\n\r\n var binary = atob(attachmentData.replace(/\\s/g, \"\"));\r\n var len = binary.length;\r\n var buffer = new ArrayBuffer(len);\r\n var view = new Uint8Array(buffer);\r\n\r\n for (var i = 0; i < len; i++) {\r\n view[i] = binary.charCodeAt(i);\r\n }\r\n var linkElement = document.createElement(\"a\");\r\n\r\n var hrefUrl = \"\";\r\n var blob = \"\";\r\n\r\n if (iOS && !isChrome && iOSVersion[0] <= 12) {\r\n blob = \"data:application/pdf;base64,\" + pdfData;\r\n hrefUrl = blob;\r\n }\r\n else {\r\n if (iOS && !isChrome) {\r\n contentType = \"application/octet-stream\";\r\n }\r\n blob = new Blob([view], { type: contentType });\r\n hrefUrl = window.URL.createObjectURL(blob);\r\n }\r\n\r\n linkElement.setAttribute(\"href\", hrefUrl);\r\n linkElement.setAttribute(\"target\", \"_blank\");\r\n\r\n if ((iOS && (iOSVersion[0] > 12 || isChrome)) || !iOS) {\r\n linkElement.setAttribute(\"download\", attachmentName);\r\n }\r\n\r\n var clickEvent = new MouseEvent(\"click\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n\r\n DownloadLogs(startDateTime, \"Success\", \"\");\r\n }\r\n else {\r\n DownloadLogs(startDateTime, \"Error\", \"Empty pdfData\");\r\n }\r\n }\r\n catch {\r\n setShowDownloadMsgObj(prevState => {\r\n return {\r\n showDownloadMsg: true, showDownloadMsgContent: {translation('Download has failed. Please try again or send the receipt to your email')}\r\n }\r\n });\r\n\r\n DownloadLogs(startDateTime, \"Error\", \"Download has failed\");\r\n\r\n return;\r\n }\r\n };\r\n\r\n const DownloadLogs = async (startDateTime, status, errorMsg) => {\r\n\r\n const endDateTime = new Date().toISOString();\r\n\r\n const customDimensions = {\r\n Countrycode: countrycode,\r\n ReceiptId: receiptId,\r\n Transaction: transactiondate,\r\n DeviceType: deviceType,\r\n OsName: osName,\r\n BrowserName: browserName,\r\n Locale: locale,\r\n BrandId: brandId\r\n }\r\n const CaptureNonmemberLogs = {\r\n ProcessName: \"DrsNonmemberReceiptsUIDownload\",\r\n MessageId: \"\",\r\n StartTime: startDateTime,\r\n EndTime: endDateTime,\r\n Status: status,\r\n ErrorMessage: errorMsg,\r\n CustomDimensions: customDimensions\r\n }\r\n\r\n var response = await fetch('receiptline/capturelogs', {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(CaptureNonmemberLogs)\r\n });\r\n const result = await response.json();\r\n }\r\n\r\n return (\r\n
\r\n \r\n {ShowReceiptExpirationMessage.showReceiptExpirationMessageText &&\r\n
{translation('Your receipt will expire on')}: {ShowReceiptExpirationMessage.receiptViewExpiryDate}
\r\n }\r\n \r\n \"download_app\" downloadreceipt(MainState.base64PDF)} >\r\n {showDownloadMsgObj.showDownloadMsg &&\r\n \r\n {showDownloadMsgObj.showDownloadMsgContent}\r\n \r\n }\r\n \r\n
\r\n
\r\n );\r\n}","/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable eqeqeq */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Logo from '../components/BrandLogo'\r\nimport EmailValidation from '../components/EmailValidation'\r\nimport ErrorComponent from '../components/Error'\r\nimport '../home.css'\r\nimport Confirmation from '../components/Confirmation'\r\nimport { Container, Row, Col, Input, FormGroup, Spinner, Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\"\r\nimport DownloadReceipt from '../components/DownloadReceipt';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { deviceType, osName, browserName } from 'react-device-detect';\r\n\r\nexport default function MainPage() {\r\n const [executing, setExecuting] = useState(true);\r\n const search = window.location.search;\r\n const query = new URLSearchParams(search);\r\n const crypticdata = query.get('cd')\r\n const { t, i18n } = useTranslation();\r\n\r\n var countrycode = \"\";\r\n var transactiondate = \"\";\r\n var receiptId = \"\"\r\n var brandId = \"\";\r\n var date_diff_indays = 0;\r\n var enableEmailOptionByCountryAndBrandId = false;\r\n\r\n const [MainState, setMainState] = useState({\r\n receiptLines: [],\r\n loading: true,\r\n showMessage: false,\r\n counter: 0,\r\n popup: false,\r\n emailBtnDisabled: true,\r\n previousEmail: \"\",\r\n isLoading: false,\r\n emailId: \"\",\r\n emailInputDisable: true,\r\n conditionPopup: false,\r\n emailSent: false,\r\n sim: false,\r\n emailSentCount: 0,\r\n isReceiptExpired: false,\r\n countrycode: \"\",\r\n transactiondate: \"\",\r\n receiptId: \"\",\r\n locale: \"\",\r\n enableEmailOptionByCountryAndBrandId: false,\r\n });\r\n\r\n const [ShowHeader, setShowHeader] = useState({\r\n showlogo: false,\r\n brandId: \"\",\r\n showMessage: false\r\n\r\n });\r\n\r\n const [ShowReceiptExpirationMessage, setShowReceiptExpirationMessage] = useState({\r\n showReceiptExpirationMessageText: true,\r\n date_diff_indays: \"\",\r\n receiptViewExpiryDate: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n\r\n if (!executing) return;\r\n\r\n async function populateReceiptData(counter) {\r\n\r\n let timer = 0;\r\n var templUrlGetDate = 'receiptline/crypticdata=' + crypticdata + '&deviceType=' + deviceType + '&osName=' + osName + '&browserName=' + browserName;\r\n const getDataResponse = await fetch(templUrlGetDate);\r\n const getData = await getDataResponse.json();\r\n\r\n if (getData != null && getData.status == true) {\r\n countrycode = getData.countryCode;\r\n transactiondate = getData.transactionDate;\r\n receiptId = getData.receiptId;\r\n brandId = getData.brandId;\r\n enableEmailOptionByCountryAndBrandId = getData.enableEmailOptionByCountryAndBrandId;\r\n\r\n setShowHeader(prevState => {\r\n return {\r\n ...prevState,\r\n brandId: getData.brandId,\r\n showlogo: true,\r\n showMessage: true\r\n }\r\n });\r\n\r\n setShowReceiptExpirationMessage(prevState => {\r\n return {\r\n ...prevState,\r\n showReceiptExpirationMessageText: getData.showReceiptExpirationMessage,\r\n date_diff_indays: getData.receiptExpiryDays,\r\n receiptViewExpiryDate: getData.receiptViewExpiryDate\r\n }\r\n });\r\n\r\n if (getData.disableTranslation == false) {\r\n i18n.changeLanguage(countrycode.toLowerCase() + \"_\" + brandId);\r\n\r\n }\r\n\r\n if (transactiondate != null) {\r\n if (getData.receiptExpiryDays < 0) {\r\n setExpireState()\r\n return\r\n }\r\n }\r\n }\r\n else {\r\n clearTimeout(timer);\r\n setMainState({ ...MainState, receiptLines: [], loading: false, showMessage: true });\r\n }\r\n\r\n if (countrycode.length != 2 || !/^[A-Za-z]+$/.test(countrycode)) {\r\n setMainState({ ...MainState, receiptLines: [], loading: false, showMessage: true });\r\n return;\r\n }\r\n\r\n //var templUrl = 'receiptline/GetReceipt=' + true + '/crypticdata=' + crypticdata + '&receiptData=' + JSON.stringify(getData) + '&deviceType=' + deviceType + '&osName=' + osName + '&browserName=' + browserName;\r\n getData.DeviceType = deviceType;\r\n getData.IsGetReceipt = true;\r\n getData.Crypticdata = crypticdata;\r\n getData.OSName = osName;\r\n getData.BrowserName = browserName;\r\n var response = await fetch('receiptline/postreceipt', {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(getData)\r\n });\r\n const data = await response.json();\r\n\r\n if ((data != null && (data.error == \"error\" || data.error == \"Failure\")) || counter > 2) {\r\n clearTimeout(timer);\r\n setMainState({ ...MainState, receiptLines: [], loading: false, showMessage: true });\r\n }\r\n else if (data != null && data.receiptLines.length > 0) {\r\n setMainState(prevState => {\r\n return {\r\n ...prevState,\r\n receiptLines: data.receiptLines,\r\n barcode: data.barcodeImage,\r\n loading: false,\r\n base64PDF: data.base64PDF,\r\n emailInputDisable: false,\r\n emailSentCount: (data.emailSentCount == \"\") ? 0 : Number(data.emailSentCount),\r\n countrycode: getData.countryCode,\r\n receiptId: getData.receiptId,\r\n transactiondate: getData.transactionDate,\r\n locale: getData.locale,\r\n enableEmailOptionByCountryAndBrandId: getData.enableEmailOptionByCountryAndBrandId\r\n }\r\n });\r\n\r\n setExecuting(false);\r\n clearTimeout(timer);\r\n }\r\n else {\r\n timer = setTimeout(() => {\r\n setMainState(prevState => {\r\n return { ...prevState, counter: ++MainState.counter }\r\n });\r\n populateReceiptData(MainState.counter);\r\n }, 2500);\r\n }\r\n }\r\n populateReceiptData(MainState.counter);\r\n\r\n }, [executing])\r\n\r\n function updateEmailInput(emailId, validate) {\r\n setMainState(prevState => { return { ...prevState, emailId: emailId, emailSent: validate } })\r\n }\r\n function callLoading(isLoading) {\r\n setMainState(prevState => { return { ...prevState, isLoading: isLoading } });\r\n }\r\n function updateEmailSenCount() {\r\n setMainState(prevState => { return { ...prevState, emailSentCount: MainState.emailSentCount + 1 } });\r\n }\r\n function setExpireState() {\r\n setMainState(prevState => {\r\n return {\r\n ...prevState, showMessage: true, isReceiptExpired: true, emailInputDisable: true, emailBtnDisabled: true\r\n }\r\n });\r\n }\r\n return (\r\n
\r\n \r\n { /** Logo Load ***/}\r\n {ShowHeader.showlogo &&\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n\r\n { /** Thank You Message Load ***/}\r\n {ShowHeader.showMessage &&\r\n
\r\n \r\n

{t('Thanks for selecting a digital receipt!')}

\r\n
\r\n {ShowHeader.brandId != \"0\" &&\r\n \r\n
{t('body message')}
\r\n
\r\n }\r\n
\r\n }\r\n { /** Email text box load ***/}\r\n {!MainState.emailSent && MainState.enableEmailOptionByCountryAndBrandId == true &&\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n {MainState.emailSent &&\r\n
\r\n \r\n
\r\n }\r\n {!MainState.loading && !MainState.showMessage &&\r\n
\r\n \r\n
}\r\n {\r\n !MainState.showMessage\r\n ?\r\n MainState.loading\r\n ?\r\n
\r\n \r\n \r\n Loading...\r\n \r\n Receipt Loading...\r\n \r\n
\r\n :
\r\n

\r\n {MainState.receiptLines && MainState.receiptLines.map((user, key) =>\r\n (\r\n \r\n

{user}
\r\n \r\n ))}\r\n

\r\n \"\"\r\n
{MainState.receiptId}
\r\n
\r\n : \r\n }\r\n
\r\n
\r\n )\r\n}","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport MainPage from './Pages/MainPage';\r\n\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nimport translationEN from \"./locales/en/translation.json\";\r\nimport translationFR from \"./locales/fr/translation.json\";\r\nimport translationFR_0 from \"./locales/fr/0_translation.json\";\r\nimport translationGB_0 from \"./locales/gb/0_translation.json\";\r\nimport translationGB_1 from \"./locales/gb/1_translation.json\";\r\nimport translationGB_2 from \"./locales/gb/2_translation.json\";\r\nimport translationGB_3 from \"./locales/gb/3_translation.json\";\r\nimport translationGB_4 from \"./locales/gb/4_translation.json\";\r\nimport translationGB_5 from \"./locales/gb/5_translation.json\";\r\nimport translationGB_6 from \"./locales/gb/6_translation.json\";\r\n\r\nconst resources = {\r\n en: { translation: translationEN, },\r\n fr: { translation: translationFR, },\r\n fr_0: { translation: translationFR_0, },\r\n gb_0: { translation: translationGB_0, },\r\n gb_1: { translation: translationGB_1, },\r\n gb_2: { translation: translationGB_2, },\r\n gb_3: { translation: translationGB_3, },\r\n gb_4: { translation: translationGB_4, },\r\n gb_5: { translation: translationGB_5, },\r\n gb_6: { translation: translationGB_6, },\r\n};\r\n\r\ni18n\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: \"en\",\r\n resources,\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n });\r\n\r\nexport default i18n;","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport './i18nextConf';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/hmicon.40053a1b.svg\";","module.exports = __webpack_public_path__ + \"static/media/cosicon.adcc20f9.svg\";","module.exports = __webpack_public_path__ + \"static/media/monkiicon.ebaf0f73.svg\";","module.exports = __webpack_public_path__ + \"static/media/weekdayicon.8e3bf1c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/otherstoriesicon.434b3589.svg\";","module.exports = __webpack_public_path__ + \"static/media/arketicon.75e4db9e.svg\";","module.exports = __webpack_public_path__ + \"static/media/CombinedShape.6dcf6552.svg\";","module.exports = __webpack_public_path__ + \"static/media/DownloadApp.f9ffdc63.svg\";"],"sourceRoot":""}