{"version":3,"sources":["Components/Utility/MetaTags.jsx","Components/Utility/ApiCalls.js","Components/Utility/WebStorageFactory.js","Components/Utility/JsonProvider.jsx","Components/Utility/ErrorProvider.jsx","Components/Utility/DataLayers.js","Components/Utility/LoadGRM.jsx","Components/Utility/Global.jsx","Components/Partials/Header.jsx","Components/Utility/PromotionState.js","Components/Partials/Footer.jsx","Components/Partials/Button.jsx","Components/Screens/Closed.jsx","Components/Screens/Comingsoon.jsx","Components/Screens/Splitter.jsx","Components/Screens/Login.jsx","Components/Screens/Shipping.jsx","Components/Screens/Home.jsx","Components/Screens/Landing.jsx","Components/Screens/Register.jsx","Components/Screens/Forgotpassword.jsx","Components/Screens/Recoverpassword.jsx","Components/Screens/Batchcode.jsx","Components/Screens/Movie.jsx","Components/Screens/Wordsearch.jsx","Components/Screens/Puzzle.jsx","Components/Screens/Thankyou.jsx","Components/Screens/Limit.jsx","Components/Screens/Error.jsx","Components/Screens/FAQ.jsx","Components/Screens/Terms.jsx","Components/Screens/About.jsx","Components/Utility/vendor/criticalcom.js","App.js","index.js"],"names":["MetaTags","title","description","keywords","Helmet","name","content","checkUpcCodes","dataObj","token","a","locale","urlPath","toLowerCase","axios","method","headers","undefined","enctype","data","response","checkUser","objToSend","keys","accessToken","userName","profileId","userAgent","QuestionLegal","allParamsEncrypted","russiaOrder","shippingInfoObj","shippingDetails","UserName","ua","verifyCaptcha","redemptionToken","EncodedResponse","orderAward","getPuzzle","postPuzzle","getCrossword","postCrossword","setLocalData","key","value","JSON","stringify","localStorage","setItem","getSessionData","sessionStorage","getItem","parse","setSessionData","removeSessionData","removeItem","JsonContext","createContext","LoadJson","children","useState","translations","setTranslations","settings","setSettings","windowOriginURL","window","location","origin","jsonEnvUrl","indexOf","translationsURL","get","res","Translations","getData","settingsData","settingsURL","filter","itm","Locale","getSettings","Provider","ErrorProvider","useContext","history","useHistory","HandleError","error","webStorageService","status","ErrorCode","push","errMsgInvalid","CoreKelloggs_GeneralErrorMsg_klg","replace","ErrorMessage","pageScroll","dataLayers","init","script","document","createElement","lang","getElementsByTagName","Culturecode","split","country","toUpperCase","type","id","text","body","prepend","gtm","noscript","iframe","dl","getElementById","src","height","width","style","GtmTitle","Node","prototype","insertAfter","newNode","this","nextSibling","parentNode","insertBefore","appendChild","signInData","userId","city","optIn","label","_addData","registerData","orderData","prizeNumber","imageUpload","selectSplitLocale","language_region","packCodeData","backToHP","socialData","wordSearchComplete","entryLimit","winLimit","errorCodeEvent","url","errorCode","obj","Object","length","dataLayer","LoadGRM","formType","cb","field_type","questionLegal","handleRoute","path","pathname","login","register","subscription","reset","generateGRM","querySelectorAll","container","socialLogin","host","SocialSharingLocales","configObj","environment","GRMServiceURL","match","moduleKey","GRMModuleKey","showLogin","showSignup","showFacebook","showTwitter","facebookAppId","hostname","languageParam","join","region","gigyaApiKey","SAPGigyaApiKey","onAuth","authUser","search","dataToSend","AccessToken","UsernameForServiceAuth","ProfileID","navigator","AllParamsEncrypted","API","then","proceed","redirect","message","user","City","Country","Flow","isNpr","Nobatchcoderequired","result","grm","winnerObj","Winner","winner","isExtendedPhase","ExtendedPhase","refCode","RefCode","state","catch","setTimeout","onExit","clearInterval","_interval","kreg","s","onload","onreadystatechange","readyState","regModule","KSTL","Registration","bind","topic","view","element","hidden","$","attr","on","prop","val","trim","$input","e","max","maxLength","substr","hasClass","windowWidth","innerWidth","heightss","firstcol","secondcol","css","Math","outerHeight","each","geterror","getfieldname","slice","getcontrolform","appendTo","form","hide","initReg","setInterval","localeVals","localeList","find","o","defaultLocale","windowHrefURL","href","getLocale","getIsCDC","isTOS","isCDC","getIsShipping","isShipping","showReceiptField","isSplitter","isShowReceiptField","getNpr","localeFrmUrl","forEach","item","checkLocale","browserStr","test","querySelector","className","getUA","scrollTo","animate","scrollTop","offset","top","jquery","MetaTagsData","LoadGRMGlobal","Header","useLocation","toggle","settoggle","isVisible","setIsVisible","useEffect","listen","currObj","currCountry","countryName","currLocale","temp","CountrySelectorLabel","aria-expanded","onClick","preventDefault","CoreKelloggs_CountrySelectorLinkTitle","aria-labelledby","backgroundColor","color","display","map","index","showInCountryDropDown","datacntry","redirectTo","showCountry","CoreKelloggs_SelectCountryNameLinkTitle","picturefill","srcSet","media","alt","HeaderAltText","moment","require","PromotionState","_getStates","startDate","StartDate","startDateTime","format","endDateTime","EndDate","currentDate","Date","currentDateUTC","tz","TimeZone","currentTime","outOfHrsEndDate","OutOfHrsEndDate","outOfHrsEndDateTime","extendedStartDateTime","ExtendedStartDate","getPromotionState","hours","minutes","seconds","getExtendedState","initPage","isStartPage","_checkAppState","getStates","Footer","holdingPage","closedPage","hostName","shareUrl","language","CoreKelloggs_CookieKl","idTrust","setAttribute","append","CoreKelloggs_FooterPrivacyPolicyLink","target","CoreKelloggs_PrivacyNoticeLinkTitle","dangerouslySetInnerHTML","__html","CoreKelloggs_FooterPrivacyPolicy","to","CoreKelloggs_FooterKlgLink","CoreKelloggs_KelloggsLinkTitle","CoreKelloggs_FooterKlg","FootListCompany","open","CoreKelloggs_FacebookSharingLinkTitle","aria-label","data-fbtext","FacebookSharingDescription","CoreKelloggs_FacebookImageAltText","twitterData","currentTarget","dataset","twittertext","CoreKelloggs_TwitterSharingLinkTitle","data-twittertext","TwitterSharingDescription","CoreKelloggs_TwitterImageAltText","CoreKelloggs_FaqsLinkTitle","CoreKelloggs_FooterFaq","CoreKelloggs_TermsNConditionsLinkTitle","CoreKelloggs_FooterTerms","FooterShortTerms","Button","txt","buttonType","CoreKelloggs_RegisterNowCtaTitle","CoreKelloggs_RegisterNowButton","CoreKelloggs_ReturnToHomepageCtaTitle","CoreKelloggs_BackToHomePage","Closed","pageState","CoreKelloggs_PromotionClosedPageTitle","CampaignName","MetaContent","PromotionClosedHeading","PromotionClosedDescription","PromotionClosedDescription1","PromotionClosedDescription2","CoreKelloggs_PromotionClosedCtaLink","CoreKelloggs_PromotionClosedCtaLinkTitle","CoreKelloggs_PromotionClosedCta","Comingsoon","CoreKelloggs_ComingSoonPageTitle","ComingSoonHeading","ComingSoonDescription","Splitter","SplitterPageTitle","SplitterPageHeading","SplitterPage_frenchSite_ctaTitle","SplitterPageLink1","SplitterPage_dutchSite_ctaTitle","SplitterPageLink2","SplitterPage_germanSite_ctaTitle","Login","callOnce","setCallOnce","addClass","role","LoginPageHeading","LoginPageDescription","LoginPageDescription1","LoginPageDescription2","CoreKelloggs_TncApply","LoginSectionHeading","CoreKelloggs_RegisterPageMandatoryCopy","RegisterNowCopy","RegisterNowCopy1","Shipping","shippingDefault","Require_RU_Captcha","Require_Captcha","UserDetails","FirstName","isValid","isEmpty","isWritten","LastName","Address1","Address2","PostalCode","Email","Phone","TermsandConditions","sended","processing","validateCaptcha","shipping","setShipping","tncCheckbox","setTncCheckbox","privacyCheckbox","setPrivacyCheckbox","radioBtnCntry","setRadioBtnCntry","isAndroid","expCallback","grecaptcha","onSuccess","redemToken","updateValidateCaptcha","err","console","log","render","sitekey","callback","oncheck","event","which","keyCode","attributes","for","limitInput","AddressLen","substring","userInput","attrVal","getPattern","pattern","RegExp","parseInt","minlength","CoreKelloggs_RegisterPageTitle","CoreKelloggs_RegisterPageDesc","CoreKelloggs_RegisterPageKeywords","CoreKelloggs_TncsApplyLinkTitle","CoreKelloggs_KpsShippingPageHeading","CoreKelloggs_KpsMandatoryFieldText","noValidate","data-ng-click","data-ng-model","htmlFor","CoreKelloggs_KpsFirstname","required","onKeyUp","$event","onChange","CoreKelloggs_FieldRequiredError","CoreKelloggs_KpsFirstnameError","CoreKelloggs_KpsSurname","CoreKelloggs_KpsSurnameError","CoreKelloggs_KpsAddress1","CoreKelloggs_KpsAddress1Error","CoreKelloggs_KpsAddress2","CoreKelloggs_KpsCity","CoreKelloggs_KpsCityError","CoreKelloggs_KpsPostcode","minLength","CoreKelloggs_KpsPostcodeError","CoreKelloggs_KpsEmail","CoreKelloggs_KpsConfirmEmailError","CoreKelloggs_KpsMobileNumber","onKeyDown","evt","CoreKelloggs_KpsMobileNumberError","CoreKelloggs_KpsCountry","checked","tabIndex","ShippingDetailsTncCheckBox","ShippingDetailsTncLink","subscription6028_EM","CoreKelloggs_KpsSubscriptionCheckbox","disabled","shippingInfoRussiaObj","lastName","address1","address2","postCode","terms","phone","setOrder","data-ng-activity-indicator","skip-ng-show","CoreKelloggs_KpsSubmitButton","Home","_intervalG","gigya","accounts","logout","CoreKelloggs_HomePageTitle","Landing","Landingpagetitle","LandingPage_header","LandingPage_description","LandingPage_description1","LandingPageCta1_title","LandingPage_cta1","LandingPageCerealsPageLink1","LandingPageCerealsTitle1","LandingPageCerealsCtaText1","LandingPageCta2_link","LandingPageCta2_title","LandingPage_cta2","LandingPageCta3_title","LandingPage_cta3","Register","_intervalR","focus","CoreKelloggs_RegisterPageTitle_klg","ValidEmailDirections_register","CoreKelloggs_RegisterPageHeading","Forgotpassword","Recoverpassword","ResetPasswordHeader","Batchcode","getBtnObj","codesArrObj","setCodesArrObj","receipt1","invalid","large","empty","statusFile","statusMsg","showName","file","fileNameObj","setFileNameObj","smallViewPort","btnObj","setbtnObj","modalShown","setModalShown","toggleModal","removeClass","positionModal","upcErrorLabels","CoreKelloggs_ErrorIncompleteCode","CoreKelloggs_ErrorInvalidCode","CoreKelloggs_ErrorCodeRequired","CoreKelloggs_ErrorDuplicateCode","CoreKelloggs_ErrorExpiredCode","upcCount","CodesCount","receiptAdded","codes","updateBtnOj","fileName","i","uploadReceipt","updateErrorKey","flag","errors","anyError","onBlur","transformedInput","duplicateCount","duplicate","j","verifyDuplicates","checkForDuplicates","_setStatuses","receiptNum","filename","valid","statusesArr","statusCheck","imageResponse","imageResult","Status","eq","Message","validResponse","sendForm","checkEntries","FormData","codesArr","codesInput","filenameVal","shipObj","closest","onTextChange","onUploadClick","trigger","validType","onChangeReceipt","reader","FileReader","files","elementName","size","addEventListener","readAsDataURL","BatchcodePageTitle","code","BatchcodeSectionLabel","aria-atomic","autoComplete","placeholder","CoreKelloggs_EnterCodeInputFieldTitle","CoreKelloggs_UploadImageHeader","CoreKelloggs_UploadImageTypeError","CoreKelloggs_UploadImageSizeError","CoreKelloggs_UploadImageMandatoryError","data-attr","data-clickfor","CoreKelloggs_ReceiptUploadCtaTitle","CoreKelloggs_UploadImageCta","accept","data-asd","data-code","data-file-name","data-options","data-check-entries","CoreKelloggs_ReceiptUploadIconTitle","EnterNowCtaTitle","aria-disabled","CoreKelloggs_BatchcodeSectionCta","CoreKelloggs_CodehelpSection1Title","CanImageAltText","CodehelpSection1Instruction","data-smallv","String","CoreKelloggs_Uploadimageinstructionsheading","UploadImageInstructions","UploadImageStep1","UploadImageStep2","UploadImageStep3","Movie","CoreKelloggs_ChooseMoviePageTitle","Wordsearch","crossletters","setCrossletters","findwords","setFindwords","crossword","CrossWordService","setLetters","setWords","words","wordsFromArr","wordsFrom","start","sett","highlightColor","crossHeight","contener","tabScope","button","getWords","letters","getLetters","marker","pos","x","y","isActive","canvas","context","getContext","extend","rescale","pointerEventToXY","out","currentX","currentY","touch","originalEvent","touches","changedTouches","pageX","pageY","left","floor","drawLine","end","sX","sY","beginPath","moveTo","lineTo","lineWidth","lineCap","strokeStyle","stroke","drawScrachedLines","isScratched","redraw","clearRect","contenerWidth","crosswordControl","turnOn","getScrachedWord","crosswordQueryStr","lastIndexOf","onselectstart","onmousedown","timerecorder","setFinishCallback","reason","isFinishEnable","Crossword","Words","coordinatesToReturn","lockCrossword","finishCb","finishErrorCb","startdate","set","enddate","ResultSolutionTimeSeconds","haveFinalDetails","lettersToSet","wordsToSet","wordsArr","word","finishCrossWord","answers","k","Row","Columns","SolutionTimeSeconds","RedirectUrl","fn","fnError","customMerg","obj1","obj2","obj3","posStart","posEnd","scrachedWord","lettersCoordinates","abs","checkWord","starty","count","reverse","wordChecked","min","z","CoreKelloggs_CrosswordPageTitle","WordSearchPageTitle","cross-word","control","row","vindex","WordsToFind","ng-activity-indicator","ng-show","Puzzle","cardIndex","postKey","imgSrc","values","puzzle","genRanNo","random","index1","randomNo","toString","rplacedNo","handlePuzzle","jqPuzzle","texts","defaults","rows","cols","hole","shuffle","numbers","shufflePieces","confirmShuffle","toggleOriginal","toggleNumbers","counter","timer","pauseTimer","success","fadeOriginal","callbackTimeout","animation","shuffleRounds","shuffleSpeed","slidingSpeed","fadeOriginalSpeed","gridSize","overlap","backgroundOpacity","i18n","en","shuffleLabel","toggleOriginalLabel","toggleNumbersLabel","confirmShuffleMessage","movesLabel","secondsLabel","fr","de","pt","checkOrder","numbersArray","product","round","getMatrixPosition","col","getBorderWidth","$element","property","Timer","interval","startTime","startPauseTime","timeout","totalPause","run","update","getTime","now","stop","clearTimeout","pause","resume","solved","$srcImg","lock","moves","shuffled","currHole","$dummyPiece","$dummyWrapper","$dummyGui","replaceWith","computedStyles","gui","border","padding","right","bottom","wrapper","piece","removeAttr","one","coveredWidth","coveredHeight","visibility","fullWidth","fullHeight","totalPieceWidth","totalPieceHeight","boxModelHack","boxModel","getOffset","rounds","speed","$shuffleButton","is","confirm","$gui","$background","fadeTo","remove","prependTo","$wrapper","$buttons","$display","$counter","$timer","shuffles","choices","splice","randomIndex","animCounter","lastRound","pieceIndex","$piece","$pieces","expPos","getAttribute","emptyTile","ImagePuzzleTitleAccess_copy5","ImagePuzzleTitleAccess_copy1","And","ImagePuzzleTitleAccess_copy2","ImagePuzzleTitleAccess_copy3","ImagePuzzleTitleAccess_copy4","borderWidth","margin","position","overflow","$protoPiece","backgroundImage","cursor","bgLeft","bgTop","add","clone","backgroundPosition","$originalButton","$numbersButton","opacity","$controls","$protoButton","$protoField","after","$credits","$panel","textAlign","browser","msie","mousedown","mouseout","mouseup","current","currPos","source","dest","ImagePuzzleTitleAccess_copy","positions","blankPos","currVal","expVal","movVal","ms","checkSolution","finishGame","click","show","solutionCallback","isFunction","puzzleMoves","TieBreakAnswer","imagePuzzleEntryComplete","complete","exec","jQuery","version","$1","CoreKelloggs_PuzzlePageTitle","ImagePuzzlePageTitle","ImagePuzzleSteps1","ImagePuzzleSteps2","ImagePuzzleTitleCopy","ImagePuzzleTitleCopy1","ImagePuzzleTitleCopy2","Thankyou","WinPageHeading","WinPageSubHeading","WinPageDesc1","WinPageDesc2","winnerCode","PrizeDrawThankyouHeading","PrizeDrawThankyouDescription","PrizeDrawThankyouDescription1","ThankyouPageHeading_wm","ThankyouPageDescription_wm","ThankyouPageDescription1_wm","ThankyouPageDescription2_wm","ThankyouPageHeading_tos","ThankyouPageDescription_tos","ThankyouPageDescription1_tos","ThankyouPageDescription2_tos","setThankyouContent","CoreKelloggs_ThankyouPageTitle","Limit","limitPageHeading","limitPageDesc","limitPageDesc1","limitPageDesc2","globalLimit","Sorry","WinLimit","CoreKelloggs_MaximumEntryLimit","CoreKelloggs_MaximumEntryLimit_teamPringles","DailyLimit","DailyLimitDescription","CoreKelloggs_LimitPageTitle","Error","ErrorKey","titleError","CoreKelloggs_ErrorPageTitle","CoreKelloggs_ErrorPageHeading","FAQ","hash","defaultFaq","clicked_country","currentlang","FaqCyprus","Faq","faqContent","setFaqContent","clickedCountry","setClickedCountry","show_hide","CoreKelloggs_FaqPageTitle","LabelCyprus","LabelMalta","Terms","defaultTerms","TncCyprus","Tnc","tncContent","setTncContent","CoreKelloggs_TermsPageTitle","About","AboutPageTitle","AboutPageContent","serviceURL","JS_ServiceURL","base","siteURL","ajax","dataType","jsonpCallback","request","errorThrown","getAlert","jsonObject","json","msg","hits","detMsgURL","alertImgURL","shortMsg","innerHTML","App","loaded","setLoaded","loadApp","env","faqTnc","sa","digitalData","page","promotionname","propertyID","siteRegion","siteType","siteCountry","siteLanguage","head","AdobeLaunchScript","Fragment","exact","classList","toLocaleLowerCase","ReactDOM"],"mappings":"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","file":"static/js/main.f2d0af45.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst MetaTags = ({ title, description, keywords }) => {\r\n return (\r\n \r\n {title}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MetaTags;","import axios from 'axios';\r\nimport { locale } from './Global';\r\n\r\nexport const checkUpcCodes = async (dataObj, token) => {\r\n if (!locale || !dataObj) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-codes';\r\n if (locale.toLowerCase() == 'es_es'||locale.toLowerCase() == 'pt_pt' ) {\r\n urlPath = '/api/' + locale + '/redemption/validate-codesIT'\r\n }\r\n if (locale.toLowerCase() == 'es_es'||locale.toLowerCase() == 'pt_pt') {\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { \r\n 'Content-Type': undefined, \r\n enctype: 'multipart/form-data', \r\n 'redemption-token': token \r\n },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n } else {\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data: { 'codes': dataObj },\r\n });\r\n return response.data;\r\n }\r\n};\r\n\r\nexport const checkUser = async objToSend => {\r\n if (!locale || !objToSend) { return; }\r\n var keys = '',\r\n urlPath = '/api/' + locale + '/redemption/user';\r\n for (keys in objToSend) {\r\n if (objToSend[keys] === '') {\r\n return;\r\n }\r\n }\r\n var dataObj = {\r\n 'accessToken': objToSend.accessToken,\r\n 'userName': objToSend.userName,\r\n 'profileId': objToSend.profileId,\r\n 'userAgent': objToSend.userAgent,\r\n 'QuestionLegal': objToSend.QuestionLegal,\r\n 'allParamsEncrypted': objToSend.allParamsEncrypted\r\n }\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n // headers: {\r\n // 'redemption-token': objToSend['redemption-token']\r\n // },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const russiaOrder = async shippingInfoObj => {\r\n if (!locale || !shippingInfoObj) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/userKPS';\r\n var dataObj = {\r\n 'shippingDetails': shippingInfoObj.shippingDetails,\r\n 'UserName':shippingInfoObj.UserName,\r\n 'accessToken': shippingInfoObj['redemption-token'],\r\n 'profileId': -1,\r\n 'userAgent': shippingInfoObj.ua,\r\n 'allParamsEncrypted': shippingInfoObj['redemption-token']\r\n }\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': shippingInfoObj['redemption-token']\r\n },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const verifyCaptchaEnterCode = async data => {\r\n if (!locale || !data) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/authenticate-validate-codes';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': data.redemptionToken\r\n },\r\n data: { EncodedResponse: data.token },\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const verifyCaptcha = async data => {\r\n if (!locale || !data) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/authenticate';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': data.redemptionToken\r\n },\r\n data: { EncodedResponse: data.token },\r\n });\r\n return response.data;\r\n\r\n};\r\n\r\nexport const orderAward = async (shippingInfoObj) => {\r\n if (!locale || !shippingInfoObj) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/init-order';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': shippingInfoObj['redemption-token'] },\r\n data: {'shippingDetails': shippingInfoObj.shippingDetails}\r\n });\r\n return response.data;\r\n};\r\nexport const getPuzzle = async (token) => {\r\n if (!locale) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/get-skill';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token }\r\n });\r\n return response.data;\r\n};\r\nexport const postPuzzle = async (data,token) => {\r\n if (!locale || !data) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-skill';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data : data\r\n });\r\n return response.data;\r\n};\r\nexport const getCrossword = async (token) => {\r\n if (!locale) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/get-crossword';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token }\r\n });\r\n return response.data;\r\n};\r\nexport const postCrossword = async (data,token) => {\r\n if (!locale || !data) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-crossword';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data : data\r\n });\r\n return response.data;\r\n};\r\n","export const getLocalData = (key) => {\r\n var value = localStorage.getItem(key);\r\n if (!value) { return; }\r\n // assume it is an object that has been stringified\r\n if (value[0] === \"{\" && key != 'servToken') {\r\n value = JSON.parse(value);\r\n }\r\n return value;\r\n};\r\nexport const setLocalData = (key, value) => {\r\n if (!key || !value) { return; }\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n localStorage.setItem(key, value);\r\n};\r\nexport const removeLocalData = (key) => {\r\n if (!key) { return; }\r\n localStorage.removeItem(key);\r\n};\r\nexport const getSessionData = (key) => {\r\n var value = sessionStorage.getItem(key);\r\n if (!value) { return; }\r\n // assume it is an object that has been stringified\r\n if (value[0] === \"{\" && key != 'servToken') {\r\n value = JSON.parse(value);\r\n }\r\n return value;\r\n};\r\nexport const setSessionData = (key, value) => {\r\n if (!key || !value) { return; }\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n sessionStorage.setItem(key, value);\r\n};\r\nexport const removeSessionData = (key) => {\r\n if (!key) { return; }\r\n sessionStorage.removeItem(key);\r\n};\r\n","import React, { useState, createContext } from 'react';\r\nimport axios from 'axios';\r\nimport { locale } from './Global';\r\n\r\nconst JsonContext = createContext();\r\nexport const LoadJson = ({ children }) => {\r\n const [translations, setTranslations] = useState('');\r\n const [settings, setSettings] = useState('');\r\n let windowOriginURL = window.location.origin,\r\n jsonEnvUrl = (windowOriginURL.indexOf('stage-') >= 0 || windowOriginURL.indexOf('staging-') >= 0) ? 'Stage' : (windowOriginURL.indexOf('local.') >= 0 || windowOriginURL.indexOf('dev-') >= 0) ? 'Dev' : 'Prod';\r\n // Translations Call\r\n let translationsLoadFlag = (translations === '') ? true : false,\r\n translationsURL = (locale == 'be' || locale == 'ch') ? '/Content/mock/' + locale + '/translations.json' : '/Content/translations/NBASnacks2023_' + locale + '.json';\r\n if (translationsLoadFlag) {\r\n async function getData() {\r\n const res = await axios.get(translationsURL);\r\n setTranslations(res.data.Translations);\r\n }\r\n getData();\r\n }\r\n\r\n // Settings Call\r\n let settingsLoadFlag = (settings === '') ? true : false,\r\n settingsURL = (locale == 'be' || locale == 'ch') ? '/Content/mock/settings_splitter.json' : '/Content/settingsJson/values_' + jsonEnvUrl + '.json',\r\n settingsData;\r\n if (settingsLoadFlag) {\r\n async function getSettings() {\r\n const res = await axios.get(settingsURL);\r\n settingsData = res.data.filter(function (itm) {\r\n return itm.Locale == locale;\r\n });\r\n setSettings(settingsData[0]);\r\n }\r\n getSettings();\r\n }\r\n return {children}\r\n \r\n}\r\n\r\nexport default JsonContext;","import { useHistory } from \"react-router-dom\";\r\nimport { useContext } from 'react';\r\nimport * as webStorageService from './WebStorageFactory';\r\nimport { locale, pageScroll } from './Global';\r\nimport JsonContext from './JsonProvider';\r\n\r\nconst ErrorProvider = () => {\r\n const { translations } = useContext(JsonContext);\r\n const history = useHistory();\r\n return {\r\n HandleError: (error) => {\r\n webStorageService.setSessionData('createPageState', 'Error');\r\n if (error!=undefined) {\r\n if (error.status === 500 || error.status === 503 || error.status === 400 || error.status === 403) {\r\n if (error.data.ErrorCode == undefined) {\r\n webStorageService.setSessionData('ErrorCode', error.status);\r\n history.push('/' + locale + '/Error/' + error.status);\r\n let errMsgInvalid = (translations.CoreKelloggs_GeneralErrorMsg_klg).replace(\"100\", error.status);\r\n webStorageService.setSessionData('ErrorKey', errMsgInvalid);\r\n } else {\r\n webStorageService.setSessionData('ErrorKey', translations[error.data.ErrorMessage]);\r\n webStorageService.setSessionData('ErrorCode', error.data.ErrorCode);\r\n history.push('/' + locale + '/Error/' + error.data.ErrorCode);\r\n }\r\n pageScroll();\r\n }\r\n } else {\r\n history.push('/' + locale + '/Error/100');\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default ErrorProvider;","import { locale } from './Global';\r\n\r\nconst dataLayers = () => {\r\n return {\r\n init: _initDataLayers,\r\n gtm: _initGTM,\r\n signInData: _SuccessfulSignIn,\r\n registerData: _SuccessfulAccountRegistration,\r\n orderData: _OderComplete,\r\n //orderDataIT: _OderCompleteIT,\r\n imageUpload: _ImageUpload,\r\n selectSplitLocale: _SelectSplitLocale,\r\n packCodeData: _PackCodeSubmission,\r\n backToHP: _BackToHP,\r\n socialData: _SocialShare,\r\n wordSearchComplete: _WordSearchComplete,\r\n entryLimit: _entryLimit,\r\n winLimit: _winLimit,\r\n errorCodeEvent: _ErrorCode,\r\n };\r\n function _initDataLayers(settings) {\r\n var script = document.createElement('script'),\r\n body = document.getElementsByTagName('body'),\r\n lang = (locale == 'be' || locale == 'ch') ? settings.Culturecode.split('-')[0] : locale.split('_')[0].toLowerCase(),\r\n country = (locale == 'be' || locale == 'ch') ? locale : locale.split('_')[1].toUpperCase();\r\n script.type = 'text/javascript';\r\n script.id = 'DataLayer';\r\n script.text = 'var dataLayer = [{\\'language\\': \\'' + lang + '\\', \\'locale\\': \\'' + country + '\\', \\'brand\\': \\'Kelloggs\\', \\'campaign\\': \\'NBA Snacks 2023\\'}];';\r\n document.body.prepend(script);\r\n }\r\n function _initGTM(translations) {\r\n var script = document.createElement('script'),\r\n noscript = document.createElement('noscript'),\r\n iframe = document.createElement('iframe'),\r\n body = document.getElementsByTagName('body'),\r\n dl = document.getElementById('DataLayer');\r\n script.type = 'text/javascript';\r\n script.text = '(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\\'gtm.start\\':new Date().getTime(),event:\\'gtm.js\\'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';j.async=true;j.src=\\'//www.googletagmanager.com/gtm.js?id=\\'+i+dl;f.parentNode.insertBefore(j,f);})(window,document,\\'script\\',\\'dataLayer\\',\\'GTM-5VF3\\');';\r\n iframe.src = '//www.googletagmanager.com/ns.html?id=GTM-5VF3';\r\n iframe.height = 0;\r\n iframe.width = 0;\r\n iframe.style = 'display:none;visibility:hidden';\r\n iframe.name = 'grm-iframe';\r\n iframe.title = translations.GtmTitle;\r\n Node.prototype.insertAfter = function (newNode) {\r\n if (this.nextSibling) {\r\n return this.parentNode.insertBefore(newNode, this.nextSibling);\r\n } else {\r\n return this.parentNode.appendChild(newNode);\r\n }\r\n };\r\n dl.insertAfter(noscript);\r\n noscript.appendChild(iframe);\r\n noscript.insertAfter(script);\r\n }\r\n function _addData(obj) {\r\n if (!obj || Object.keys(obj).length <= 0) { return; }\r\n if (window.dataLayer) {\r\n window.dataLayer.push(obj);\r\n }\r\n return;\r\n }\r\n function _PackCodeSubmission() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'EAN Code Submission',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n return;\r\n }\r\n function _ImageUpload() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Image Upload(Iberia)',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n return;\r\n }\r\n function _SelectSplitLocale(language_region) {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Language Page',\r\n 'label': language_region\r\n };\r\n _addData(obj);\r\n }\r\n function _WordSearchComplete() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'WordSearch Entry Complete',\r\n 'label': 'Prize TBC'\r\n };\r\n\r\n _addData(obj);\r\n return;\r\n }\r\n function _SuccessfulSignIn(userId, city, country, optIn, label) {\r\n var updated_label = (label == 'Social') ? label : 'On-site';\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Account Log In',\r\n 'label': updated_label,\r\n 'userID': userId ? userId : ''\r\n /*'city': city ? city : '',\r\n 'country': country ? country : '',\r\n 'optIn': optIn ? 'Yes' : 'No'*/\r\n };\r\n _addData(obj);\r\n }\r\n function _SuccessfulAccountRegistration(userId, city, country, optIn, label) {\r\n var updated_label = (label == 'Social') ? label : 'On-site';\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Account Registration',\r\n 'label': updated_label,\r\n 'userID': userId ? userId : '',\r\n 'optIn': optIn ? 'Opt In' : 'Opt Out'\r\n };\r\n _addData(obj);\r\n }\r\n function _OderComplete(prizeNumber) {\r\n var label;\r\n switch (prizeNumber) {\r\n case 0:\r\n label = 'Lose';\r\n break;\r\n case 1:\r\n label = 'Basketball';\r\n break;\r\n case 97:\r\n label = 'Prize TBC';\r\n break;\r\n }\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Entry Complete',\r\n 'label': label\r\n };\r\n _addData(obj);\r\n }\r\n // function _OderCompleteIT(prizeNumber) {\r\n // var label;\r\n // switch (prizeNumber) {\r\n // case 1:\r\n // label = 'USA Trip'\r\n // break;\r\n // case 2:\r\n // label = 'Hoop'\r\n // break;\r\n // case 3:\r\n // label = 'Gift Card 50'\r\n // break;\r\n // case 4:\r\n // label = 'Gift Card 25'\r\n // break;\r\n // case 5:\r\n // label = 'Sweatbands'\r\n // break;\r\n // case 6:\r\n // label = 'Stressball'\r\n // break; \r\n // default:\r\n // // $location.path(lang + '/Home');\r\n // break;\r\n // }\r\n // var obj = {\r\n // 'event': 'KE1.event',\r\n // 'category': 'NBA Snacks 2023',\r\n // 'action': 'Entry Complete',\r\n // 'label': label\r\n // };\r\n // _addData(obj);\r\n // }\r\n function _SocialShare(label) {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Social Share',\r\n 'label': label ? label : ''\r\n };\r\n _addData(obj);\r\n }\r\n function _entryLimit() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Entry Limit',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _winLimit() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Win Limit Exceeded',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _BackToHP() {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Return To Homepage',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _ErrorCode(url, errorCode) {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'NBA Snacks 2023',\r\n 'action': 'Error Code',\r\n 'label': url ? url : '',\r\n 'errorCode': errorCode ? errorCode : ''\r\n };\r\n _addData(obj);\r\n }\r\n}\r\n\r\nexport default dataLayers;","import { useHistory } from \"react-router-dom\";\r\nimport { useContext } from 'react';\r\nimport { locale, $, pageScroll, isNpr } from './Global';\r\nimport * as API from './ApiCalls';\r\nimport * as webStorageService from './WebStorageFactory';\r\nimport JsonContext from './JsonProvider';\r\nimport ErrorProvider from \"./ErrorProvider\";\r\nimport dataLayers from \"./DataLayers\";\r\n\r\nconst LoadGRM = (formType, cb) => {\r\n const { settings } = useContext(JsonContext);\r\n const history = useHistory();\r\n const { HandleError } = ErrorProvider();\r\n const handleRoute = (path) => {\r\n history.push({ pathname: path });\r\n pageScroll();\r\n };\r\n const handleRouteNpn = (path, obj) => {\r\n if(path.toLowerCase().indexOf('thankyou')>-1){\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }else if(path.toLowerCase().indexOf('puzzle')>-1){\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n history.push({ pathname: path, state: obj });\r\n pageScroll();\r\n };\r\n var login = false,\r\n register = false,\r\n subscription = false,\r\n reset = false,\r\n field_type,\r\n category,\r\n category_body,\r\n questionLegal;\r\n\r\n switch (formType) {\r\n case 'login':\r\n login = true;\r\n register = false;\r\n break;\r\n case 'register':\r\n login = false;\r\n register = true;\r\n break;\r\n case 'forgot':\r\n login = true;\r\n register = false;\r\n break;\r\n case 'reset':\r\n // login = true;\r\n // register = false;\r\n reset = true;\r\n break;\r\n default:\r\n login = true;\r\n register = true;\r\n }\r\n var generateGRM = function () {\r\n if (document.querySelectorAll('#reg-container').length) {\r\n var container = document.getElementById('reg-container'),\r\n url = window.location.host,\r\n socialLogin = (settings.SocialSharingLocales.toLowerCase()).indexOf(locale.toLowerCase()) > -1 ? true : false,\r\n configObj = {\r\n environment: settings.GRMServiceURL.match('stage') ? 'stage' : 'prod', // or 'stage' for testing\r\n moduleKey: settings.GRMModuleKey, //modulekeyvalue, //\r\n showLogin: login,\r\n showSignup: register,\r\n showFacebook: socialLogin,\r\n showTwitter: socialLogin,\r\n facebookAppId: window.location.hostname.indexOf('kelloggs.com') < 0 ? '293589412691589' : '3076416759292148',\r\n languageParam : locale.split(\"_\").join(\"-\"),\r\n region:\"KEU\",\r\n gigyaApiKey : settings.SAPGigyaApiKey,\r\n // myAccountUrl: '/path/to/myaccount.html', // required, if you are implementing my account v6\r\n onAuth: function (authUser) {\r\n // cookie authUser properties, or post them back to your server via AJAX\r\n // then fire callback to notify the reg v6 module that your auth routine has finished\r\n // for example:\r\n if (authUser) {\r\n if (login || register) {\r\n if (window.location.search.length) {\r\n field_type = window.location.search.split('utm_term=')[1];\r\n if (field_type == \"allcategories\") {\r\n category = window.location.search.split('&utm_content=')[1].split('&')[0];\r\n\r\n }\r\n else {\r\n category = field_type;\r\n }\r\n }\r\n else {\r\n category = \"NA\";\r\n }\r\n \r\n var dataToSend = {\r\n // 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'QuestionLegal': questionLegal,\r\n 'accessToken': authUser.AccessToken,\r\n 'userName': authUser.UsernameForServiceAuth,\r\n 'profileId': authUser.ProfileID,\r\n 'userAgent': navigator.userAgent,\r\n 'allParamsEncrypted': authUser.AllParamsEncrypted\r\n };\r\n // $rootScope.profileId = authUser.ProfileID;\r\n // $rootScope.disableRegister = true;\r\n\r\n\r\n API.checkUser(dataToSend).then((response) => {\r\n // var locale = webStorageService.getSessionData('requestedlocale'),\r\n var page = '',\r\n proceed = true;\r\n if (response.redirect) {\r\n\r\n proceed = false;\r\n \r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n webStorageService.setSessionData('limitType', response.message);\r\n }\r\n if (response.redirect.indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'puzzle');\r\n }\r\n handleRoute(response.redirect);\r\n\r\n }\r\n if (response.user) {\r\n response.user.profileId = authUser.ProfileID;\r\n // resourceService.setGRMUser(response.user);\r\n webStorageService.setSessionData('grmUser', response.user);\r\n }\r\n if (response.token) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n var token = response.token;\r\n }\r\n if (formType === 'login') {\r\n dataLayers().signInData(authUser.ProfileID, authUser.City, authUser.Country, subscription, authUser.Flow);\r\n }\r\n if (formType === 'register') {\r\n dataLayers().registerData(authUser.ProfileID, authUser.City, authUser.Country, subscription, authUser.Flow);\r\n }\r\n if ((formType === 'login' || formType === 'register') && proceed) {\r\n \r\n if (isNpr && response.Nobatchcoderequired) {\r\n var data = [];\r\n API.checkUpcCodes(data, webStorageService.getSessionData('servToken')).then(function (response) {\r\n \r\n if (!!response.result && response.result.length > 0) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n var grm = webStorageService.getSessionData('grmUser');\r\n var shippingInfoObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'shippingDetails': grm\r\n };\r\n API.orderAward(shippingInfoObj).then(function (response) {\r\n \r\n \r\n if (response.token) {\r\n \r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n } else {\r\n webStorageService.removeSessionData('servToken');\r\n }\r\n // var grmUser = {};\r\n // if (Object.keys(resourceService.getGRMUser()).length !== 0) {\r\n // grmUser = resourceService.getGRMUser();\r\n // } else {\r\n // grmUser = webStorageService.getSessionData('grmUser');\r\n // }\r\n if (response.redirect) {\r\n var winnerObj = {};\r\n if (response.redirect.indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n if (response.redirect.toLowerCase().indexOf('thankyou') > -1) {\r\n if (response.Winner !== undefined && response.Winner !== null) {\r\n winnerObj = {\r\n winner: response.Winner,\r\n isExtendedPhase: response.ExtendedPhase,\r\n refCode: response.RefCode\r\n }\r\n dataLayers().orderData(response.Winner);\r\n }\r\n }\r\n \r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n }\r\n handleRouteNpn(response.redirect, winnerObj);\r\n \r\n } else {\r\n HandleError();\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n } else {\r\n webStorageService.setSessionData('createPageState', 'Batchcodeentry');\r\n handleRoute(\"/\" + locale + \"/BatchCodeEntry\");\r\n }\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n } else if (reset) {\r\n setTimeout(function () {\r\n window.location = '/' + locale + '/Home';\r\n }, 4000);\r\n }\r\n }\r\n },\r\n onExit: function (authUser) {\r\n // your redirect logic goes here \r\n // NOTE: if you already used onAuth to authenticate the user\r\n // then you don't need to do anything with authUser here\r\n // console.log(authUser, 'exit');\r\n // AccessService.clearPermissions();\r\n // SpoonService.clearSpoon();\r\n // ShippingService.clearData();\r\n // $location.path(startAgainUrl);\r\n }\r\n };\r\n function initReg() {\r\n // initialize the reg v6 module\r\n var regModule = window.KSTL.Registration.init(container, configObj);\r\n // subscribe to module event notifications\r\n var eventViewRender = regModule.bind('view:render', function (topic, view) {\r\n cb();\r\n if (view.name === '/Sweepstakes/Error') {\r\n view.element.hidden = true;\r\n }\r\n // personal checkbox\r\n $('#reg-container input[type=\"checkbox\"] + label').prepend('');\r\n\r\n // placeholder\r\n /*$('#reg-container input[name=\"FirstName\"]').attr(\"placeholder\", resourceService.translations.GrmFirstNamePlaceholder);\r\n $('#reg-container input[name=\"LastName\"]').attr(\"placeholder\", resourceService.translations.GrmLastNamePlaceholder);\r\n $('#reg-container input[name=\"Password\"]').attr(\"placeholder\", resourceService.translations.GrmPasswordPlaceholder);\r\n $('#reg-container input[name=\"PasswordConfirm\"]').attr(\"placeholder\", resourceService.translations.GrmConfirmPasswordPlaceholder);\r\n $('#reg-container input[name=\"AddressLine1\"]').attr(\"placeholder\", resourceService.translations.GrmAddressLine1Placeholder);\r\n $('#reg-container input[name=\"AddressLine2\"]').attr(\"placeholder\", resourceService.translations.GrmAddressLine2Placeholder);\r\n $('#reg-container input[name=\"City\"]').attr(\"placeholder\", resourceService.translations.GrmTownCityPlaceholder);\r\n $('#reg-container input[name=\"PostalCode\"]').attr(\"placeholder\", resourceService.translations.GrmPostcodePlaceholder);\r\n $('#reg-container input[name=\"UserName\"]').attr(\"placeholder\", resourceService.translations.GrmEmailPlaceholder);\r\n $('#reg-container input[name=\"UserNameConfirm\"]').attr(\"placeholder\", resourceService.translations.GrmConfirmEmailPlaceholder);\r\n $('#reg-container input[name=\"PhoneNumber1\"]').attr(\"placeholder\", resourceService.translations.GrmPhoneNumberPlaceholder);\r\n */\r\n\r\n $('#KSTL-Registration-wrapper-TermsConditions label a').attr(\"target\", \"_self\");\r\n\r\n $('#KSTL-Registration-wrapper-HeaderSubscription input').on('change', function () {\r\n subscription = $(this).prop(\"checked\");\r\n });\r\n\r\n $('#KSTL-Registration-QuestionLegal').on('change', function () {\r\n questionLegal = $('#KSTL-Registration-QuestionLegal').val().trim();\r\n $('#KSTL-Registration-QuestionLegal').val(questionLegal);\r\n });\r\n\r\n var $input = $('#KSTL-Registration-PostalCode');\r\n $input.on('keyup', (function (e) {\r\n var max = $input[0] ? $input[0].maxLength : 10;\r\n if (max) {\r\n if ($input.val().length > max) {\r\n $input.val($input.val().substr(0, max));\r\n }\r\n }\r\n }));\r\n // set column height\r\n var thises = $('div[ng-activity-indicator=\"Circled\"]');\r\n if (thises.hasClass(\"ng-hide\")) {\r\n var windowWidth = window.innerWidth;\r\n var heightss = \"\";\r\n var firstcol = $('.js-setheight .twocols > div:first-child .content');\r\n var secondcol = $('.js-setheight .twocols > div:last-child .content');\r\n if (windowWidth > 768) {\r\n firstcol.css({ \"height\": \"\" });\r\n secondcol.css({ 'height': \"\" });\r\n heightss = Math.max(firstcol.outerHeight(true), secondcol.outerHeight(true));\r\n firstcol.css({ 'height': heightss });\r\n secondcol.css({ 'height': heightss });\r\n }\r\n }\r\n\r\n // change position of validate-error\r\n $(\".ns-popover-list-theme\").each(function () {\r\n var geterror = $(this);\r\n var getfieldname = $(this).attr(\"id\").slice(26);\r\n var controlformid = \"#KSTL-Registration-wrapper-\" + getfieldname;\r\n var getcontrolform = $(controlformid);\r\n geterror.appendTo(getcontrolform);\r\n });\r\n // if ($('.pod').length > 0){ \r\n // var $pod = $('.pod'),\r\n // grmScope = KSTL.Registration.frmElement($pod.get()).isolateScope();\r\n // }\r\n // if (!grmScope) {\r\n // \treturn;\r\n // }\r\n });\r\n\r\n var eventFormSubmit = regModule.bind('form:submit', function (topic, form) {\r\n /*console.log('regv6 form:submit', form.name);\r\n if you wish to unsubscribe\r\n regModule.unbind(eventViewRender);\r\n console.log(eventFormSubmit);*/\r\n });\r\n\r\n var eventForgotPwdRender = regModule.bind('forgotpassword:render', function (topic, view) {\r\n $(\".login-container .login-heading\").hide();\r\n });\r\n\r\n var eventTnCLinkRender = regModule.bind('registration:render', function (topic, view) {\r\n if ($('#KSTL-Registration-AddressLine1').length) {\r\n var addressVal = $('#KSTL-Registration-AddressLine1').val();\r\n // if(addressVal==''|| addressVal==null || addressVal==undefined)\r\n // window.KSTL.Registration.frmElement.AddressLine1 = '.';\r\n }\r\n });\r\n }\r\n clearInterval(_interval);\r\n // async script loader... do not modify\r\n return (function () {\r\n var src, kreg, s;\r\n if(settings.SAPGigyaApiKey!=undefined && settings.SAPGigyaApiKey!=null && settings.SAPGigyaApiKey!=''){\r\n src = settings.GRMServiceURL + '/scripts/registrationv2.js';;\r\n }else{\r\n src = settings.GRMServiceURL + '/scripts/registration.min.js';\r\n }\r\n kreg = document.createElement('script');\r\n kreg.type = 'text/javascript';\r\n kreg.onload = kreg.onreadystatechange = function () {\r\n if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {\r\n kreg.onload = kreg.onreadystatechange = null;\r\n if (container) {\r\n initReg();\r\n }\r\n }\r\n };\r\n kreg.src = src;\r\n s = document.getElementsByTagName('script')[0];\r\n s.parentNode.insertBefore(kreg, s);\r\n })();\r\n }\r\n }\r\n var _interval = setInterval(function () {\r\n generateGRM();\r\n }, 300);\r\n};\r\n\r\nexport default LoadGRM;\r\n","import { localeList, defaultLocale } from './ConfigData.json';\r\nimport MetaTagsData from './MetaTags';\r\nimport LoadGRMGlobal from './LoadGRM';\r\nimport jquery from 'jquery';\r\n\r\n\r\nlet localeVals = localeList.find(o => o.locale === defaultLocale),\r\n windowOriginURL = window.location.origin,\r\n windowHrefURL = window.location.href,\r\n getLocale = defaultLocale,\r\n getIsTOS = localeVals.isTOS,\r\n getIsCDC = localeVals.isCDC,\r\n getIsShipping = localeVals.isShipping,\r\n getIsSplitter = localeVals.isSplitter,\r\n showReceiptField = localeVals.isShowReceiptField,\r\n getNpr = localeVals.isNpr;\r\n\r\nconst checkLocale = () => {\r\n var localeFrmUrl;\r\n if(windowHrefURL == windowOriginURL + '/'){\r\n localeFrmUrl = defaultLocale;\r\n }else{\r\n localeFrmUrl = (windowHrefURL.split(windowOriginURL + '/')[1]).split('/')[0].toLowerCase();\r\n }\r\n\r\n localeList.forEach(function (item) {\r\n if (localeFrmUrl.toLowerCase() == item.locale.toLowerCase()) {\r\n getLocale = item.locale;\r\n getIsTOS = item.isTOS;\r\n getIsCDC = item.isCDC;\r\n getIsShipping = item.isShipping;\r\n getIsSplitter = item.isSplitter;\r\n showReceiptField = item.isShowReceiptField;\r\n getNpr = item.isNpr;\r\n }\r\n });\r\n}\r\ncheckLocale();\r\n\r\nconst getUA = () => {\r\n var ua = navigator.userAgent,\r\n browserStr = /Safari/i.test(ua) && !(/Chrome/i.test(ua)) ? 'safari ' : '',\r\n browserStr = /Android/i.test(ua) ? browserStr + 'android ' : browserStr + '',\r\n browserStr = /iPhone/i.test(ua) ? browserStr + 'iphone ' : browserStr + '',\r\n browserStr = /iPad/i.test(ua) ? browserStr + 'ipad ' : browserStr + '',\r\n browserStr = /Mac/i.test(ua) ? browserStr + 'mac' : browserStr + '';\r\n document.querySelector('html').className = browserStr;\r\n}\r\ngetUA();\r\n\r\nexport const pageScroll = () => {\r\n window.scrollTo(0, 0);\r\n setTimeout(function () {\r\n $('html, body').animate({\r\n scrollTop: $('.container').offset().top - 100\r\n }, 1000);\r\n }, 1000);\r\n}\r\n\r\nexport const relativeURL = process.env.PUBLIC_URL;\r\nexport const $ = jquery;\r\nexport const locale = getLocale;\r\nexport const isTOS = getIsTOS;\r\nexport const isCDC = getIsCDC;\r\nexport const isShipping = getIsShipping;\r\nexport const isSplitter = getIsSplitter;\r\nexport const isShowReceiptField = showReceiptField;\r\nexport const isNpr = getNpr;\r\nexport const MetaTags = MetaTagsData;\r\nexport const LoadGRM = LoadGRMGlobal;","import React, { useContext, useState, useEffect } from 'react';\r\nimport { useHistory, useLocation, } from 'react-router-dom';\r\nimport { locale } from '../Utility/Global';\r\nimport { localeList } from '../Utility/ConfigData.json';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nconst Header = () => {\r\n\r\n const { translations } = useContext(JsonContext);\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const [toggle, settoggle] = useState(false);\r\n const [isVisible, setIsVisible] = useState(true);\r\n const showLanguageList = (e) => {\r\n settoggle(!toggle);\r\n e.preventDefault();\r\n }\r\n\r\n useEffect(() => {\r\n // on Load\r\n if (window.location.pathname.toLowerCase().indexOf('home') > -1 || window.location.pathname.toLowerCase().indexOf('comingsoon') > -1 || window.location.pathname.toLowerCase().indexOf('landing') > -1) {\r\n setIsVisible(true);\r\n } else {\r\n setIsVisible(false);\r\n }\r\n //route change handling\r\n history.listen((location) => {\r\n if (location.pathname.toLowerCase().indexOf('home') > -1 || window.location.pathname.toLowerCase().indexOf('comingsoon') > -1 || window.location.pathname.toLowerCase().indexOf('landing') > -1) {\r\n setIsVisible(true);\r\n } else {\r\n setIsVisible(false);\r\n }\r\n });\r\n\r\n }, [history,location]);\r\n const showCountry = (e, value, name) => {\r\n e.preventDefault();\r\n webStorageService.removeSessionData('countryName');\r\n let redirectTo = window.location.pathname.toLowerCase().indexOf('landing') > -1 ? '/Landing' : '/Home';\r\n webStorageService.setSessionData('countryName', name);\r\n window.location = \"/\" + value + redirectTo;\r\n }\r\n\r\n //find current country and locale according to url\r\n let currObj = localeList.find(o => o.locale === locale);\r\n let currCountry = currObj.countryName;\r\n let currLocale = currObj.locale;\r\n\r\n //find current country and locale according to session\r\n\r\n if(webStorageService.getSessionData('countryName') != undefined ){\r\n let temp = webStorageService.getSessionData('countryName');\r\n let tempLocale = localeList.find(o => o.countryName === temp).locale;\r\n if(tempLocale!=currLocale){\r\n webStorageService.removeSessionData('countryName');\r\n }else{\r\n currCountry = webStorageService.getSessionData('countryName')\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {/* country selector dropdown */}\r\n {isVisible &&\r\n
\r\n {translations.CountrySelectorLabel} \r\n
\r\n
\r\n \r\n \r\n {currCountry}\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 {translations.HeaderAltText}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Header;","import * as webStorageService from './WebStorageFactory';\r\nimport { locale } from './Global';\r\nimport dataLayers from './DataLayers';\r\nconst moment = require('moment-timezone'); // UTC time according to the timezones npm i moment-timezone\r\nconst PromotionState = (settings, translations) => {\r\n\r\n function _initPage() {\r\n var path = window.location.pathname.toLowerCase(),\r\n isStartPage = (path.match('home') || path.match('\\/' + locale + '\\/$') || path.match('\\/' + locale + '$') || path === '/') && !path.match('thankyou') ? true : false;\r\n dataLayers().init(settings);\r\n dataLayers().gtm(translations);\r\n if (isStartPage) {\r\n webStorageService.removeSessionData('servToken');\r\n webStorageService.removeLocalData('servToken');\r\n webStorageService.removeSessionData('grmUser');\r\n webStorageService.removeSessionData('lastUrlArr');\r\n }\r\n //Setting initial data in session storage\r\n // initConfig.setDefaultUrl(locale);//set default/start url for requested localization\r\n webStorageService.setSessionData('requestedLang', locale); //store requested localization in session storage\r\n // var initPermission = initConfig.getPagePermission(); //get start permissions for each page from init configuration service\r\n //Data Layers\r\n if (isStartPage) {\r\n // webStorageService.setSessionData('permission', initPermission); //store start permission in session storage \r\n // dataLayers.init();\r\n // dataLayers.gtm();\r\n }\r\n if (path.match('recoverpassword') || path.match('forgotpassword')) {\r\n // webStorageService.setSessionData('permission', initPermission); //store start permission in session storage \r\n }\r\n\r\n var fState = new _getStates();\r\n //check Promotion State status and redirect to valid page\r\n _checkAppState(fState.getPromotionState());\r\n // _checkAppState('holdingpage');\r\n };\r\n function _getStates() {\r\n if (locale != 'ch' && locale != 'be') {\r\n\r\n var startDate = moment(settings.StartDate),\r\n startDateTime = startDate.format(),\r\n \r\n endDate = moment(settings.EndDate),\r\n endDateTime = endDate.format(),\r\n\r\n currentDate = new Date(),\r\n currentDateUTC = moment(currentDate).tz(settings.TimeZone),\r\n currentTime = currentDateUTC.format(),\r\n\r\n outOfHrsEndDate = settings.OutOfHrsEndDate == null ? currentDateUTC : moment(settings.OutOfHrsEndDate),\r\n outOfHrsEndDateTime = outOfHrsEndDate.format(),\r\n\r\n extendedStartDate = settings.ExtendedStartDate == null ? currentDateUTC : moment(settings.ExtendedStartDate),\r\n extendedStartDateTime = extendedStartDate.format();\r\n }\r\n function _getPromotionState() {\r\n if (locale != 'ch' && locale != 'be') {\r\n if (currentTime >= startDateTime) {\r\n if (currentTime > endDateTime)\r\n return 'closed';\r\n else if (currentTime < outOfHrsEndDateTime) {\r\n if (currentDateUTC.hours() >= startDate.hours() && currentDateUTC.hours() <= outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.hours() == startDate.hours() && currentDateUTC.hours() == outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.minutes() >= outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.minutes() == outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.seconds() > outOfHrsEndDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n\r\n }\r\n }\r\n else if (currentDateUTC.hours() == startDate.hours()) {\r\n if (currentDateUTC.minutes() <= startDate.minutes()) {\r\n if (currentDateUTC.minutes() == startDate.minutes()) {\r\n if (currentDateUTC.seconds() < startDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n }\r\n } else if (currentDateUTC.hours() == outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.minutes() >= outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.minutes() == outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.seconds() > outOfHrsEndDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n\r\n }\r\n }\r\n return 'live';\r\n }\r\n else {\r\n return 'outofhours'\r\n }\r\n }\r\n\r\n return 'live';\r\n }\r\n return 'holdingpage';\r\n } else {\r\n return 'splitter';\r\n }\r\n }\r\n function _getExtendedState() {\r\n if (currentTime >= extendedStartDateTime && currentTime < endDateTime) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n return {\r\n getPromotionState: _getPromotionState,\r\n getExtendedState: _getExtendedState,\r\n };\r\n };\r\n function _checkAppState(state) {\r\n if (!state) { return; }\r\n var url = '';\r\n switch (state.toLowerCase()) {\r\n case 'holdingpage':\r\n url = '/' + locale + '/Comingsoon';\r\n webStorageService.setSessionData('createPageState', 'Comingsoon');\r\n if ((window.location.href.toLowerCase()).indexOf('comingsoon') <= -1) {\r\n window.location.href = url;\r\n }\r\n break;\r\n case 'closed':\r\n url = '/' + locale + '/Closed';\r\n webStorageService.setSessionData('createPageState', 'Closed');\r\n if ((window.location.href.toLowerCase()).indexOf('closed') <= -1) {\r\n window.location.href = url;\r\n }\r\n break;\r\n case 'outofstock':\r\n url = '/' + locale + '/Outofstock';\r\n webStorageService.setSessionData('createPageState', 'Outofstock');\r\n break;\r\n case 'outofhours':\r\n webStorageService.setSessionData('createPageState', 'Outofhours');\r\n break;\r\n case 'live':\r\n break;\r\n case 'splitter':\r\n url = '/' + locale;\r\n break;\r\n default:\r\n url = '/' + locale + '/Error';\r\n webStorageService.setSessionData('createPageState', 'Error');\r\n window.location.href = url;\r\n break;\r\n }\r\n }\r\n return {\r\n initPage: _initPage,\r\n getStates: _getStates\r\n }\r\n\r\n}\r\nexport default PromotionState;","import React, { useContext } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { relativeURL, locale, $ } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport PromotionState from '../Utility/PromotionState';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\n\r\nconst Footer = () => {\r\n const { translations, settings } = useContext(JsonContext);\r\n const { getStates } = PromotionState(settings, translations);\r\n var holdingPage = (getStates().getPromotionState().toLowerCase() == 'holdingpage') ? true : false;\r\n var closedPage = (getStates().getPromotionState().toLowerCase() == 'closed') ? true : false;\r\n\r\n let hostName = window.location.hostname,\r\n shareUrl = (hostName == 'nbasnacks.kelloggs.com') ? hostName + '/Content/s_/' + locale + '/' : hostName + '/Content/s_dev/' + locale + '/';\r\n\r\n const shareFacebook = (e) => {\r\n e.preventDefault();\r\n window.open('https://www.facebook.com/sharer/sharer.php?u=' + shareUrl, 'targetWindow', 'toolbar=no, location=no, status=no, menubar=no, scrollbars=yes, resizable=yes,width=550, height=450');\r\n dataLayers().socialData('Facebook');\r\n return false;\r\n }\r\n\r\n const shareTwitter = (e) => {\r\n e.preventDefault();\r\n let twitterData = e.currentTarget.dataset.twittertext;\r\n window.open('https://twitter.com/intent/tweet?url=' + shareUrl + '&text=' + twitterData, 'targetWindow', 'toolbar=no, location=no, status=no, menubar=no, scrollbars=yes, resizable=yes,width=550, height=450');\r\n dataLayers().socialData('Twitter');\r\n return false;\r\n }\r\n\r\n const cookiePolicy = () => {\r\n setTimeout(function () {\r\n if (document.getElementById('PlaceidTrust')) {\r\n if ($('#cookieContainer').length > 0 && !$('.truste-script').length) {\r\n let country = locale.split('_')[1].toLowerCase(),\r\n language = locale.split('_')[0],\r\n src = translations.CoreKelloggs_CookieKl + '&language=' + language,\r\n idTrust = src.split('&')[1].split('=')[1];\r\n document.getElementById('PlaceidTrust').setAttribute('id', idTrust);\r\n $('.trusty').append('');\r\n }\r\n }\r\n }, 1000);\r\n }\r\n cookiePolicy();\r\n\r\n return (\r\n <>\r\n \r\n {/*
\r\n
*/}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default Footer;","import React, { useContext } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { locale } from \"../Utility/Global\";\r\nimport dataLayers from \"../Utility/DataLayers\";\r\nimport JsonContext from \"../Utility/JsonProvider\";\r\n\r\nconst Button = ({ buttonType }) => {\r\n const { translations } = useContext(JsonContext);\r\n let title, txt, redirect;\r\n switch (buttonType) {\r\n case \"register\":\r\n title = translations.CoreKelloggs_RegisterNowCtaTitle;\r\n txt = translations.CoreKelloggs_RegisterNowButton;\r\n redirect = '/' + locale + '/Register'\r\n break;\r\n default:\r\n title = translations.CoreKelloggs_ReturnToHomepageCtaTitle;\r\n txt = translations.CoreKelloggs_BackToHomePage;\r\n redirect = \"/\" + locale + \"/Home\";\r\n }\r\n\r\n return (\r\n <>\r\n dataLayers().backToHP()}\r\n className=\"button\"\r\n title={title}\r\n >\r\n {txt}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { MetaTags, locale } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport Button from '../Partials/Button';\r\nconst Closed = () => {\r\n const { translations } = useContext(JsonContext);\r\n document.querySelector('body').setAttribute('pagename', 'Closed');\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Closed';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Closed') {\r\n return \r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

\r\n

{translations.PromotionClosedDescription}

\r\n

{translations.PromotionClosedDescription1}

\r\n

{translations.PromotionClosedDescription2}

\r\n \r\n {translations.CoreKelloggs_PromotionClosedCta}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Closed;","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { MetaTags, locale } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport Button from '../Partials/Button';\r\nconst Comingsoon = () => {\r\n const { translations } = useContext(JsonContext);\r\n document.querySelector('body').setAttribute('pagename', 'Comingsoon');\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Comingsoon';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Comingsoon') {\r\n return \r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

{translations.ComingSoonHeading}

\r\n

\r\n \r\n {translations.CoreKelloggs_PromotionClosedCta}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Comingsoon;","import React, { useContext } from 'react';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\n\r\nconst Splitter = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Splitter');\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n \r\n {\r\n locale == 'be' &&\r\n \r\n }\r\n {\r\n locale == 'ch' &&\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Splitter;","import React, { useContext, useState } from 'react';\r\nimport { locale, LoadGRM, $, isCDC } from '../Utility/Global'\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport Button from '../Partials/Button';\r\nconst Login = () => {\r\n const { translations } = useContext(JsonContext);\r\n const [callOnce, setCallOnce] = useState(false);\r\n\r\n if (!callOnce) {\r\n LoadGRM('login', function () {\r\n disableRegister = false;\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n });\r\n setCallOnce(true);\r\n }\r\n\r\n var disableRegister,\r\n ua = navigator.userAgent.toLowerCase();\r\n document.querySelector('body').setAttribute('pagename', 'Login');\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{translations.LoginPageHeading}
\r\n

{translations.LoginPageHeading}

\r\n

\r\n

{translations.LoginPageDescription1}

\r\n

{translations.LoginPageDescription2}

\r\n

\r\n \r\n \r\n {translations.CoreKelloggs_TncApply}\r\n \r\n

\r\n

{translations.LoginSectionHeading}

\r\n \r\n \r\n \r\n \"\"/\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n {!isCDC &&
\r\n

\r\n
\r\n {/*
{translations.Or}
*/}\r\n\r\n

{translations.RegisterNowCopy}

\r\n
\r\n }\r\n {isCDC &&
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Login;","import React, { useState, useContext } from 'react';\r\nimport { Redirect, useHistory } from 'react-router-dom';\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport * as API from '../Utility/ApiCalls';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\n\r\nconst Shipping = () => {\r\n const { translations, settings } = useContext(JsonContext);\r\n var shippingDefault, Require_RU_Captcha = settings.Require_Captcha;\r\n if (webStorageService.getSessionData('shippingBtnObj') == undefined) {\r\n shippingDefault = [{\r\n UserDetails: {\r\n FirstName: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n LastName: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Address1: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Address2: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n City: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n PostalCode: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Email: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Phone: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n TermsandConditions: {\r\n isEmpty: true,\r\n error: false\r\n },\r\n sended: false,\r\n processing: false,\r\n validateCaptcha: (locale == 'ru_RU' && Require_RU_Captcha == \"true\") ? false : true\r\n },\r\n }]\r\n } else {\r\n shippingDefault = JSON.parse(webStorageService.getSessionData(\"shippingBtnObj\"));\r\n }\r\n\r\n const [firstName, setFirstName] = useState('')\r\n const [lastName, setLastName] = useState('')\r\n const [shipping, setShipping] = useState(shippingDefault);\r\n const [tncCheckbox, setTncCheckbox] = useState(false);\r\n const [privacyCheckbox, setPrivacyCheckbox] = useState(false);\r\n const [radioBtnCntry, setRadioBtnCntry] = useState(false);\r\n const history = useHistory();\r\n const {HandleError} = ErrorProvider();\r\n const handleRoute = (path) => {\r\n history.push({pathname:path});\r\n pageScroll();\r\n }\r\n document.querySelector('body').setAttribute('pagename', 'Shipping');\r\n\r\n var ua = navigator.userAgent.toLowerCase(),\r\n isAndroid = ua.indexOf(\"android\") > -1,\r\n // processing = false,\r\n // Require_RU_Captcha = translations.Require_Captcha,\r\n // validateCaptcha = (locale == 'ru_RU' && Require_RU_Captcha == \"true\") ? false : true,\r\n RIChecked = false,\r\n tcChecked = false,\r\n countrySel = false,\r\n countryValue = '',\r\n UserDetails = '',\r\n _interval,\r\n sended = false,\r\n isIRL = (locale === 'ie' ? true : false);\r\n\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n // $('html, body').animate({\r\n // scrollTop: $('header').offset().top - 100\r\n // }, 2000); \r\n var setCaptcha = function () {\r\n if ($('#sdForm').length && $('.g-recaptcha-response').length < 1 && typeof window.grecaptcha.render !== 'undefined') {\r\n if (locale == 'ru_RU' && Require_RU_Captcha == \"true\") {\r\n window.grecaptcha.render(\r\n 'g-recaptcha', {\r\n sitekey: '6LeRF1scAAAAAB-yBjJMrzLYSBqNAGjkf2PokFq1',\r\n callback: onSuccess,\r\n 'expired-callback': expCallback,\r\n 'hl': 'ru'\r\n }\r\n );\r\n }\r\n clearInterval(_interval);\r\n }\r\n };\r\n _interval = setInterval(function () {\r\n setCaptcha();\r\n }, 300);\r\n // countrySelected = function(event) {\r\n // countrySel = true;\r\n // console.log(event);\r\n // }\r\n function expCallback() {\r\n window.grecaptcha.reset();\r\n shippingDefault = JSON.parse(webStorageService.getSessionData('shippingBtnObj'))\r\n shippingDefault[0].UserDetails.validateCaptcha = false;\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n }\r\n function onSuccess(token) {\r\n shippingDefault = webStorageService.getSessionData('shippingBtnObj') == undefined ? shippingDefault : JSON.parse(webStorageService.getSessionData('shippingBtnObj'));\r\n var redemToken = webStorageService.getSessionData('servToken') ? webStorageService.getSessionData('servToken') : '';\r\n if (token) {\r\n API.verifyCaptcha({ token: token, redemptionToken: redemToken }).then(function (res) {\r\n let updateValidateCaptcha = (res.status == 'FAILED') ? false : true;\r\n shippingDefault[0].UserDetails.validateCaptcha = updateValidateCaptcha;\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n webStorageService.setSessionData('servToken', res.token);\r\n }).catch(function (err) {\r\n console.log(err)\r\n })\r\n }\r\n }\r\n var oncheck = function (event) {\r\n var keyCode = event.which || event.keyCode;\r\n if (keyCode == 13) {\r\n if (event.target.attributes.for.value == 'KSTL-Registration-TermsandConditions') {\r\n setTncCheckbox(!tncCheckbox);\r\n } else {\r\n setPrivacyCheckbox(!privacyCheckbox);\r\n }\r\n }\r\n }\r\n var limitInput = function (event) {\r\n if (isAndroid) {\r\n var AddressLen = event.target.maxLength;\r\n if (event.target.value.length > AddressLen) {\r\n event.target.value = event.target.value.substring(0, event.target.value - 1);\r\n }\r\n }\r\n }\r\n var userInput = function (event) {\r\n let attrVal = event.target.attributes.name.value,\r\n getPattern = attrVal == 'Address1' || attrVal == 'Address2' ? '' : event.target.attributes.pattern.value,\r\n pattern = RegExp(getPattern);\r\n shippingDefault[0].UserDetails[attrVal].isWritten = true;\r\n if (!event.target.value.length) {\r\n shippingDefault[0].UserDetails[attrVal].isEmpty = true;\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n }else {\r\n shippingDefault[0].UserDetails[attrVal].isEmpty = false;\r\n if (!pattern.test(event.target.value)) {\r\n shippingDefault[0].UserDetails[attrVal].isValid = false\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n } else {\r\n if(( attrVal == 'PostalCode'|| attrVal == 'Phone') && event.target.value.length < parseInt(event.target.attributes.minlength.value) ){\r\n shippingDefault[0].UserDetails[attrVal].isValid = false\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n }else{\r\n shippingDefault[0].UserDetails[attrVal].error = false;\r\n shippingDefault[0].UserDetails[attrVal].isValid = true;\r\n shippingDefault[0].UserDetails[attrVal].value = event.target.value;\r\n }\r\n }\r\n }\r\n\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n\r\n }\r\n var CountryValue = 'Russia',\r\n //sets default checked attribute for Terms\r\n TermsValues = true,\r\n onlyNumbers = function (evt) {\r\n if ((evt.which < 48 && evt.which > 41) || evt.which > 57) {\r\n evt.preventDefault();\r\n }\r\n }\r\n //public metodhs\r\n // setOrder = setOrder;\r\n function setOrder(event) {\r\n event.preventDefault();\r\n if (!shipping[0].UserDetails.FirstName.isEmpty && !shipping[0].UserDetails.LastName.isEmpty && !shipping[0].UserDetails.Address1.isEmpty && !shipping[0].UserDetails.Address2.isEmpty && !shipping[0].UserDetails.City.isEmpty && !shipping[0].UserDetails.PostalCode.isEmpty && !shipping[0].UserDetails.processing && shipping[0].UserDetails.validateCaptcha) {\r\n shippingDefault[0].UserDetails.sended = true;\r\n shippingDefault[0].UserDetails.processing = true;\r\n webStorageService.setSessionData('')\r\n setShipping(shippingDefault);\r\n var shippingInfoRussiaObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'UserName': shipping[0].UserDetails.Email.value,\r\n 'ua': ua,\r\n 'shippingDetails': {\r\n name: shipping[0].UserDetails.FirstName.value,\r\n lastName: shipping[0].UserDetails.LastName.value,//formObj.LastName,\r\n address1: shipping[0].UserDetails.Address1.value,//formObj.Address1,\r\n address2: shipping[0].UserDetails.Address2.value,//formObj.Address2,\r\n city: shipping[0].UserDetails.City.value,//formObj.City,\r\n postCode: shipping[0].UserDetails.PostalCode.value,//formObj.PostalCode,\r\n state: '',\r\n Email: shipping[0].UserDetails.Email.value,\r\n terms: tncCheckbox,\r\n subscription: privacyCheckbox,\r\n phone: shipping[0].UserDetails.Phone.value,\r\n country: radioBtnCntry// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n API.russiaOrder(shippingInfoRussiaObj).then(function(response){\r\n if(response.token){\r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n // token = response.token;\r\n var shippingInfoObj = {\r\n 'redemption-token': response.token,\r\n 'shippingDetails': {\r\n name: shipping[0].UserDetails.FirstName.value,\r\n lastName: shipping[0].UserDetails.LastName.value,//formObj.LastName,\r\n address1: shipping[0].UserDetails.Address1.value,//formObj.Address1,\r\n address2: shipping[0].UserDetails.Address2.value ,//formObj.Address2,\r\n city: shipping[0].UserDetails.City.value,//formObj.City,\r\n postCode: shipping[0].UserDetails.PostalCode.value,//formObj.PostalCode,\r\n state: '',\r\n Email:shipping[0].UserDetails.Email.value,\r\n terms:tncCheckbox, \r\n subscription:privacyCheckbox,\r\n phone: shipping[0].UserDetails.Phone.value,\r\n country: 'ru'// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n webStorageService.setSessionData('shippingInfoObj',shippingInfoObj);\r\n webStorageService.setSessionData('createPageState', 'Batchcodeentry');\r\n handleRoute(\"/\" + locale + \"/BatchCodeEntry\"); \r\n }\r\n else if(response.redirect){\r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('limitType', response.message);\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n handleRoute(response.redirect); \r\n } \r\n }\r\n else{\r\n // $location.path(lang + '/Error');\r\n }\r\n }).catch(function(error){\r\n HandleError(error.response);\r\n });\r\n }\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.LoginPageHeading}

\r\n
{translations.LoginPageHeading}
\r\n

{translations.LoginPageDescription}

\r\n

\r\n {translations.CoreKelloggs_TncApply}\r\n

\r\n

{translations.CoreKelloggs_KpsShippingPageHeading}

\r\n

\r\n
\r\n {/* */}\r\n
\r\n \r\n {/* */}\r\n
\r\n {/* */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n className={shipping[0].UserDetails.FirstName.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.FirstName.isEmpty && shipping[0].UserDetails.FirstName.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.FirstName.isValid && !shipping[0].UserDetails.FirstName.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsFirstnameError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n className={shipping[0].UserDetails.LastName.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.LastName.isEmpty && shipping[0].UserDetails.LastName.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.LastName.isValid && !shipping[0].UserDetails.LastName.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsSurnameError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.Address1.isValid ? 'form-valid-field' : ''}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.Address1.isEmpty && shipping[0].UserDetails.Address1.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_KpsAddress1Error}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.Address2.isValid ? 'form-valid-field' : ''}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.Address2.isEmpty && shipping[0].UserDetails.Address2.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n limitInput($event)}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.City.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.City.isEmpty && shipping[0].UserDetails.City.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.City.isValid && !shipping[0].UserDetails.City.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsCityError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n pattern=\"^[0-9]*$\"\r\n required={true}\r\n onChange={($event) => userInput($event)}\r\n className={shipping[0].UserDetails.PostalCode.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.PostalCode.isEmpty && shipping[0].UserDetails.PostalCode.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.PostalCode.isValid && !shipping[0].UserDetails.PostalCode.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsPostcodeError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n userInput($event)}\r\n className={shipping[0].UserDetails.Email.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.Email.isEmpty && shipping[0].UserDetails.Email.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.Email.isValid && !shipping[0].UserDetails.Email.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsConfirmEmailError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n {/* */}\r\n
\r\n \r\n\r\n onlyNumbers($event)}\r\n onChange={($event) => userInput($event)}\r\n className={shipping[0].UserDetails.Phone.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.Phone.isEmpty && shipping[0].UserDetails.Phone.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.Phone.isValid && !shipping[0].UserDetails.Phone.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsMobileNumberError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n setRadioBtnCntry(!radioBtnCntry)} />\r\n \r\n {/*
*/}\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n setTncCheckbox(!tncCheckbox)}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.TermsandConditions.isEmpty && shipping[0].UserDetails.TermsandConditions.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n setPrivacyCheckbox(!privacyCheckbox)} />\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
\r\n {/* */}\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Shipping;","import React, { useContext } from 'react';\r\nimport {locale, isShipping, MetaTags, $ } from '../Utility/Global';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport Login from './Login';\r\nimport Shipping from './Shipping';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Home = () => {\r\n\r\n const { translations } = useContext(JsonContext);\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n webStorageService.removeSessionData('btnObj');\r\n webStorageService.removeSessionData('shippingBtnObj');\r\n webStorageService.removeSessionData('receiptObj');\r\n webStorageService.removeSessionData('popShow');\r\n\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n return (\r\n <>\r\n \r\n {\r\n isShipping ? : \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Home;","import React, { useContext } from \"react\";\r\nimport { MetaTags, $ } from \"../Utility/Global\";\r\nimport * as webStorageService from \"../Utility/WebStorageFactory\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { locale } from \"../Utility/Global\";\r\nimport JsonContext from \"../Utility/JsonProvider\";\r\n\r\nconst Landing = () => {\r\n const { translations } = useContext(JsonContext);\r\n webStorageService.removeSessionData(\"codes\");\r\n webStorageService.removeSessionData(\"createPageState\");\r\n webStorageService.removeSessionData(\"btnObj\");\r\n webStorageService.removeSessionData(\"shippingBtnObj\");\r\n webStorageService.removeSessionData(\"receiptObj\");\r\n webStorageService.removeSessionData(\"popShow\");\r\n\r\n document.querySelector(\"body\").setAttribute(\"pagename\", \"Landing\");\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.LandingPage_header}

\r\n

{translations.LandingPage_description}

\r\n

{translations.LandingPage_description1}

\r\n \r\n {translations.LandingPage_cta1}\r\n \r\n \r\n {translations.LandingPageCerealsCtaText1}\r\n \r\n \r\n {translations.LandingPage_cta2}\r\n \r\n \r\n {translations.LandingPage_cta3}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Landing;","import React, { useContext, useState } from 'react';\r\nimport { MetaTags, LoadGRM, $, isCDC } from '../Utility/Global';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Register = () => {\r\n const { translations } = useContext(JsonContext);\r\n const [callOnce, setCallOnce] = useState(false);\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Register');\r\n if (!callOnce) {\r\n LoadGRM('register', function () {\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n });\r\n setCallOnce(true);\r\n const _intervalR = setInterval(function () {\r\n setFocus();\r\n }, 300);\r\n\r\n function setFocus() {\r\n if (document.getElementById('KSTL-Registration-FirstName') != null) {\r\n document.getElementById('KSTL-Registration-FirstName').focus();\r\n clearInterval(_intervalR);\r\n }\r\n }\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {!isCDC &&
\r\n

{translations.CoreKelloggs_RegisterPageTitle_klg}

\r\n

{translations.ValidEmailDirections_register}

\r\n

\r\n
{translations.CoreKelloggs_RegisterPageHeading}
\r\n {/*

{translations.LoginPageTitle}

*/}\r\n
\r\n
\r\n }\r\n {isCDC &&
\r\n
\r\n
\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Register;","import React, { useContext } from 'react';\r\nimport { MetaTags, LoadGRM } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Forgotpassword = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Forgotpassword');\r\n\r\n if ((window.location.href).indexOf('resetpassword') > 0 || (window.location.href).indexOf('unlockaccount') > 0) {\r\n LoadGRM('reset', function () { });\r\n }\r\n else {\r\n LoadGRM('forgot', function () { });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Forgotpassword;","import React, { useContext } from 'react';\r\nimport { MetaTags, LoadGRM } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Recoverpassword = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Recoverpassword');\r\n\r\n LoadGRM('reset', function () { });\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.ResetPasswordHeader}

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Recoverpassword;","import React, { useState, useContext ,useEffect} from 'react';\r\nimport { Redirect, useHistory } from 'react-router-dom';\r\nimport { locale, isShowReceiptField, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport * as API from '../Utility/ApiCalls';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nconst Batchcode = () => {\r\n const history = useHistory();\r\n const { HandleError } = ErrorProvider();\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n const handleRoute = (path, obj) => {\r\n if (path.toLowerCase().indexOf('thankyou') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n } else if (path.toLowerCase().indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n else if (path.toLowerCase().indexOf('crossword') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Crossword');\r\n }\r\n else if (path.toLowerCase().indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n }\r\n history.push({ pathname: path, state: obj });\r\n pageScroll();\r\n }\r\n const [codesArrObj, setCodesArrObj] = useState([{\r\n 'objId': '',\r\n 'id': '',\r\n 'errors': '',\r\n 'labels': '',\r\n 'value': '',\r\n 'uploadId': '',\r\n 'receiptNum': '',\r\n 'isWritten': false,\r\n 'duplicateKey': -1\r\n }]);\r\n const [fileNameObj, setFileNameObj] = useState([{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }])\r\n const { translations, settings } = useContext(JsonContext);\r\n var _interval,\r\n getBtnObj;\r\n\r\n if (webStorageService.getSessionData('btnObj') == undefined) {\r\n getBtnObj = [{\r\n 'sended': false,\r\n 'anyError': false,\r\n 'isEmpty': true,\r\n 'validResponse': false\r\n }];\r\n } else {\r\n getBtnObj = JSON.parse(webStorageService.getSessionData(\"btnObj\"));\r\n }\r\n const [btnObj, setbtnObj] = useState(getBtnObj)\r\n const [modalShown, setModalShown] = useState(false);\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n\r\n pageState = 'Batchcodeentry';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Batchcodeentry') {\r\n return \r\n }\r\n let smallViewPort;\r\n var toggleModal = function (event) {\r\n event.preventDefault();\r\n setModalShown(!modalShown)\r\n if (!modalShown) {\r\n $('html,body').removeClass('activeOverlay');\r\n }\r\n setTimeout(function () {\r\n positionModal();\r\n }, 5);\r\n };\r\n var positionModal = function () {\r\n if (modalShown) {\r\n if ($('.ng-modal-dialog').height() > ($(window).height() - 50)) {\r\n smallViewPort = false;\r\n }\r\n else {\r\n smallViewPort = true;\r\n }\r\n }\r\n }\r\n if (pageState == 'Batchcodeentry') {\r\n var upcErrorLabels = {\r\n 'length': translations.CoreKelloggs_ErrorIncompleteCode,\r\n 'pattern': translations.CoreKelloggs_ErrorInvalidCode,\r\n 'redeemed': translations.CoreKelloggs_ErrorInvalidCode,\r\n 'empty': translations.CoreKelloggs_ErrorCodeRequired,\r\n 'duplicate': translations.CoreKelloggs_ErrorDuplicateCode,\r\n 'invalid': translations.CoreKelloggs_ErrorInvalidCode,\r\n 'expired': translations.CoreKelloggs_ErrorExpiredCode\r\n },\r\n hidePromoCodeField,\r\n upcCount = settings.CodesCount;\r\n\r\n if (locale == 'lv_LV' || locale == 'bg_bg') {\r\n hidePromoCodeField = true;\r\n }\r\n\r\n\r\n\r\n\r\n var imageValid = false,\r\n numValid = false,\r\n PromotionIdNotFound = false,\r\n codes = [],\r\n updateBtnOj = getBtnObj,\r\n receiptAdded,\r\n // $anchorScroll,\r\n // modalShown = false,\r\n coordinatesToReturn = {},\r\n lockCrossword = false,\r\n showlanguageSelector = true,\r\n fileName = [];\r\n\r\n\r\n if (webStorageService.getSessionData('codes') == undefined) {\r\n for (var i = 1; i <= upcCount; i++) {\r\n codes.push({\r\n 'objId': i,\r\n 'id': 'Code' + i,\r\n 'errors': '',\r\n 'labels': 'BatchcodeSection1Label' + i,\r\n 'value': '',\r\n 'uploadId': 'uploadImg' + i,\r\n 'receiptNum': 'receipt' + i,\r\n 'isWritten': false,\r\n 'duplicateKey': -1\r\n });\r\n }\r\n } else {\r\n codes = JSON.parse(webStorageService.getSessionData(\"codes\"));\r\n }\r\n\r\n var uploadReceipt = false;\r\n if (locale.toLowerCase() == 'es_es' || locale.toLowerCase() == 'pt_pt') {\r\n \r\n document.querySelector('body').className = 'activeOverlay';\r\n uploadReceipt = true;\r\n if (webStorageService.getSessionData('receiptObj') == undefined) {\r\n fileName = [{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }];\r\n } else {\r\n fileName = JSON.parse(webStorageService.getSessionData(\"receiptObj\"));\r\n }\r\n } else {\r\n uploadReceipt = false;\r\n }\r\n\r\n var checkForDuplicates = function (e, index) {\r\n var value = e.target.value.toLowerCase();\r\n for (var i = 0; i < codes.length; i++) {\r\n if (value == codes[i].value.toLowerCase() && i != index && (!codes[i].errors || codes[i].errors == upcErrorLabels.duplicate)) {\r\n codes[i].errors = upcErrorLabels.duplicate;\r\n codes[index].errors = upcErrorLabels.duplicate;\r\n //codes[i].duplicateKey = index;\r\n }\r\n }\r\n // setCodesArr(codes);\r\n }\r\n var verifyDuplicates = function (index) {\r\n var duplicateCount;\r\n for (var i = 0; i < codes.length; i++) {\r\n duplicateCount = 0;\r\n if (i != index && codes[i].errors == upcErrorLabels.duplicate) {\r\n for (var j = 0; j < codes.length; j++) {\r\n if (codes[i].value.toLowerCase() == codes[j].value.toLowerCase() && i != j) {\r\n duplicateCount++;\r\n }\r\n }\r\n if (!duplicateCount && codes[i].errors == upcErrorLabels.duplicate) {\r\n codes[i].errors = '';\r\n }\r\n }\r\n }\r\n\r\n }\r\n var updateErrorKey = function () {\r\n var flag = false;\r\n for (var i = 0; i < codes.length; i++) {\r\n if (codes[i].errors) {\r\n flag = true;\r\n }\r\n }\r\n updateBtnOj[0].anyError = (flag ? true : false);\r\n }\r\n var onBlur = function (index, e) {\r\n // if(!item.$viewValue){\r\n // _setInvalidFieldState(item.$name, 'required');\r\n // }\r\n if (e.target.value.length < e.target.maxLength && e.target.value.length) {\r\n codes[index].errors = upcErrorLabels.length;\r\n } else if (!e.target.value.length) {\r\n codes[index].errors = upcErrorLabels.empty;\r\n updateBtnOj[0].isEmpty = true;\r\n } else {\r\n updateBtnOj[0].isEmpty = false;\r\n }\r\n updateErrorKey();\r\n codes[index].isWritten = true;\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n // alignVertically();\r\n };\r\n var userInput = function (e, index) {\r\n codes[index].value = e.target.value;\r\n codes[index].isWritten = true;\r\n if (e.target.value == 0 && (codes[index].isWritten || codes[index].errors)) {\r\n codes[index].errors = upcErrorLabels.empty;\r\n }\r\n else if (codes[index].isWritten || codes[index].errors) {\r\n let transformedInput = e.target.value.replace(/[^0-9]/g, '');\r\n e.target.value = transformedInput\r\n if (e.target.value.length < e.target.maxLength) {\r\n codes[index].errors = upcErrorLabels.length;\r\n updateErrorKey();\r\n }\r\n verifyDuplicates(index);\r\n updateBtnOj[0].isEmpty = false;\r\n }\r\n if (e.target.value.length == e.target.maxLength) {\r\n e.preventDefault();\r\n } else if (e.target.value.length > e.target.maxLength) {\r\n // Maximum exceeded\r\n e.target.value = e.target.value.substring(0, e.target.maxLength);\r\n }\r\n if (e.target.value.length == e.target.maxLength) {\r\n codes[index].errors = '';\r\n checkForDuplicates(e, index);\r\n updateErrorKey();\r\n }\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n // alignVertically();\r\n }\r\n var _setStatuses = function (response) {\r\n var valid = true,\r\n statusesArr = response.result,\r\n statusCheck = true,\r\n imageResponse = uploadReceipt ? response.imageResult : '',\r\n receiptNum, scrollElement, filename;\r\n codes = webStorageService.getSessionData(\"codes\") ? JSON.parse(webStorageService.getSessionData(\"codes\")) : '';\r\n filename = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : '';\r\n if (uploadReceipt && !!imageResponse) {\r\n for (i = 0; i < imageResponse.length; i++) {\r\n if (imageResponse[i].Status.toLowerCase() == 'failed') {\r\n valid = false;\r\n\r\n $('.upload-img').eq(i).val(null);\r\n receiptNum = 'receipt' + (i + 1);\r\n filename[0][receiptNum].statusFile = true;\r\n filename[0][receiptNum].showName = false;\r\n receiptAdded = false;\r\n filename[0][receiptNum].statusMsg = imageResponse[i].Message;\r\n filename[0][receiptNum].file = null;\r\n filename[0][receiptNum].name = '';\r\n webStorageService.setSessionData('receiptObj', filename);\r\n setFileNameObj(filename);\r\n //someCtrlFn(receiptNum, null, false);\r\n if (statusCheck) {\r\n scrollElement = 'uploadReceipt' + (i + 1);\r\n statusCheck = false;\r\n }\r\n }\r\n }\r\n }\r\n for (i = 0; i < statusesArr.length; i++) {\r\n if (statusesArr[i].status.toLowerCase() != 'valid') {\r\n updateBtnOj[0].anyError = true;\r\n updateBtnOj[0].validResponse = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n codes[i].errors = upcErrorLabels[statusesArr[i].status.toLowerCase()];\r\n valid = false;\r\n if (statusCheck) {\r\n scrollElement = 'Code' + (i + 1);\r\n statusCheck = false;\r\n // $anchorScroll.yOffset = 100;\r\n }\r\n }\r\n }\r\n if (!statusCheck) {\r\n // $anchorScroll(scrollElement);\r\n // $('#' + scrollElement).focus();\r\n }\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n\r\n //$location.hash(scrollElement);\r\n // call $anchorScroll()\r\n // alignVertically();\r\n return valid;\r\n }\r\n var sendForm = function (e) {\r\n e.preventDefault();\r\n receiptAdded = (uploadReceipt) ? checkEntries() : true;\r\n if (!receiptAdded) {\r\n setTimeout(function () {\r\n if ($('.blank-msg').eq(0).length > 0) {\r\n var elem = $('.blank-msg').eq(0).closest('.upload-receipt').attr('id');\r\n // $anchorScroll(elem);\r\n }\r\n }, 300);\r\n } else {\r\n updateBtnOj[0].sended = true;\r\n updateBtnOj[0].validResponse = true;\r\n\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n\r\n var form = new FormData(),\r\n data, codesArr = [],\r\n codesInput = webStorageService.getSessionData(\"codes\") ? JSON.parse(webStorageService.getSessionData(\"codes\")) : '',\r\n filenameVal = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : '';\r\n\r\n for (var i = 0; i < codesInput.length; i++) {\r\n codesArr[i] = $.trim(codesInput[i].value).toUpperCase();\r\n }\r\n if (locale.toLowerCase() == 'es_es' || locale.toLowerCase() == 'pt_pt') {\r\n for (var i = 0; i < 1; i++) {\r\n\r\n // form.append('receipt[]', filenameVal[0]['receipt' + (i + 1)].file);\r\n form.append('PartNumber', filenameVal[0]['receipt' + (i + 1)].file);\r\n\r\n }\r\n for (var i = 0; i < codesArr.length; i++) {\r\n\r\n form.append('Codes[]', codesArr[i]);\r\n }\r\n data = form;\r\n } else {\r\n data = codesArr;\r\n }\r\n API.checkUpcCodes(data, webStorageService.getSessionData('servToken')).then(function (response) {\r\n updateBtnOj[0].sended = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n if (!!response.result && response.result.length > 0) {\r\n if (_setStatuses(response) && response.token) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n if (locale.toLowerCase() != 'lv_lv' && locale.toLowerCase() != 'bg_bg') {\r\n dataLayers().packCodeData();\r\n }\r\n if (locale.toLowerCase() === 'ru_ru') {\r\n var shipObj = webStorageService.getSessionData('shippingInfoObj');\r\n var shippingInfoObj = {\r\n 'redemption-token': response.token,\r\n 'shippingDetails': {\r\n name: shipObj.shippingDetails.name,\r\n lastName: shipObj.shippingDetails.lastName,//formObj.LastName,\r\n address1: shipObj.shippingDetails.address1,//formObj.Address1,\r\n address2: shipObj.shippingDetails.address2,//formObj.Address2,\r\n city: shipObj.shippingDetails.city,//formObj.City,\r\n postCode: shipObj.shippingDetails.postCode,//formObj.PostalCode,\r\n state: shipObj.shippingDetails.state,\r\n Email: shipObj.shippingDetails.Email,\r\n terms: shipObj.shippingDetails.terms,\r\n subscription: shipObj.shippingDetails.subscription,\r\n phone: shipObj.shippingDetails.phone,\r\n country: shipObj.shippingDetails.country// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n }\r\n else {\r\n var grm = webStorageService.getSessionData('grmUser');\r\n var shippingInfoObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'shippingDetails': grm\r\n };\r\n }\r\n\r\n /*sended = true;*/\r\n\r\n API.orderAward(shippingInfoObj).then(function (response) {\r\n // sended = false;\r\n /*disableRegister = false;*/\r\n if (response.token) {\r\n // var token = response.token;\r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n } else {\r\n webStorageService.removeSessionData('servToken');\r\n }\r\n if (response.redirect) {\r\n updateBtnOj[0].validResponse = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n var winnerObj = {};\r\n if (response.redirect.toLowerCase().indexOf('thankyou') > -1) {\r\n if (response.Winner !== undefined && response.Winner !== null) {\r\n winnerObj = {\r\n winner: response.Winner,\r\n isExtendedPhase: response.ExtendedPhase,\r\n refCode: response.RefCode\r\n }\r\n if(!response.ExtendedPhase){\r\n // if(locale.toLowerCase() == 'it_it'){\r\n // if(response.Winner > 0){\r\n // dataLayers().orderDataIT(response.Winner);\r\n // }\r\n // }else{\r\n dataLayers().orderData(response.Winner);\r\n // }\r\n }\r\n }\r\n }\r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('limitType', response.message);\r\n }\r\n handleRoute(response.redirect, winnerObj);\r\n } else {\r\n // $location.path(locale + '/Error');\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n };\r\n // var onClick = function (clicks) {\r\n // clicks = clicks;\r\n // this.options.registerClicks(clicks);\r\n // }\r\n var checkEntries = function () {\r\n receiptAdded = true;\r\n let filenameVal = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : [{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }];\r\n for (var key in filenameVal[0]) {\r\n if (filenameVal[0][key].name.length < 1) {\r\n filenameVal[0][key].empty = true;\r\n filenameVal[0][key].invalid = false;\r\n filenameVal[0][key].large = false;\r\n filenameVal[0][key].statusFile = false;\r\n } else {\r\n filenameVal[0][key].empty = false;\r\n }\r\n if (filenameVal[0][key].file == null) {\r\n receiptAdded = false;\r\n }\r\n }\r\n webStorageService.setSessionData('receiptObj', filenameVal);\r\n setFileNameObj(filenameVal);\r\n return receiptAdded;\r\n }\r\n // var someCtrlFn = function (arg1, arg2, field) {\r\n // var validEntry = true;\r\n // filename[arg1].file = arg2;\r\n // imageValid = false;\r\n // if (field) {\r\n // filename[arg1].statusFile = false;\r\n // }\r\n // receiptAdded = true;\r\n // };\r\n\r\n var onTextChange = function (e, index) {\r\n var $el = $(e.target);\r\n var maxLength = $el.attr('maxLength');\r\n maxLength = maxLength ? maxLength : 4;\r\n };\r\n var onUploadClick = function ($event) {\r\n $event.preventDefault();\r\n var triggerEl = $('#' + $($event.target).data('clickfor'));\r\n triggerEl.trigger('click');\r\n };\r\n var validType = ['image/jpeg', 'image/jpg', 'image/gif', 'image/png']\r\n , validSize = 5;\r\n var onChangeReceipt = function (event) {\r\n const reader = new FileReader();\r\n let file = event.target.files[0],\r\n elementName = event.target.name;\r\n fileName[0][elementName].name = '';\r\n fileName[0][elementName].invalid = false;\r\n fileName[0][elementName].size = false;\r\n fileName[0][elementName].showName = false;\r\n fileName[0][elementName].statusFile = false;\r\n fileName[0][elementName].large = false;\r\n fileName[0][elementName].empty = false;\r\n\r\n if (file == undefined) {\r\n file = null;\r\n }\r\n else if (validType.indexOf(file.type) < 0) {\r\n event.target.value = null;\r\n file = null;\r\n fileName[0][elementName].invalid = true;\r\n fileName[0][elementName].large = false;\r\n }\r\n else if ((file.size) / (1024 * 1024) > validSize) {\r\n event.target.value = null;\r\n file = null;\r\n fileName[0][elementName].invalid = false;\r\n fileName[0][elementName].large = true;\r\n }\r\n else {\r\n fileName[0][elementName].name = file.name;\r\n fileName[0][elementName].showName = true;\r\n dataLayers().imageUpload()\r\n }\r\n reader.addEventListener(\"load\", function () {\r\n // convert image file to base64 string\r\n fileName[0][elementName].file = reader.result;\r\n webStorageService.setSessionData('receiptObj', fileName);\r\n setFileNameObj(fileName);\r\n }, false);\r\n if(file){\r\n reader.readAsDataURL(file);\r\n }else{\r\n setFileNameObj(fileName);\r\n }\r\n }\r\n var isOutOfHours = webStorageService.getSessionData('pageState') ?\r\n webStorageService.getSessionData('pageState') === 'Outofhours' : false;\r\n //isOutOfHours=true;\r\n // if (isOutOfHours) dataLayers().OutOfHours();\r\n var goToPringlesSite = function () {\r\n // dataLayers().goToPringles('Out of Hours Page');\r\n };\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Batchcodeentry');\r\n\r\n }\r\n return (\r\n <>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{translations.LoginPageHeading}

\r\n

\" + translations.LoginPageDescription2 }}>

\r\n
\r\n
\r\n
\r\n\r\n {\r\n codes.map(function (code, index) {\r\n return (\r\n
\r\n \r\n\r\n
\r\n

\r\n {codesArrObj[index].errors}\r\n

\r\n
\r\n
\r\n userInput(e, index)}\r\n onBlur={(e) => onBlur(index, e)}\r\n className={codesArrObj[index].errors && 'ng-error'}\r\n onKeyUp={(e) => onTextChange(e, index)}\r\n title={translations.CoreKelloggs_EnterCodeInputFieldTitle} />\r\n\r\n
\r\n {\r\n isShowReceiptField &&
\r\n

\r\n {translations.CoreKelloggs_UploadImageHeader}\r\n

\r\n {fileNameObj[0][code.receiptNum].invalid && {translations.CoreKelloggs_UploadImageTypeError}}\r\n {fileNameObj[0][code.receiptNum].large && {translations.CoreKelloggs_UploadImageSizeError}}\r\n {fileNameObj[0][code.receiptNum].empty && {translations.CoreKelloggs_UploadImageMandatoryError}}\r\n {fileNameObj[0][code.receiptNum].statusFile && {fileNameObj[0][code.receiptNum].statusMsg}}\r\n {fileNameObj[0][code.receiptNum].showName && {fileNameObj[0][code.receiptNum].name}\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
\r\n
\r\n
\r\n
\r\n
\r\n

{translations.CoreKelloggs_CodehelpSection1Title}

\r\n \r\n {/* */}\r\n \r\n \r\n {/* */}\r\n {translations.CanImageAltText}\r\n \r\n

{translations.CodehelpSection1Instruction}

\r\n
\r\n
\r\n
\r\n {modalShown &&
\r\n {modalShown &&
\r\n
toggleModal(event)}>
\r\n
\r\n
toggleModal(event)}>
\r\n
\r\n
\r\n {translations.CoreKelloggs_Uploadimageinstructionsheading &&

{translations.UploadImageInstructions}

}\r\n
\r\n
\r\n

{translations.UploadImageStep1}

\r\n

{translations.UploadImageStep2}

\r\n

{translations.UploadImageStep3}

\r\n
\r\n
\r\n
\r\n
}\r\n
}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Batchcode;\r\n\r\n\r\n","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Movie = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Movie') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Movie');\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.CoreKelloggs_ChooseMoviePageTitle}

\r\n Movie Page\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Movie;","import React, { useState, useContext, useEffect } from 'react';\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport * as API from '../Utility/ApiCalls';\r\n\r\nconst Wordsearch = () => {\r\n const { translations } = useContext(JsonContext);\r\n const { HandleError } = ErrorProvider();\r\n const history = useHistory();\r\n const [crossletters, setCrossletters] = useState([]);\r\n const [findwords, setFindwords] = useState([]);\r\n \r\n document.querySelector('body').setAttribute('pagename', 'Wordsearch');\r\n\r\n useEffect(() => {\r\n API.getCrossword(webStorageService.getSessionData('servToken'))\r\n .then(function (data) {\r\n if (data.crossword) {\r\n CrossWordService.setLetters(data.crossword);\r\n CrossWordService.setWords(data.words);\r\n var wordsFromArr = JSON.parse(data.words),\r\n wordsFrom = '';\r\n for (var i = 0; i < wordsFromArr.length; i++) {\r\n if (locale.toLowerCase() == \"ka_ge\") {\r\n wordsFrom +=\r\n '

' +\r\n wordsFromArr[i].toLowerCase() +\r\n '

';\r\n }\r\n else {\r\n wordsFrom +=\r\n '

' +\r\n wordsFromArr[i].toUpperCase() +\r\n '

';\r\n }\r\n }\r\n wordsFrom = wordsFrom;\r\n setFindwords(wordsFrom);\r\n CrossWordService.start();\r\n isStarted = true;\r\n\r\n //Directive\r\n var sett = {\r\n highlightColor: '#cf122e',\r\n crossHeight: 0.8,\r\n contener: $('.cross-word'),\r\n tabScope: $('.tabContainer'),\r\n button: $('.text .button')\r\n }\r\n\r\n //Array of words to find\r\n words = CrossWordService.getWords();\r\n\r\n //Array of letters\r\n letters = CrossWordService.getLetters();\r\n setCrossletters(letters);\r\n //Current crossed line \r\n var marker = {\r\n pos: {\r\n x: 0,\r\n y: 0\r\n },\r\n isActive: false\r\n };\r\n\r\n //isDisable\r\n var isDisable = false;\r\n\r\n //Canvas alement\r\n var canvas = sett.contener.find('canvas')[0];\r\n var context = canvas.getContext('2d');\r\n\r\n //##############################\r\n //PRIVATE METHODS\r\n //##############################\r\n var init = function (settings) {\r\n $.extend(sett, settings);\r\n //bindUiEvents();\r\n setTimeout(function () {\r\n rescale();\r\n }, 2000);\r\n //resize\r\n $(window).on('resize', function () {\r\n setTimeout(function () {\r\n rescale();\r\n }, 0);\r\n });\r\n }\r\n\r\n //Returns the current position of coursor or finger\r\n var pointerEventToXY = function (e) {\r\n var out = { x: 0, y: 0, currentX: 0, currentY: 0 };\r\n if (e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel') {\r\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\r\n out.x = touch.pageX;\r\n out.y = touch.pageY;\r\n } else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover' || e.type == 'mouseout' || e.type == 'mouseenter' || e.type == 'mouseleave') {\r\n out.x = e.pageX;\r\n out.y = e.pageY;\r\n }\r\n out.currentX = out.x - sett.tabScope.offset().left;\r\n out.currentY = out.y - sett.tabScope.offset().top;\r\n\r\n out.x = Math.floor((out.x - sett.tabScope.offset().left) * (100 / sett.tabScope.width()) / 10);\r\n out.y = Math.floor((out.y - sett.tabScope.offset().top) * (100 / sett.tabScope.height()) / 10);\r\n\r\n\r\n return out;\r\n };\r\n\r\n //draws sinle line\r\n var drawLine = function (start, end) {\r\n var sX = ((start.x) * canvas.width / 10) + canvas.width / 10 / 2;\r\n var sY = ((start.y) * canvas.height / 10) + canvas.height / 10 / 2;\r\n context.beginPath();\r\n context.moveTo(sX, sY);\r\n if (end.currentX) {\r\n context.lineTo(end.currentX, end.currentY);\r\n } else {\r\n context.lineTo(\r\n ((end.x) * canvas.width / 10) + canvas.width / 10 / 2,\r\n ((end.y) * canvas.height / 10) + canvas.height / 10 / 2\r\n );\r\n }\r\n context.lineWidth = (canvas.width / 10) * sett.crossHeight;\r\n context.lineCap = \"round\";\r\n context.strokeStyle = sett.highlightColor;\r\n context.stroke();\r\n };\r\n\r\n //draws all schrached lines\r\n var drawScrachedLines = function () {\r\n for (var i = 0; i < words.length; i++) {\r\n if (words[i].isScratched) {\r\n drawLine(words[i].start, words[i].end);\r\n }\r\n }\r\n }\r\n\r\n //redraw\r\n var redraw = function () {\r\n //update letters and words\r\n letters = CrossWordService.getLetters();\r\n words = CrossWordService.getWords();\r\n\r\n //redraw UI\r\n marker.isActive = false;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n }\r\n\r\n //rescale\r\n var rescale = function () {\r\n sett.tabScope.css({\r\n 'width': '',\r\n 'height': ''\r\n });\r\n var contenerWidth = sett.tabScope.width();\r\n // if (contenerWidth > $(window).height()) {\r\n // contenerWidth = $(window).height();\r\n // }\r\n sett.tabScope.width(contenerWidth);\r\n sett.tabScope.height(contenerWidth);\r\n $(canvas).attr('width', contenerWidth + 'px');\r\n $(canvas).attr('height', contenerWidth + 'px');\r\n redraw();\r\n\r\n };\r\n\r\n //##############################\r\n //EVENTS HANDLERS\r\n //##############################\r\n var bindUiEvents = function () {\r\n //Start scraching\r\n sett.tabScope.on('mousedown touchstart', function (e) {\r\n if (isDisable) return false;\r\n var pos = pointerEventToXY(e);\r\n marker.pos.x = pos.x;\r\n marker.pos.y = pos.y;\r\n marker.isActive = true;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n drawLine(marker.pos, pos);\r\n });\r\n\r\n //End scraching\r\n sett.tabScope.on('mouseup touchend mouseleave', function (e) {\r\n\r\n marker.isActive = false;\r\n if (e.type == \"mouseleave\") {\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n return false;\r\n }\r\n CrossWordService.getScrachedWord(marker.pos, pointerEventToXY(e));\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n });\r\n\r\n //Do scraching\r\n sett.tabScope.on('mousemove touchmove', function (e) {\r\n e.preventDefault();\r\n if (!marker.isActive) return false;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n var pos = pointerEventToXY(e);\r\n drawScrachedLines();\r\n drawLine(marker.pos, pos);\r\n });\r\n\r\n /*sett.button.on('click', function(e) {\r\n e.preventDefault();\r\n CrossWordService.finishCrossWord();\r\n dataLayers.crosswordSend();\r\n })*/\r\n };\r\n\r\n //##############################\r\n //PUBLIC METHODS\r\n //##############################\r\n\r\n //constructor\r\n function ScratchWords(settings) {\r\n init(settings);\r\n }\r\n\r\n var scratchWords = new ScratchWords({});\r\n\r\n //function declaration, which will be called in controller\r\n //scope.control = scope.control || {};\r\n var crosswordControl = {};\r\n\r\n crosswordControl.turnOn = function () {\r\n bindUiEvents();\r\n }\r\n\r\n crosswordControl.redraw = function () {\r\n redraw();\r\n }\r\n\r\n //controller\r\n var crosswordQueryStr = (window.location.href).substr((window.location.href).lastIndexOf('/') + 1),\r\n crosswordUuidStr = crosswordQueryStr.indexOf(\"?\") > 0 ? crosswordQueryStr.split(\"?\")[0] : crosswordQueryStr,\r\n crosswordUuid = crosswordQueryStr ? crosswordUuidStr : null;\r\n $('html, body').animate(\r\n {\r\n scrollTop: $('.wordsearch-page').offset().top\r\n },\r\n 2000\r\n );\r\n // Private variables\r\n var kraveHorrorWinUrl = '/win';\r\n var kraveHorrorLoseUrl = locale + '/lose';\r\n var kraveHorrorUrl = locale + '/Error',\r\n // Public variables\r\n isStarted = false,\r\n isFinishEnable = false;\r\n // This variable will be pass to directive\r\n // Private methods\r\n document.getElementById('crossword').onselectstart = function () {\r\n return false;\r\n };\r\n document.getElementById('crossword').onmousedown = function () {\r\n return false;\r\n };\r\n // Public methods\r\n CrossWordService.timerecorder();\r\n CrossWordService.setFinishCallback(\r\n function (data) {\r\n },\r\n function (reason) {\r\n window.location.href = ('/' + locale + '/error');\r\n },\r\n webStorageService.getSessionData('servToken')\r\n );\r\n if (typeof crosswordControl.turnOn === 'function')\r\n crosswordControl.turnOn();\r\n if (typeof crosswordControl.redraw === 'function')\r\n crosswordControl.redraw();\r\n } else {\r\n kraveHorrorUrl = locale + '/Error';\r\n }\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n // pass callback function to the service\r\n CrossWordService.isFinishEnable(function () {\r\n // $apply(function () {\r\n isFinishEnable = true;\r\n // });\r\n });\r\n }, [])\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Crossword';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Crossword') {\r\n return \r\n }\r\n\r\n // Initial state of letters\r\n var letters = [],\r\n Crossword = [],\r\n // Initial state of words\r\n words = [],\r\n Words = [],\r\n wordMustBeChecked = true,\r\n isFinishEnable = function () { },\r\n coordinatesToReturn = {},\r\n lockCrossword = false,\r\n CrossWordService = {\r\n finishCb: null,\r\n finishErrorCb: null,\r\n token: null,\r\n timerecorder: (function () {\r\n var startdate = new Date();\r\n var set = false;\r\n var end = false;\r\n var enddate = new Date();\r\n return function (state) {\r\n var ResultSolutionTimeSeconds = enddate - startdate;\r\n if (!set) {\r\n startdate = new Date();\r\n set = true;\r\n return startdate;\r\n }\r\n if (state == 'stop' && !end) {\r\n enddate = new Date();\r\n end = true;\r\n return enddate;\r\n }\r\n startdate = ''; set = false; end = false; enddate = '';\r\n return ResultSolutionTimeSeconds;\r\n };\r\n })(),\r\n haveFinalDetails: function () {\r\n return Crossword.length > 0 && Words.length > 0;\r\n },\r\n setLetters: function (lettersToSet) {\r\n try {\r\n Crossword = JSON.parse(lettersToSet);\r\n } catch (e) {\r\n // Console.log(\"Bad letters format from backend\");\r\n }\r\n },\r\n setWords: function (wordsToSet) {\r\n try {\r\n var wordsArr = JSON.parse(wordsToSet);\r\n Words = [];\r\n for (var i = 0; i < wordsArr.length; i++) {\r\n if (locale.toLowerCase() == \"ka_ge\") {\r\n Words.push({\r\n word: wordsArr[i].toLowerCase(),\r\n isScratched: false\r\n });\r\n }\r\n else {\r\n Words.push({\r\n word: wordsArr[i].toUpperCase(),\r\n isScratched: false\r\n });\r\n }\r\n }\r\n } catch (e) {\r\n // Console.log(\"Bad words format from backend\");\r\n }\r\n },\r\n getLetters: function () {\r\n return letters;\r\n },\r\n getWords: function () {\r\n return words;\r\n },\r\n isFinishEnable: function (cb) {\r\n isFinishEnable = cb;\r\n },\r\n finishCrossWord: function () {\r\n // var token = this.token;\r\n // var result = $q.defer();\r\n var answers = [];\r\n $('.ng-isolate-scope').removeClass(\"hide-loader\");\r\n for (var k in coordinatesToReturn) {\r\n answers.push({\r\n Row: k,\r\n Columns: coordinatesToReturn[k]\r\n });\r\n }\r\n API.postCrossword(\r\n { answers: answers, SolutionTimeSeconds: CrossWordService.timerecorder() },\r\n webStorageService.getSessionData('servToken')\r\n )\r\n .then(function (data) {\r\n dataLayers().wordSearchComplete();\r\n if (data.response.RedirectUrl.toLowerCase().indexOf('thankyou') > -1) {\r\n // (locale.toLowerCase() == 'mk_mk') ? dataLayers().orderData(16) : dataLayers().orderData(97);\r\n var winnerObj = {\r\n winner: 97,\r\n isExtendedPhase: data.response.ExtendedPhase,\r\n refCode: data.response.RefCode\r\n }\r\n if(!data.response.ExtendedPhase){\r\n dataLayers().orderData(97);\r\n }\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }\r\n history.push({ pathname: data.response.RedirectUrl, state: winnerObj });\r\n pageScroll();\r\n\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n },\r\n setFinishCallback: function (fn, fnError, token) {\r\n this.finishCb = fn;\r\n this.finishErrorCb = fnError;\r\n this.token = token;\r\n },\r\n start: null,\r\n getScrachedWord: null\r\n },\r\n customMerg = function (obj1, obj2, obj3) {\r\n if (typeof obj2 !== 'object') {\r\n if (!obj1[obj2]) {\r\n obj1[obj2] = [];\r\n }\r\n obj1[obj2].push(obj3);\r\n return false;\r\n }\r\n for (var i in obj2) {\r\n if (!obj1[i]) {\r\n obj1[i] = [];\r\n }\r\n for (var j = 0; j < obj2[i].length; j++) {\r\n if (obj1[i].indexOf(obj2[i][j]) == -1) {\r\n obj1[i].push(obj2[i][j]);\r\n }\r\n }\r\n }\r\n };\r\n // Detect if scrached word is correct\r\n CrossWordService.getScrachedWord = function (posStart, posEnd) {\r\n var scrachedWord = '';\r\n var lettersCoordinates = {};\r\n if (posStart.x == posEnd.x) {\r\n var start = posStart.y > posEnd.y ? posEnd.y : posStart.y;\r\n var end = posStart.y > posEnd.y ? posStart.y : posEnd.y;\r\n for (var i = start; i <= end; i++) {\r\n scrachedWord += letters[i][posStart.x];\r\n customMerg(lettersCoordinates, i, posStart.x);\r\n }\r\n } else if (posStart.y == posEnd.y) {\r\n var start = posStart.x > posEnd.x ? posEnd.x : posStart.x;\r\n var end = posStart.x > posEnd.x ? posStart.x : posEnd.x;\r\n for (var i = start; i <= end; i++) {\r\n scrachedWord += letters[posStart.y][i];\r\n customMerg(lettersCoordinates, posStart.y, i);\r\n }\r\n } else if (Math.abs(posStart.x - posEnd.x) == Math.abs(posStart.y - posEnd.y)) {\r\n var start = posStart.x > posEnd.x ? posEnd : posStart;\r\n var end = posStart.x > posEnd.x ? posStart : posEnd;\r\n for (var i = 0; i <= end.x - start.x; i++) {\r\n if (start.y < end.y) {\r\n scrachedWord += letters[start.y + i][start.x + i];\r\n customMerg(lettersCoordinates, start.y + i, start.x + i);\r\n } else {\r\n scrachedWord += letters[start.y - i][start.x + i];\r\n customMerg(lettersCoordinates, start.y - i, start.x + i);\r\n }\r\n }\r\n }\r\n if (wordMustBeChecked) {\r\n if (\r\n checkWord(scrachedWord, posStart, posEnd, function () {\r\n customMerg(coordinatesToReturn, lettersCoordinates);\r\n })\r\n ) {\r\n // Nothing\r\n }\r\n } else if (scrachedWord != '') {\r\n words.push({\r\n word: scrachedWord,\r\n isScratched: true,\r\n start: {\r\n x: posStart.x,\r\n y: posStart.y\r\n },\r\n end: {\r\n x: posEnd.x,\r\n y: posEnd.y\r\n }\r\n });\r\n customMerg(coordinatesToReturn, lettersCoordinates);\r\n // isFinishEnable();\r\n }\r\n };\r\n // Detect if scrached word is on the words list\r\n\r\n var checkWord = function (word, posStart, posEnd, cb) {\r\n var count = 0,\r\n result = false,\r\n start,\r\n end,\r\n starty;\r\n for (var i = 0; i < words.length; i++) {\r\n if (\r\n !words[i].isScratched &&\r\n (words[i].word.trim() == word ||\r\n words[i].word.trim() ==\r\n word\r\n .split('')\r\n .reverse()\r\n .join(''))\r\n ) {\r\n words[i].isScratched = true;\r\n var wordChecked = words[i].word.trim().toLowerCase();\r\n $('.' + wordChecked)\r\n .addClass('wodrIsChecked')\r\n .append('');\r\n words[i].start = {\r\n x: posStart.x,\r\n y: posStart.y\r\n };\r\n words[i].end = {\r\n x: posEnd.x,\r\n y: posEnd.y\r\n };\r\n count++;\r\n if (posStart.x == posEnd.x) {\r\n start = Math.min(posStart.y, posEnd.y);\r\n end = Math.max(posStart.y, posEnd.y);\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (j + 1) + ') td:nth-child(' + (posStart.x + 1) + ')'\r\n ).css({ color: '#fff' });\r\n }\r\n } else if (posStart.y == posEnd.y) {\r\n start = Math.min(posStart.x, posEnd.x);\r\n end = Math.max(posStart.x, posEnd.x);\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (posStart.y + 1) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n }\r\n } else {\r\n var z = 1;\r\n start = Math.min(posStart.x, posEnd.x);\r\n end = Math.max(posStart.x, posEnd.x);\r\n starty = Math.min(posStart.y, posEnd.y);\r\n if (\r\n (posStart.x > posEnd.x && posStart.y > posEnd.y) ||\r\n (posStart.x < posEnd.x && posStart.y < posEnd.y)\r\n ) {\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (starty + z) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n z++;\r\n }\r\n } else {\r\n for (var j = end; j >= start; j--) {\r\n $(\r\n 'tr:nth-child(' + (starty + z) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n z++;\r\n }\r\n }\r\n }\r\n result = true;\r\n } else if (words[i].isScratched) {\r\n count++;\r\n }\r\n }\r\n if (word.isScratched) {\r\n }\r\n if (result) {\r\n cb();\r\n }\r\n // If(count==words.length){\r\n\r\n if (count == 10) {\r\n // isFinishEnable();\r\n CrossWordService.timerecorder('stop');\r\n if (lockCrossword === false) {\r\n CrossWordService.finishCrossWord();\r\n lockCrossword = true;\r\n }\r\n }\r\n return result;\r\n };\r\n CrossWordService.start = function () {\r\n letters = Crossword;\r\n words = Words;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

\r\n
{translations.WordSearchPageTitle}
\r\n {/*

{translations.WordSearchSubHeading}

*/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n {\r\n crossletters.map(function (row, index) {\r\n\r\n return (\r\n \r\n\r\n {\r\n row.map(function (value, vindex) {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n
{row[vindex]}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{translations.WordsToFind}

\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\r\nexport default Wordsearch;","import React, { useContext } from 'react';\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport * as API from '../Utility/ApiCalls'\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\n\r\nconst Puzzle = () => {\r\n const { translations } = useContext(JsonContext);\r\n const { HandleError } = ErrorProvider();\r\n const history = useHistory();\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Puzzle') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Puzzle');\r\n\r\n // setTimeout(function () {\r\n // $('html, body').animate({\r\n // scrollTop: $('.puzzle-container').offset().top - 100\r\n // }, 2000);\r\n // }, 2000);\r\n // accessService.setPermission('batchcode', false);\r\n // accessService.setPermission('register', false);\r\n // accessService.setPermission('login', false);\r\n\r\n var vm = this,\r\n postKey = [],\r\n imgSrc = (window.innerWidth <= 1024) ? '/Content/img/puzzle/nbasnacks2023-puzzle-kv-250x250.jpg' : '/Content/img/puzzle/nbasnacks2023-puzzle-kv-350x350.jpg',cardIndex,skillToken,answers;\r\n // cardIndex = Object.values([2, 4, 1, 3]);\r\n API.getPuzzle(webStorageService.getSessionData(\"servToken\")).then(function (data) {\r\n cardIndex = Object.values(data.puzzle);\r\n skillToken = data.token;\r\n webStorageService.setSessionData(\"servToken\",data.token);\r\n var genRanNo = function () {\r\n return Math.floor(100000 + Math.random() * 900000);\r\n }\r\n /*\r\n * Make encrypted array for puzzle tile poistions--@shivam\r\n */\r\n for (var index1 = 0; index1 < 6; index1++) {\r\n var randomNo = genRanNo().toString();\r\n var rplacedNo = randomNo.substring(0, cardIndex[index1]) + cardIndex[index1] + randomNo.substring(cardIndex[index1] + 1);\r\n postKey[index1] = rplacedNo;\r\n }\r\n answers = [postKey[0], postKey[1], postKey[2], postKey[3], postKey[4], postKey[5], genRanNo().toString()];\r\n var generatePuzzle = function generatePuzzle() {\r\n if (cardIndex != undefined) {\r\n $('.main-wrapper .container.puzzle #puzzleContainer').css('display', 'block');\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n handlePuzzle(cardIndex,translations);\r\n clearInterval(_interval);\r\n }\r\n }\r\n var _interval = setInterval(function () {\r\n generatePuzzle();\r\n }, 300);\r\n\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n $('.main-wrapper .container.puzzle #puzzleContainer').css('display', 'block');\r\n const handlePuzzle = (cardIndex,translations)=> {\r\n (function ($) {\r\n /*\r\n * jqPuzzle - Sliding Puzzles with jQuery\r\n * Version 1.02\r\n * \r\n * Copyright (c) 2008 Ralf Stoltze, http://www.2meter3.de/jqPuzzle/\r\n * Dual-licensed under the MIT and GPL licenses.\r\n */\r\n $.fn.jqPuzzle = function (settings, texts) {\r\n \r\n // default settings\r\n var defaults = {\r\n \r\n rows: 2, // number of rows [3 ... 9]\r\n cols: 2, // number of columns [3 ... 9]\r\n hole: 4, // initial hole position [1 ... rows*columns]\r\n shuffle: false, // initially show shuffled pieces [true|false]\r\n numbers: true, // initially show numbers on pieces [true|false]\r\n language: 'en', // language for gui elements [language code]\r\n \r\n // display additional gui controls\r\n control: {\r\n shufflePieces: true, // display 'Shuffle' button [true|false]\r\n confirmShuffle: true, // ask before shuffling [true|false]\r\n toggleOriginal: true, // display 'Original' button [true|false]\r\n toggleNumbers: true, // display 'Numbers' button [true|false]\r\n counter: true, // display moves counter [true|false]\r\n timer: true, // display timer (seconds) [true|false]\r\n pauseTimer: false // pause timer if 'Original' button is activated \r\n // [true|false]\r\n },\r\n \r\n // perform actions when the puzzle is solved sucessfully\r\n success: {\r\n fadeOriginal: true, // cross-fade original image [true|false]\r\n callback: undefined, // callback a user-defined function [function]\r\n // the function is passed an object as its argument\r\n // which includes the fields 'moves' and 'seconds'\r\n callbackTimeout: 300 // time in ms after which the callback is called\r\n },\r\n \r\n // animation speeds and settings\r\n animation: {\r\n shuffleRounds: 3, // number of shuffle rounds [1 ... ]\r\n shuffleSpeed: 800, // time in ms to perform a shuffle round\r\n slidingSpeed: 200, // time in ms for a single move\r\n fadeOriginalSpeed: 600 // time in ms to cross-fade original image\r\n },\r\n \r\n // additional style information not specified via css\r\n style: {\r\n gridSize: 2, // space between two pieces in px\r\n overlap: true, // if true, adjacent piece borders will overlap\r\n // applies only if gridSize is set to 0\r\n backgroundOpacity: 0.1 // opacity of the original image behind the pieces\r\n // [0 ... 1] (0 means no display)\r\n }\r\n };\r\n \r\n // language localizations\r\n var i18n = {\r\n en: {\r\n shuffleLabel: 'Shuffle',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Numbers',\r\n confirmShuffleMessage: 'Do you really want to shuffle?',\r\n movesLabel: 'moves',\r\n secondsLabel: 'seconds'\r\n },\r\n fr: {\r\n shuffleLabel: 'Mélanger',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Nombres',\r\n confirmShuffleMessage: 'Veux-tu vraiment mélanger?',\r\n movesLabel: 'mouvements',\r\n secondsLabel: 'secondes'\r\n },\r\n de: {\r\n shuffleLabel: 'Mischen',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Nummern',\r\n confirmShuffleMessage: 'Willst du wirklich mischen?',\r\n movesLabel: 'Züge',\r\n secondsLabel: 'Sekunden'\r\n },\r\n pt: {\r\n shuffleLabel: 'Embaralhar',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Numeros',\r\n confirmShuffleMessage: 'Tem certeza que deseja reembralhar?',\r\n movesLabel: 'movimentos',\r\n secondsLabel: 'segundos'\r\n }\r\n };\r\n \r\n // if rows or cols, but no hole was user-defined,\r\n // explicitly set hole position to last piece (bottom right)\r\n if (settings && !settings.hole && (settings.rows || settings.cols)) {\r\n settings.hole = (settings.rows || defaults.rows) * (settings.cols || defaults.cols);\r\n }\r\n \r\n // extend the user-defined settings object with default settings\r\n settings = $.extend(true, {}, defaults, settings);\r\n \r\n // extend the user-defined texts object with current language texts\r\n texts = $.extend((i18n[settings.language] || i18n[defaults.language]), texts);\r\n \r\n // create some handy shortcut variables\r\n var rows = settings.rows,\r\n cols = settings.cols,\r\n hole = settings.hole;\r\n var control = settings.control,\r\n success = settings.success,\r\n animation = settings.animation,\r\n style = settings.style;\r\n \r\n // check settings for valid values\r\n \r\n // keep rows and columns within limits\r\n if (rows < 3 || rows > 9) rows = defaults.rows;\r\n if (cols < 3 || cols > 9) cols = defaults.rows;\r\n \r\n // keep hole position within limits\r\n if ((hole > (rows * cols)) || (hole < 1)) hole = rows * cols;\r\n hole--; // zero-based index\r\n \r\n // animation speed = 0 doesn't work\r\n if (animation.slidingSpeed < 1) animation.slidingSpeed = 1;\r\n if (animation.shuffleSpeed < 1) animation.shuffleSpeed = 1;\r\n if (animation.fadeOriginalSpeed < 1) animation.fadeOriginalSpeed = 1;\r\n \r\n // keep shuffle rounds within limits\r\n if (animation.shuffleRounds < 1) animation.shuffleRounds = 1;\r\n \r\n \r\n // helper functions --------------------------------------------------------\r\n \r\n // checks if the puzzle is solved\r\n var checkSolution = function ($pieces) {\r\n \r\n // iterate over pieces and check each piece\r\n for (var i = 0; i < $pieces.length; i++) {\r\n // since the hole is not saved in the pieces array, \r\n // adjust the index if it is bejond the hole position\r\n // var pieceIndex = (i < hole) ? i : i + 1;\r\n \r\n // check if current position match target (index) position\r\n // if($pieces.eq(i).attr('current') != pieceIndex) return false;\r\n if ($(\"[current='\" + i + \"']\").attr('index') != cardIndex[i]) return false;\r\n }\r\n \r\n return true;\r\n };\r\n \r\n // checks if the puzzle can be solved (pure math ...)\r\n var checkOrder = function (numbersArray) {\r\n var product = 1;\r\n for (var i = 1; i <= (rows * cols - 1); i++) {\r\n for (var j = (i + 1); j <= (rows * cols); j++) {\r\n product *= ((numbersArray[i - 1] - numbersArray[j - 1]) / (i - j));\r\n }\r\n }\r\n return Math.round(product) == 1;\r\n };\r\n \r\n // get the linear index from a row/col pair (zero-based)\r\n var getLinearPosition = function (row, col) {\r\n return parseInt(row) * cols + parseInt(col);\r\n };\r\n \r\n // get the row/col pair from a linear index (zero-based)\r\n var getMatrixPosition = function (index) {\r\n return {\r\n row: (Math.floor(index / cols)),\r\n col: (index % cols)\r\n };\r\n };\r\n \r\n // get the pixel width of a border (internet explorer returns keywords)\r\n // the left side values will be used\r\n var getBorderWidth = function ($element) {\r\n // the reported css value\r\n var property = $element.css('border-left-width');\r\n // a border style must be set to get a valid border width\r\n if ($element.css('border-left-style') != 'none') {\r\n switch (property) {\r\n case 'thin':\r\n return 2;\r\n case 'medium':\r\n return 4;\r\n case 'thick':\r\n return 6;\r\n default:\r\n return parseInt(property) || 0; // parse pixel value\r\n }\r\n }\r\n return 0;\r\n };\r\n \r\n // a reusable timer component\r\n // pass in a timeout interval in ms, after which callback is called\r\n // callback gets passed one argument, the elapsed time is ms\r\n var Timer = function (interval, callback) {\r\n var startTime;\r\n var startPauseTime;\r\n var totalPause = 0;\r\n var timeout;\r\n \r\n var run = function () {\r\n update(new Date().getTime());\r\n timeout = setTimeout(run, interval);\r\n };\r\n \r\n var update = function (now) {\r\n callback(now - totalPause - startTime);\r\n };\r\n \r\n // start the timer\r\n this.start = function () {\r\n if (startTime) return false;\r\n startTime = new Date().getTime();\r\n run();\r\n };\r\n \r\n // stop the timer\r\n this.stop = function () {\r\n if (!startTime) return false;\r\n clearTimeout(timeout);\r\n var now = new Date().getTime();\r\n if (startPauseTime) totalPause += now - startPauseTime;\r\n update(now);\r\n startTime = startPauseTime = undefined;\r\n totalPause = 0;\r\n };\r\n \r\n // pause the timer\r\n this.pause = function () {\r\n if (!startTime || startPauseTime) return false;\r\n clearTimeout(timeout);\r\n startPauseTime = new Date().getTime();\r\n };\r\n \r\n // resume the timer\r\n this.resume = function () {\r\n if (!startPauseTime) return false;\r\n totalPause += new Date().getTime() - startPauseTime;\r\n startPauseTime = undefined;\r\n run();\r\n };\r\n };\r\n \r\n \r\n // apply jqPuzzle to each image element within selection -------------------\r\n \r\n return this.filter('img').each(function () {\r\n var $srcImg = $(this); // source image as jQuery object\r\n var lock = false; // flag if animations are running\r\n var moves = 0; // counter for single moves\r\n var seconds = 0; // counter for seconds after first move\r\n var solved; // flag if the puzzle is solved by the user\r\n var shuffled = settings.shuffle; // flag if the puzzle was shuffled\r\n var timer; // a timer component\r\n \r\n // save the current hole position for further manipulation\r\n var currHole = hole;\r\n \r\n \r\n // create dummy elements to get computed css properties\r\n var $dummyPiece = $('
').addClass('jqp-piece');\r\n var $dummyWrapper = $('
').addClass('jqp-wrapper').append($dummyPiece);\r\n var $dummyGui = $('
')\r\n .attr('class', $srcImg.attr('class') || '') // transfer classes\r\n .addClass('jqPuzzle')\r\n .append($dummyWrapper);\r\n \r\n // replace original image with dummy\r\n $srcImg.replaceWith($dummyGui);\r\n \r\n // assign old image id to dummy\r\n $dummyGui.attr('id', $srcImg.attr('id') || '');\r\n \r\n // get computed css properties of dummy elements\r\n var computedStyles = {\r\n gui: {\r\n border: getBorderWidth($dummyGui),\r\n padding: {\r\n left: parseInt($dummyGui.css('padding-left')) || 0,\r\n right: parseInt($dummyGui.css('padding-right')) || 0,\r\n top: parseInt($dummyGui.css('padding-top')) || 0,\r\n bottom: parseInt($dummyGui.css('padding-bottom')) || 0\r\n }\r\n },\r\n wrapper: {\r\n border: getBorderWidth($dummyWrapper),\r\n padding: parseInt($dummyWrapper.css('padding-left')) || 0\r\n },\r\n piece: {\r\n border: getBorderWidth($dummyPiece)\r\n }\r\n };\r\n \r\n // re-replace dummy elements with original image\r\n $dummyGui.removeAttr('id');\r\n $dummyGui.replaceWith($srcImg);\r\n \r\n \r\n // wait for the image to be loaded, to be able to get its real width/height\r\n $srcImg.one('load', function () {\r\n \r\n // overlap piece borders if there is no margin between pieces\r\n // this way, piece borders will not be doubled\r\n var overlap = (style.gridSize === 0 && style.overlap);\r\n \r\n // total space of piece borders and grid lines, which will cover parts of the image\r\n var coveredWidth = cols * (2 * computedStyles.piece.border) + (cols - 1) * style.gridSize;\r\n var coveredHeight = rows * (2 * computedStyles.piece.border) + (rows - 1) * style.gridSize;\r\n \r\n // recalc if overlap\r\n if (overlap) {\r\n coveredWidth -= (cols - 1) * computedStyles.piece.border;\r\n coveredHeight -= (rows - 1) * computedStyles.piece.border;\r\n }\r\n \r\n // make sure to get the original image size, not scaled values\r\n // in mozilla, width() and height() do not work with hidden elements\r\n $srcImg.css({\r\n width: 'auto',\r\n height: 'auto',\r\n visibility: 'visible'\r\n });\r\n \r\n // pieces width and height, based on original image size\r\n var width = Math.floor(($srcImg.width() - coveredWidth) / cols);\r\n var height = Math.floor(($srcImg.height() - coveredHeight) / rows);\r\n \r\n // reject too small images\r\n if (width < 30 || height < 30) return false;\r\n \r\n // recalc full image width and height to avoid rounding errors\r\n var fullWidth = cols * width + coveredWidth;\r\n var fullHeight = rows * height + coveredHeight;\r\n \r\n // image source path\r\n var imgSrc = $srcImg.attr('src');\r\n \r\n // total width/height of a piece (including piece border and 1 grid size)\r\n var totalPieceWidth = width + 2 * computedStyles.piece.border + style.gridSize;\r\n var totalPieceHeight = height + 2 * computedStyles.piece.border + style.gridSize;\r\n \r\n // handle internet explorer quirks mode box model\r\n var boxModelHack = {\r\n piece: $.boxModel ? 0 : 2 * computedStyles.piece.border,\r\n wrapper: $.boxModel ? 0 : 2 * (computedStyles.wrapper.border + computedStyles.wrapper.padding),\r\n gui: {\r\n width: $.boxModel ? 0 : 2 * computedStyles.gui.border +\r\n computedStyles.gui.padding.left + computedStyles.gui.padding.right,\r\n height: $.boxModel ? 0 : 2 * computedStyles.gui.border +\r\n computedStyles.gui.padding.top + computedStyles.gui.padding.bottom\r\n }\r\n };\r\n \r\n \r\n // helper functions ------------------------------------------------\r\n \r\n // pixel offset of an element, based on matrix position\r\n var getOffset = function (row, col) {\r\n var offset = {\r\n left: computedStyles.wrapper.padding + col * totalPieceWidth,\r\n top: computedStyles.wrapper.padding + row * totalPieceHeight\r\n };\r\n \r\n if (overlap) {\r\n offset.left -= col * computedStyles.piece.border;\r\n offset.top -= row * computedStyles.piece.border;\r\n }\r\n \r\n return offset;\r\n };\r\n \r\n // shuffle pieces\r\n var shuffle = function (rounds, speed) {\r\n \r\n // when speed is defined, the function was triggered by a user event (button click)\r\n if (speed) {\r\n // do nothing, if disabled\r\n if ($shuffleButton.is('.jqp-disabled')) return false;\r\n \r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n // ask for confirmation\r\n if (control.confirmShuffle && (moves > 0) &&\r\n !window.confirm(texts.confirmShuffleMessage)) return false;\r\n \r\n lock = true; // set lock\r\n \r\n // if the puzzle is solved\r\n if (solved) {\r\n // reset gui\r\n $gui.removeClass('jqp-solved');\r\n \r\n // fade out original\r\n $background.fadeTo(animation.fadeOriginalSpeed, style.backgroundOpacity, function () {\r\n // opera gets kicked without remove()\r\n $background.remove().prependTo($wrapper);\r\n \r\n // re-enable all buttons\r\n $buttons.removeClass('jqp-disabled');\r\n });\r\n }\r\n }\r\n \r\n // stop the timer\r\n if (timer) timer.stop();\r\n \r\n // reset flag and counters\r\n solved = false;\r\n shuffled = true;\r\n moves = 0;\r\n seconds = 0;\r\n \r\n // reset display\r\n if ($display) $display.removeClass('jqp-disabled');\r\n if ($counter) $counter.val(moves);\r\n if ($timer) $timer.val(seconds);\r\n \r\n var shuffles = [];\r\n var i = 0;\r\n // generate orders for several shuffle rounds\r\n while (i < rounds) {\r\n // create an array for choosing random positions\r\n // based on its lenght, we can select free positions\r\n var choices = [];\r\n for (var j = 0; j < rows * cols; j++) {\r\n choices[j] = j;\r\n }\r\n // remove element on initial hole position\r\n choices.splice(hole, 1);\r\n \r\n shuffles[i] = [];\r\n // generate random numbers\r\n for (var j = 0; j < rows * cols; j++) {\r\n \r\n // but keep hole at initial position\r\n if (j == hole) {\r\n shuffles[i][j] = hole;\r\n continue;\r\n }\r\n \r\n // select a random position based on the length of the choices\r\n var randomIndex = Math.floor(Math.random() * choices.length);\r\n \r\n // save the value at this index as the next number in the current order\r\n shuffles[i][j] = choices[randomIndex];\r\n \r\n // remove this value from the choices array (reducing its length)\r\n choices.splice(randomIndex, 1);\r\n }\r\n \r\n // don't increase i if we are in last round \r\n // and the generated order is not solvable\r\n if (((i + 1) < rounds) || checkOrder(shuffles[i])) i++;\r\n }\r\n \r\n var animCounter = 0; // animation counter for save unlock\r\n \r\n // shuffle pieces in several rounds\r\n for (var i = 0; i < rounds; i++) {\r\n \r\n // set flag for the last round\r\n var lastRound = ((i + 1) == rounds);\r\n \r\n // iterate over the generated orders\r\n // with j being the linear index for the destination order\r\n for (var j = 0; j < shuffles[i].length; j++) {\r\n \r\n // we cannot move the hole\r\n if (j == hole) {\r\n // update hole position\r\n if (lastRound) currHole = hole;\r\n continue;\r\n }\r\n \r\n // the value is the index of the current piece\r\n // in the original, ordered $pieces array\r\n var pieceIndex = shuffles[i][j];\r\n \r\n // since the hole is not saved in the $pieces array, \r\n // adjust the index if it is bejond the hole position\r\n if (pieceIndex > hole) pieceIndex -= 1;\r\n \r\n // get the actual piece to be moved\r\n var $piece = $pieces.eq(pieceIndex);\r\n \r\n // get target position\r\n var target = getMatrixPosition(j);\r\n \r\n // get pixel offset new position\r\n var offset = getOffset(target.row, target.col);\r\n \r\n // update current row/cal in last round\t(ie needs a string)\r\n if (lastRound) {\r\n $piece.attr('current', j.toString());\r\n var expPos = $piece[0].getAttribute('expectedposition'),\r\n emptyTile = (expPos == 1 || expPos == 5) ? translations.ImagePuzzleTitleAccess_copy5 + ' 6.' : '';\r\n (j >= 3) ? $piece.attr('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(j + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '. ' + translations.ImagePuzzleTitleAccess_copy3) : $piece.attr('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(j + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '. ' + translations.ImagePuzzleTitleAccess_copy4);\r\n }\r\n \r\n // either just set or animate styles\r\n if (speed === undefined) {\r\n $piece.css({\r\n left: offset.left,\r\n top: offset.top\r\n });\r\n } else {\r\n // animate!\r\n $piece.animate({\r\n left: offset.left,\r\n top: offset.top\r\n }, speed, null, function () {\r\n // unlock after last animation in last round\r\n animCounter++;\r\n if (animCounter == animation.shuffleRounds * (rows * cols - 1)) {\r\n lock = false;\r\n animCounter = 0;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n \r\n \r\n // create elements -------------------------------------------------\r\n \r\n // create a wrapper for the pieces\r\n var $wrapper = $('
')\r\n .addClass('jqp-wrapper')\r\n .css({\r\n width: fullWidth + boxModelHack.wrapper + 2,\r\n height: fullHeight + boxModelHack.wrapper + 2,\r\n borderWidth: computedStyles.wrapper.border,\r\n padding: computedStyles.wrapper.padding,\r\n margin: 0,\r\n position: 'relative',\r\n overflow: 'hidden',\r\n display: 'block',\r\n visibility: 'inherit'\r\n });\r\n \r\n // create a single piece prototype to be cloned for the actual pieces\r\n var $protoPiece = $('')\r\n .addClass('jqp-piece')\r\n .css({\r\n width: width + boxModelHack.piece + 2,\r\n height: height + boxModelHack.piece + 2,\r\n backgroundImage: 'url(' + imgSrc + ')',\r\n borderWidth: computedStyles.piece.border,\r\n margin: 0,\r\n padding: 0,\r\n position: 'absolute',\r\n overflow: 'hidden',\r\n display: 'block',\r\n visibility: 'inherit',\r\n cursor: 'default'\r\n })\r\n .attr('href', '#')\r\n .append($('')); // will hold the numbers\r\n // create pieces inside wrapper\r\n \r\n var $pieces = $([]),\r\n key = 0; // create an empty jQuery object\r\n for (var i = 0; i < rows; i++) {\r\n for (var j = 0; j < cols; j++) {\r\n var index = getLinearPosition(i, j); // linear index\r\n \r\n // do not create piece at initial hole position\r\n if (index == hole) continue;\r\n \r\n // get piece position offset\r\n var offset = getOffset(i, j);\r\n \r\n // calculate background offset\r\n var bgLeft = -1 * (j * totalPieceWidth + computedStyles.piece.border);\r\n var bgTop = -1 * (i * totalPieceHeight + computedStyles.piece.border);\r\n \r\n // recalc if overlap\r\n if (overlap) {\r\n bgLeft += j * computedStyles.piece.border;\r\n bgTop += i * computedStyles.piece.border;\r\n }\r\n \r\n // create single pieces from prototype\r\n $pieces = $pieces.add($protoPiece.clone()\r\n .css({\r\n left: offset.left,\r\n top: offset.top,\r\n backgroundPosition: (bgLeft + 'px ' + bgTop + 'px')\r\n })\r\n // add expando property to save the current position\r\n .attr('current', String(index)) // ie hack: String()\r\n .attr('index', cardIndex[key])\r\n .attr('href', '#')\r\n .attr('expectedposition', String(index + 1))\r\n .appendTo($wrapper)\r\n // add number to inner span\r\n .children().text(index + 1).end()\r\n );\r\n key = key + 1;\r\n }\r\n }\r\n \r\n // initially shuffle pieces\r\n if (settings.shuffle) shuffle(1);\r\n \r\n // create background (original image) inside wrapper\r\n var $background = $('
')\r\n .css({\r\n width: fullWidth,\r\n height: fullHeight,\r\n left: computedStyles.wrapper.padding,\r\n top: computedStyles.wrapper.padding,\r\n backgroundImage: 'url(' + imgSrc + ')',\r\n borderWidth: 0,\r\n margin: 0,\r\n padding: 0,\r\n position: 'absolute',\r\n opacity: style.backgroundOpacity\r\n })\r\n .prependTo($wrapper);\r\n \r\n // create controls which will hold the buttons and the display\r\n var $controls = $('
')\r\n .addClass('jqp-controls')\r\n .css({\r\n visibility: 'inherit',\r\n display: 'block',\r\n position: 'static'\r\n });\r\n \r\n var $shuffleButton, $originalButton, $numbersButton;\r\n \r\n // create a button prototype to be cloned for the actual buttons\r\n var $protoButton = $('').css('cursor', 'default');\r\n \r\n // create shuffle button\r\n if (control.shufflePieces) {\r\n $shuffleButton = $protoButton.clone()\r\n .text(texts.shuffleLabel)\r\n .appendTo($controls);\r\n }\r\n \r\n // create toggle original button\r\n if (control.toggleOriginal) {\r\n $originalButton = $protoButton.clone()\r\n .text(texts.toggleOriginalLabel)\r\n .appendTo($controls);\r\n }\r\n \r\n // create toggle numbers button\r\n if (control.toggleNumbers) {\r\n $numbersButton = $protoButton.clone()\r\n .text(texts.toggleNumbersLabel)\r\n .appendTo($controls);\r\n // immediately toggle button, if numbers are initially shown\r\n if (settings.numbers) $numbersButton.addClass('jqp-toggle');\r\n }\r\n \r\n // keep a reference to all buttons for convenience\r\n var $buttons = $controls.children();\r\n \r\n var $display, $counter, $timer;\r\n if (control.counter || control.timer) {\r\n \r\n // create wrapper for counter/timer\r\n $display = $('')\r\n .css('cursor', 'default')\r\n .appendTo($controls);\r\n \r\n // create a text field prototype to be cloned for actual text fields\r\n var $protoField = $('')\r\n .val(0)\r\n .css({\r\n width: '5ex',\r\n cursor: 'default'\r\n })\r\n .attr('readonly', 'readonly');\r\n \r\n // create counter component\r\n if (control.counter) $counter = $protoField.clone()\r\n .appendTo($display)\r\n .after(texts.movesLabel + ' ');\r\n \r\n // create timer component\r\n if (control.timer) $timer = $protoField.clone()\r\n .appendTo($display)\r\n .after(texts.secondsLabel);\r\n \r\n // disable display if the puzzle is not shuffled yet\r\n if (!settings.shuffle) $display.addClass('jqp-disabled');\r\n }\r\n \r\n // add link to jqPuzzle homepage\r\n var $credits = $('')\r\n // .text('jqPuzzle')\r\n // .attr('href', 'http://www.2meter3.de/jqPuzzle/')\r\n // .css({\r\n // \t'float': 'right',\r\n // \tfontFamily: 'Verdana, Arial, Helvetica, sans-serif',\r\n // \tfontSize: '9px',\r\n // \tlineHeight: '12px',\r\n // \ttextDecoration: 'none',\r\n // \tcolor: '#FFFFFF',\r\n // \tbackgroundColor: '#777777',\r\n // \tbackgroundImage: 'none',\r\n // \tborderBottom: '1px dotted #FFFFFF',\r\n // \tpadding: '1px 3px 2px',\r\n // \tmarginRight: computedStyles.wrapper.border,\r\n // \tposition: 'static',\r\n // \tdisplay: 'inline',\r\n // \tvisibility: 'inherit'\r\n // });\r\n \r\n // panel which holds controls and credits, used for height() calculations\r\n var $panel = $('
')\r\n .css({\r\n width: fullWidth + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border),\r\n position: 'absolute',\r\n display: 'block',\r\n visibility: 'inherit', //'visible',\r\n margin: '0px',\r\n padding: '0px',\r\n backgroundColor: 'transparent'\r\n })\r\n .append($credits).append($controls);\r\n $('.correct-img, .correct-img img').css({\r\n height: fullHeight + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.height - 10,\r\n })\r\n // full gui (including wrapper and panel)\r\n var $gui = $('
')\r\n .attr('class', $srcImg.attr('class') || '') // transfer classes\r\n .addClass('jqPuzzle') // always assign class jqPuzzle\r\n .css({\r\n width: fullWidth + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.width,\r\n height: fullHeight + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.height,\r\n textAlign: 'left',\r\n overflow: 'hidden',\r\n display: 'block'\r\n })\r\n .append($wrapper).append($panel);\r\n \r\n // replace source image with jqPuzzle\r\n $srcImg.replaceWith($gui);\r\n \r\n // assign source image id to jqPuzzle\r\n var id = $srcImg.attr('id');\r\n if (id) $gui.attr('id', id);\r\n \r\n // opera has strange effect when calling hide() and val() before \r\n // the elements are attached to the dom\r\n // hide numbers\r\n if (!settings.numbers) $pieces.children().hide();\r\n // fill inputs\r\n if ($display) $display.children('input').val(0);\r\n \r\n // now, after everything is rendered, recalc gui height\r\n var guiHeight = $gui.height();\r\n var panelHeight = $panel.height();\r\n \r\n $gui.height($gui.height() + $panel.height());\r\n \r\n \r\n // attach events ---------------------------------------------------\r\n \r\n // prevent text selection\r\n if ($.browser.msie) $gui[0].onselectstart = function () {\r\n return false;\r\n };\r\n else $gui.mousedown(function () {\r\n return false;\r\n });\r\n \r\n // button press on mousedown\r\n $buttons.mousedown(function () {\r\n if (!$(this).is('.jqp-disabled')) $(this).addClass('jqp-down');\r\n });\r\n $buttons.mouseout(function () {\r\n $(this).removeClass('jqp-down');\r\n });\r\n $buttons.mouseup(function () {\r\n $(this).removeClass('jqp-down');\r\n });\r\n \r\n // swap pieces on click\r\n $pieces.on('click touchend', function (event) {\r\n //$pieces.click(function (event) {\r\n event.preventDefault();\r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n // do nothing, if solved after being shuffled\r\n if (solved) return false;\r\n \r\n lock = true; // set lock\r\n var $piece = $(this);\r\n $piece.focus();\r\n // get current position from expando\r\n var current = $piece.attr('current');\r\n var expPos = $piece[0].getAttribute('expectedposition');\r\n var currPos = $piece[0].getAttribute('current');\r\n // get current matrix positions for piece and hole\r\n var source = getMatrixPosition(current);\r\n var dest = getMatrixPosition(currHole);\r\n \r\n // only swap pieces adjacent to the hole\r\n if (Math.abs(source.row - dest.row) + Math.abs(source.col - dest.col) != 1) {\r\n lock = false;\r\n $piece.attr('aria-label', translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(parseInt(currPos) + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '.' + translations.ImagePuzzleTitleAccess_copy4);\r\n \r\n return false;\r\n }\r\n else {\r\n $piece.attr('aria-label', translations.ImagePuzzleTitleAccess_copy);\r\n }\r\n // get offset for the new position\r\n var offset = getOffset(dest.row, dest.col);\r\n \r\n // update piece expando and current hole position\r\n $piece.attr('current', String(currHole)); // ie hack: String()\r\n \r\n var positions = [],\r\n blankPos = [];\r\n for (var i = 0; i < 6; i++) {\r\n $pieces.each(function (j) {\r\n if (i == $pieces[j].getAttribute('current')) {\r\n positions.push(i);\r\n return;\r\n //currPos[j] = $pieces[j].getAttribute('current');\r\n // expPos[j] = $pieces[j].getAttribute('expectedposition');\r\n //need later// $pieces[j].setAttribute('aria-label', 'The current position of tile is ' + String(parseInt($pieces[j].getAttribute('current'))+1) + ' and it should be at position ' + $pieces[j].getAttribute('expectedposition') + '.');\r\n }\r\n });\r\n if (positions.indexOf(i) < 0) { //identifying blank position\r\n blankPos.push(i);\r\n }\r\n \r\n }\r\n setTimeout(() => {\r\n for (var k = 0; k < 5; k++) {\r\n var currVal = (parseInt($pieces[k].getAttribute('current')) + 1),\r\n expVal = $pieces[k].getAttribute('expectedposition'),\r\n emptyTile = (expVal == 1 || expVal == 5) ? translations.ImagePuzzleTitleAccess_copy5 + ' ' + parseInt(blankPos[0] + 1) + '. ' : '',\r\n movVal = ((blankPos[0] == 0 && ($pieces[k].getAttribute('current') == '1' || $pieces[k].getAttribute('current') == '2')) || (blankPos[0] == 1 && ($pieces[k].getAttribute('current') == '0' || $pieces[k].getAttribute('current') == '3')) || (blankPos[0] == 2 && ($pieces[k].getAttribute('current') == '0' || $pieces[k].getAttribute('current') == '3' || $pieces[k].getAttribute('current') == '4')) || (blankPos[0] == 3 && ($pieces[k].getAttribute('current') == '1' || $pieces[k].getAttribute('current') == '2' || $pieces[k].getAttribute('current') == '5')) || (blankPos[0] == 4 && ($pieces[k].getAttribute('current') == '2' || $pieces[k].getAttribute('current') == '5')) || (blankPos[0] == 5 && ($pieces[k].getAttribute('current') == '3' || $pieces[k].getAttribute('current') == '4'))) ? translations.ImagePuzzleTitleAccess_copy3 : translations.ImagePuzzleTitleAccess_copy4;\r\n \r\n $pieces[k].setAttribute('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + currVal + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expVal + '. ' + movVal);\r\n }\r\n }, 1500);\r\n \r\n currHole = current;\r\n // increase moves counter only if the puzzle was shuffled\r\n if (shuffled) moves++;\r\n \r\n // update counter field\r\n if ($counter) $counter.val(moves);\r\n \r\n // start timer, if needed\r\n if (moves == 1) {\r\n // initiate timer with update function\r\n if (!timer) timer = new Timer(333, function (ms) {\r\n seconds = Math.floor(ms / 1000);\r\n if ($timer) $timer.val(seconds);\r\n });\r\n timer.start();\r\n }\r\n \r\n // animate!\r\n $piece.animate({\r\n left: offset.left,\r\n top: offset.top\r\n }, animation.slidingSpeed, null, function () {\r\n // only check if the puzzle was shuffled\r\n if (shuffled) {\r\n // check if the puzzle is solved\r\n solved = checkSolution($pieces);\r\n if (solved) {\r\n if (timer) timer.stop();\r\n shuffled = false;\r\n $gui.addClass('jqp-solved');\r\n window.setTimeout(finishGame, 100);\r\n } else {\r\n lock = false\r\n \r\n }\r\n } else lock = false;\r\n });\r\n });\r\n \r\n // shuffle pieces on click\r\n if (control.shufflePieces) $shuffleButton.click(function () {\r\n shuffle(animation.shuffleRounds, animation.shuffleSpeed);\r\n });\r\n \r\n // toggle original on click\r\n if (control.toggleOriginal) $originalButton.click(function () {\r\n // do nothing, if disabled\r\n if ($originalButton.is('.jqp-disabled')) return false;\r\n \r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n lock = true; // set lock\r\n \r\n if ($originalButton.is('.jqp-toggle')) {\r\n // re-enable other buttons\r\n if (control.shufflePieces) $shuffleButton.removeClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.removeClass('jqp-disabled');\r\n \r\n $originalButton.removeClass('jqp-toggle');\r\n \r\n // fade out original\r\n $background.fadeTo(animation.fadeOriginalSpeed, style.backgroundOpacity, function () {\r\n $(this).prependTo($wrapper);\r\n \r\n // resume timer\r\n if (control.pauseTimer && timer) timer.resume();\r\n \r\n lock = false;\r\n });\r\n } else {\r\n // disable other buttons\r\n if (control.shufflePieces) $shuffleButton.addClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.addClass('jqp-disabled');\r\n \r\n $originalButton.addClass('jqp-toggle');\r\n \r\n // pause timer\r\n if (control.pauseTimer && timer) timer.pause();\r\n \r\n // fade in original\r\n $background.appendTo($wrapper).fadeTo(animation.fadeOriginalSpeed, 1, function () {\r\n \r\n lock = false;\r\n });\r\n }\r\n return false; // prevent default action\r\n });\r\n \r\n // toggle numbers on click\r\n if (control.toggleNumbers) $numbersButton.click(function () {\r\n // do nothing, if disabled\r\n if ($numbersButton.is('.jqp-disabled')) return false;\r\n \r\n if ($numbersButton.is('.jqp-toggle')) {\r\n $numbersButton.removeClass('jqp-toggle');\r\n $pieces.children().hide();\r\n } else {\r\n $numbersButton.addClass('jqp-toggle');\r\n $pieces.children().show();\r\n }\r\n });\r\n \r\n \r\n // work to do when the puzzle is solved\r\n var finishGame = function () {\r\n if (success.fadeOriginal) {\r\n // disable buttons\r\n if (control.toggleOriginal) $originalButton.addClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.addClass('jqp-disabled');\r\n \r\n // fade in original\r\n $background.appendTo($wrapper).fadeTo(animation.fadeOriginalSpeed, 1.0, function () {\r\n lock = false; // reset lock\r\n solutionCallback(); // call user callback\r\n });\r\n } else {\r\n lock = false; // reset lock\r\n solutionCallback(); // call user callback\t\r\n }\r\n };\r\n \r\n // call a user-defined callback after a timeout, when the puzzle is solved\r\n var solutionCallback = function () {\r\n if ($.isFunction(success.callback)) {\r\n setTimeout(function () {\r\n success.callback({\r\n moves: moves,\r\n seconds: seconds\r\n });\r\n \r\n }, success.callbackTimeout);\r\n }\r\n // console.log(seconds);\r\n var puzzleMoves = moves;\r\n $('.ng-isolate-scope').removeClass(\"hide-loader\");\r\n API.postPuzzle({\r\n answers: answers,\r\n TieBreakAnswer: puzzleMoves\r\n },\r\n webStorageService.getSessionData(\"servToken\")\r\n )\r\n .then(function (data) {\r\n // accessService.setPermission('limit', true);\r\n if (data.response.RedirectUrl.toLowerCase().indexOf('thankyou') > -1) {\r\n \r\n var winnerObj = {\r\n winner: 97,\r\n }\r\n \r\n dataLayers().imagePuzzleEntryComplete();\r\n dataLayers().orderData(97);\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }\r\n \r\n history.push({ pathname: data.response.RedirectUrl, state: winnerObj });\r\n pageScroll();\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n };\r\n \r\n }); // img load\r\n \r\n // unfortunately, image load does not fire consistently across browsers\r\n // (especially with cached images)\r\n // therefore, check image.load periodically (bah, brute force...)\r\n var interval = setInterval(function () {\r\n if ($srcImg[0].complete) {\r\n clearInterval(interval);\r\n $srcImg.trigger('load');\r\n }\r\n }, 333);\r\n \r\n /*\r\n var interval;\r\n (function waitForImage($image) {\r\n if(!$image[0].complete) {\r\n interval = setInterval(function() {\r\n waitForImage($image);\r\n }, 100);\r\n } else {\r\n clearInterval(interval);\r\n $image.trigger('load');\r\n }\r\n })($srcImg);*/\r\n \r\n // ie shows some inconsistencies with img load and cached images\r\n // fortunately, in this cases img.complete is true from the beginning\r\n //if($.browser.msie && $srcImg[0] && $srcImg[0].complete) $srcImg.trigger('load');\r\n \r\n \r\n }).end(); // return full collection to allow chaining\r\n };\r\n \r\n // automagically apply jqPuzzle to all images with class 'jqPuzzle'\r\n $(function () {\r\n \r\n $('img.jqPuzzle').each(function () {\r\n \r\n // define an additional micro format (to be used as a class name)\r\n \r\n /* Syntax: .jqp[-LANGUAGE]-rROWS-cCOLS[-hHOLE][-sSHUFFLE_ROUNDS][-FLAGS]\r\n * \r\n * Flags: S - initially shuffle pieces\r\n * N - initially hide numbers\r\n * A - hide 'Shuffle' button\r\n * B - hide 'Original' button\r\n * C - hide 'Numbers' button\r\n * D - hide 'moves' display\r\n * E - hide 'seconds' display\r\n */\r\n var microFormat = /\\bjqp(-[a-z]{2})?-r(\\d)-c(\\d)(-h(\\d+))?(-s(\\d+))?(-[A-Z]+)?\\b/;\r\n \r\n // execute regex and save matches\r\n var match = microFormat.exec(this.className);\r\n \r\n // build settings object from micro format\r\n var settings;\r\n if (match) {\r\n settings = {\r\n rows: parseInt(match[2]),\r\n cols: parseInt(match[3]),\r\n hole: parseInt(match[5]) || null,\r\n shuffle: match[8] && match[8].indexOf('S') != -1,\r\n numbers: match[8] ? match[8].indexOf('N') == -1 : true,\r\n language: match[1] && match[1].substring(1)\r\n };\r\n \r\n if (match[7]) {\r\n settings.animation = {};\r\n settings.animation.shuffleRounds = parseInt(match[7]);\r\n }\r\n \r\n if (match[8] && match[8].search(/[ABCDE]/) != -1) {\r\n settings.control = {};\r\n settings.control.shufflePieces = match[8].indexOf('A') == -1;\r\n settings.control.toggleOriginal = match[8].indexOf('B') == -1;\r\n settings.control.toggleNumbers = match[8].indexOf('C') == -1;\r\n settings.control.counter = match[8].indexOf('D') == -1;\r\n settings.control.timer = match[8].indexOf('E') == -1;\r\n }\r\n }\r\n // call the plugin\r\n $(this).jqPuzzle(settings);\r\n });\r\n });\r\n \r\n })($);\r\n var jQuery = $;\r\n jQuery.browser = {};\r\n (function () {\r\n jQuery.browser.msie = false;\r\n jQuery.browser.version = 0;\r\n if (navigator.userAgent.match(/MSIE ([0-9]+)\\./)) {\r\n jQuery.browser.msie = true;\r\n jQuery.browser.version = RegExp.$1;\r\n }\r\n })();\r\n $(function () {\r\n var mySettings = {\r\n rows: 3, // number of rows [3 ... 9] \r\n cols: 2, // number of columns [3 ... 9] \r\n hole: 6, // initial hole position [1 ... rows*columns] \r\n shuffle: true, // initially show shuffled pieces [true|false] \r\n numbers: false, // initially show numbers on pieces [true|false] \r\n // display additional gui controls \r\n control: {\r\n shufflePieces: false, // display 'Shuffle' button [true|false] \r\n confirmShuffle: false, // ask before shuffling [true|false] \r\n toggleOriginal: false, // display 'Original' button [true|false] \r\n toggleNumbers: false, // display 'Numbers' button [true|false] \r\n counter: false, // display moves counter [true|false] \r\n timer: false, // display timer (seconds) [true|false] \r\n pauseTimer: false // pause timer if 'Original' button is activated \r\n // [true|false] \r\n },\r\n }\r\n $('#puzzle-box').jqPuzzle(mySettings);\r\n });\r\n }\r\n \r\n return (\r\n <>\r\n \r\n
\r\n

{translations.ImagePuzzlePageTitle}

\r\n
{translations.CoreKelloggs_PuzzlePageTitle}
\r\n
\r\n {/*

{translations.ImagePuzzleStepsHeading}

*/}\r\n

{translations.ImagePuzzleSteps1}

\r\n

{translations.ImagePuzzleSteps2}

\r\n {/*

{translations.ImagePuzzleSteps3}

*/}\r\n
\r\n
\r\n

{translations.ImagePuzzleTitleCopy}

\r\n

{translations.ImagePuzzleTitleCopy1}

\r\n

{translations.ImagePuzzleTitleCopy2}

\r\n
\r\n
\r\n
\r\n {translations.CoreKelloggs_PuzzlePageTitle}\r\n
\r\n {translations.CoreKelloggs_PuzzlePageTitle}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Puzzle;","import React, { useContext } from 'react';\r\nimport { Redirect, useLocation, useHistory, Link } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\nconst Thankyou = () => {\r\n const { translations } = useContext(JsonContext);\r\n const location = useLocation();\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Thankyou';\r\n\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Thankyou') {\r\n return \r\n }\r\n\r\n webStorageService.removeSessionData('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Thankyou');\r\n\r\n\r\n // var winnerCode = 1,\r\n // isExtendedPhase = false,\r\n // refCode = '';\r\n var winnerCode = location.state.winner,\r\n isExtendedPhase = location.state.isExtendedPhase;\r\n // refCode = location.state.refCode ? location.state.refCode : '';\r\n var winCategory, WinPageHeading, WinPageSubHeading, WinPageDesc, WinPageDesc1, WinPageDesc2;\r\n // WinPageHeading = translations.ThankyouPageHeading_wm;\r\n // WinPageSubHeading = translations.ThankyouPageDescription_wm;\r\n // WinPageDesc1 = translations.ThankyouPageDescription1_wm;\r\n // WinPageDesc2 = translations.ThankyouPageDescription2_wm;\r\n if (isExtendedPhase) {\r\n winCategory = 'extended'\r\n WinPageHeading = translations.PrizeDrawThankyouHeading;\r\n WinPageDesc1 = translations.PrizeDrawThankyouDescription;\r\n WinPageDesc2 = translations.PrizeDrawThankyouDescription1;\r\n dataLayers().orderData(97);\r\n }\r\n\r\n \r\n var setThankyouContent = function () {\r\n switch (winnerCode) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case -16:\r\n winCategory = 'Win';\r\n WinPageHeading = translations.ThankyouPageHeading_wm;\r\n WinPageSubHeading = translations.ThankyouPageDescription_wm;\r\n WinPageDesc1 = translations.ThankyouPageDescription1_wm;\r\n WinPageDesc2 = translations.ThankyouPageDescription2_wm;\r\n break;\r\n case 97:\r\n winCategory = 'Crossword';\r\n WinPageHeading = translations.ThankyouPageHeading_tos;\r\n WinPageSubHeading = translations.ThankyouPageDescription_tos;\r\n WinPageDesc1 = translations.ThankyouPageDescription1_tos;\r\n WinPageDesc2 = translations.ThankyouPageDescription2_tos;;\r\n break;\r\n default:\r\n // $location.path(lang + '/Home');\r\n break;\r\n }\r\n }\r\n if (!isExtendedPhase) {\r\n setThankyouContent();\r\n }\r\n \r\n return (\r\n <>\r\n \r\n
\r\n

\r\n
{WinPageHeading}
\r\n {WinPageSubHeading &&

{WinPageSubHeading}

}\r\n {WinPageDesc1 &&

}\r\n {WinPageDesc2 &&

}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Thankyou;","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\nconst Limit = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Limit';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Limit') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Limit');\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n let globalLimit = webStorageService.getSessionData('limitType'),\r\n limitPageHeading,\r\n limitPageDesc,\r\n limitPageDesc1,\r\n limitPageDesc2;\r\n //globalLimit = 'GlobalRedesmptionLimit';\r\n limitPageHeading = translations.Sorry;\r\n switch (globalLimit) {\r\n \r\n case 'GlobalRedemptionLimit':\r\n dataLayers().winLimit();\r\n limitPageDesc = '';\r\n limitPageDesc1 = translations.WinLimit;\r\n break;\r\n \r\n case 'MaxUserAttemptLimit':\r\n limitPageHeading = '';\r\n limitPageDesc = '';\r\n limitPageDesc1 = translations.CoreKelloggs_MaximumEntryLimit;\r\n limitPageDesc2 = translations.CoreKelloggs_MaximumEntryLimit_teamPringles;\r\n break;\r\n default:\r\n dataLayers().entryLimit();\r\n limitPageDesc = translations.DailyLimit;\r\n limitPageDesc1 = translations.DailyLimitDescription;\r\n }\r\n \r\n return (\r\n <>\r\n \r\n
\r\n {limitPageHeading &&

{limitPageHeading}

}\r\n {limitPageDesc &&

}\r\n {limitPageDesc1 &&

}\r\n {limitPageDesc2 &&

}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Limit;","import React, { useContext } from 'react';\r\nimport { Redirect, useHistory, useLocation } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\nconst Error = () => {\r\n const { translations } = useContext(JsonContext);\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Error';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Error') {\r\n return \r\n }\r\n\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Error');\r\n let ErrorKey = webStorageService.getSessionData('ErrorKey') ? webStorageService.getSessionData('ErrorKey') : translations.CoreKelloggs_GeneralErrorMsg_klg, \r\n ErrorCode = webStorageService.getSessionData('ErrorCode') ? webStorageService.getSessionData('ErrorCode') : '',\r\n titleError = ErrorKey,\r\n hideErrHead = (ErrorCode == 140) ? true : false;\r\n dataLayers().errorCodeEvent(\"kelloggs.com\", ErrorCode);\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.CoreKelloggs_ErrorPageHeading}

\r\n

\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Error;","import React, { useContext, useState } from 'react';\r\nimport { locale, MetaTags, $ } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst FAQ = () => {\r\n const { translations } = useContext(JsonContext);\r\n const location = useLocation();\r\n document.querySelector('body').setAttribute('pagename', 'FAQ');\r\n var pageScrollFaq = function () {\r\n window.scrollTo(0, 0);\r\n setTimeout(function () {\r\n $('html, body').animate({\r\n scrollTop: $('#faqPara').offset().top - 100\r\n }, 1000);\r\n }, 1000);\r\n }\r\n if (location.hash.toLowerCase().indexOf('faqpara') > -1) {\r\n pageScrollFaq();\r\n }\r\n let currentlang = locale.toLowerCase(),\r\n defaultFaq,\r\n clicked_country;\r\n // defaultFaq=translations.Faq;\r\n switch (currentlang) {\r\n case 'en_gr':\r\n defaultFaq = translations.FaqCyprus;\r\n clicked_country = 'Cyprus';\r\n break;\r\n // case 'fr_be':\r\n // defaultFaq=translations.FaqBelgium;\r\n // clicked_country='Belgium';\r\n // break;\r\n default:\r\n defaultFaq = translations.Faq;\r\n }\r\n\r\n const [faqContent, setFaqContent] = useState(defaultFaq);\r\n const [clickedCountry, setClickedCountry] = useState(clicked_country ? clicked_country : '');\r\n\r\n const show_hide = function (key) {\r\n clicked_country = key.trim();\r\n setClickedCountry(clicked_country);\r\n // faqContent = translations['Faq' + key];\r\n setFaqContent(translations['Faq' + key]);\r\n\r\n /* if(clicked_country === 'Luxembourgh'){\r\n faqContent=translations['FaqLuxembourg'];\r\n } else if(clicked_country === 'Belgium') {\r\n faqContent=translations['FaqBelgium'];\r\n } else if(clicked_country === 'Malta') {\r\n faqContent=translations['FaqMalta'];\r\n } else if(clicked_country === 'Iceland') {\r\n faqContent=translations['FaqIceland'];\r\n } else{\r\n faqContent=translations['Faq'+key];\r\n }*/\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {\r\n (currentlang != 'el_gr' && currentlang != 'az_az') &&

{translations.CoreKelloggs_FooterFaq}

\r\n }\r\n {\r\n currentlang == 'el_gr' &&

ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ (FAQ)

\r\n }\r\n {\r\n currentlang == 'en_gr' &&
    \r\n {\r\n currentlang == 'en_gr' &&
  1. show_hide('Cyprus')}\r\n className={clickedCountry !== 'Cyprus' ? 'active inactive' : 'active'}\r\n >{translations.LabelCyprus}
  2. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  3. show_hide('Malta')}\r\n className={clickedCountry === 'Malta' ? 'active' : ''}\r\n >{translations.LabelMalta}
  4. \r\n }\r\n {/* {\r\n currentlang == 'en_gr' &&
  5. {translations.LabelIceland}
  6. \r\n }\r\n {\r\n currentlang == 'fr_be' &&
  7. {translations.LabelBelgium}
  8. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  9. {translations.LabelLuxembourg}
  10. \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\nexport default FAQ;","import React, { useContext, useState } from 'react';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Terms = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'TERMS');\r\n\r\n let currentlang = locale.toLowerCase(),\r\n defaultTerms,\r\n clicked_country;\r\n // defaultTerms=translations.Faq;\r\n switch (currentlang) {\r\n case 'en_gr':\r\n defaultTerms = translations.TncCyprus;\r\n clicked_country = 'Cyprus';\r\n break;\r\n // case 'fr_be':\r\n // defaultTerms=translations.TncBelgium;\r\n // clicked_country='Belgium';\r\n // break;\r\n default:\r\n defaultTerms = translations.Tnc;\r\n }\r\n const [ tncContent, setTncContent ] = useState(defaultTerms);\r\n const [ clickedCountry, setClickedCountry ] = useState(clicked_country?clicked_country:'');\r\n const show_hide = function (key) {\r\n clicked_country = key.trim();\r\n setClickedCountry(clicked_country);\r\n // tncContent = translations['Tnc' + key];\r\n setTncContent(translations['Tnc' + key]);\r\n /* if(clickedCountry === 'Luxembourgh'){\r\n tncContent=translations['TncLuxembourgh'];\r\n } else if(clickedCountry === 'Belgium') {\r\n tncContent=translations['TncBelgium'];\r\n } else if(clickedCountry === 'Malta') {\r\n tncContent=translations['TncMalta'];\r\n } else if(clickedCountry === 'Iceland') {\r\n tncContent=translations['TncIceland'];\r\n } else{\r\n tncContent=translations['Tnc'+key];\r\n }*/\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {\r\n (currentlang != 'el_gr' && currentlang != 'az_az') &&

{translations.CoreKelloggs_FooterTerms}

\r\n }\r\n {\r\n currentlang == 'el_gr' &&

ΟΡΟΙ ΚΑΙ ΠΡΟΫΠΟΘΕΣΕΙΣ

\r\n }\r\n {\r\n currentlang == 'en_gr' &&
    \r\n {\r\n currentlang == 'en_gr' &&
  1. show_hide('Cyprus')}\r\n className={clickedCountry !== 'Cyprus' ? 'active inactive': 'active'}\r\n >{translations.LabelCyprus}
  2. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  3. show_hide('Malta')}\r\n className={clickedCountry === 'Malta' ? 'active': ' '}\r\n >{translations.LabelMalta}
  4. \r\n }\r\n {/* {\r\n currentlang == 'en_gr' &&
  5. {translations.LabelIceland}
  6. \r\n }\r\n {\r\n currentlang == 'fr_be' &&
  7. {translations.LabelBelgium}
  8. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  9. {translations.LabelLuxembourg}
  10. \r\n } */}\r\n
\r\n }\r\n

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Terms;","import React, { useContext } from 'react';\r\nimport { MetaTags, $ } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst About = () => {\r\n const { translations } = useContext(JsonContext);\r\n document.querySelector('body').setAttribute('pagename', 'FAQ');\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

{translations.AboutPageTitle}

\r\n

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default About;","import {$} from '../../Utility/Global'\r\n\r\n$(window).on('load',function(){\r\n var serviceURL = (typeof window.JS_ServiceURL !== 'undefined')?window.JS_ServiceURL:'https://services.kelloggs.com',\r\n base = window.location.pathname.split('/')[1],\r\n siteURL = window.location.origin + (base.length > 0 ? \"/\" + base : \"\");\r\n\t\tif (siteURL.indexOf('stage-') >= 0) {\r\n /*commented stage as per mindtree ref#1076472*/\r\n serviceURL = \"//gammastage.services.kelloggs.com\";\r\n }\r\n $.ajax({\r\n url: serviceURL+'/bin/ccquerybuilder.jsonp?propertyName=sitepath&propertyValue='+siteURL,\r\n dataType: 'jsonp',\r\n //jsonp: false,\r\n jsonpCallback: 'getAlert',\r\n success: function(data){\r\n //console.log(data); \r\n },\r\n complete: function() {\r\n //alert('complete');\r\n },\r\n error: function (request, error, errorThrown) {\r\n //console.log(error, errorThrown);\r\n }\r\n });\r\n});\r\nwindow.getAlert = function(jsonObject) {\r\n var json = JSON.parse(jsonObject), i, msg = \"\";\r\n for (i=0;i 
'+shortMsg+'
';\r\n }\r\n if(document.getElementById('error_wp').innerHTML!=null)\r\n document.getElementById('error_wp').innerHTML=msg;\r\n}","import React, { useContext, useState, useEffect } from 'react';\r\nimport { Route, Switch, Redirect } from \"react-router-dom\";\r\nimport { localeList } from './Components/Utility/ConfigData.json';\r\n\r\nimport { locale } from './Components/Utility/Global';\r\n\r\nimport Header from './Components/Partials/Header';\r\nimport Footer from './Components/Partials/Footer';\r\n\r\nimport Closed from './Components/Screens/Closed';\r\nimport Comingsoon from './Components/Screens/Comingsoon';\r\nimport Splitter from './Components/Screens/Splitter';\r\nimport Home from './Components/Screens/Home';\r\nimport Landing from './Components/Screens/Landing';\r\nimport Register from './Components/Screens/Register';\r\nimport Forgotpassword from './Components/Screens/Forgotpassword';\r\nimport Recoverpassword from './Components/Screens/Recoverpassword';\r\nimport Batchcode from './Components/Screens/Batchcode';\r\nimport Movie from './Components/Screens/Movie';\r\nimport Wordsearch from './Components/Screens/Wordsearch';\r\nimport Puzzle from './Components/Screens/Puzzle';\r\nimport Thankyou from './Components/Screens/Thankyou';\r\nimport Limit from './Components/Screens/Limit';\r\nimport Error from './Components/Screens/Error';\r\nimport FAQ from './Components/Screens/FAQ';\r\nimport Terms from './Components/Screens/Terms';\r\nimport About from './Components/Screens/About';\r\nimport Privacypolicy from './Components/Screens/Privacypolicy';\r\nimport JsonContext from './Components/Utility/JsonProvider';\r\nimport './Components/Utility/vendor/criticalcom';\r\nimport PromotionState from './Components/Utility/PromotionState';\r\n\r\nimport './Styles/nbasnacks2023.scss';\r\nvar $ = require('jquery');\r\nwindow.$ = $;\r\nwindow.jQuery = $;\r\nfunction App() {\r\n const { translations, settings } = useContext(JsonContext);\r\n const [loaded, setLoaded] = useState(false);\r\n const loadApp = (translations !== \"\" && translations !== undefined && settings !== \"\" && settings !== undefined) ? true : false;\r\n\r\n if (loadApp && !loaded) {\r\n setLoaded(true);\r\n const { initPage } = PromotionState(settings, translations);\r\n initPage();\r\n sessionStorage.removeItem('btnObj');\r\n sessionStorage.removeItem('shippingBtnObj');\r\n sessionStorage.removeItem('receiptObj');\r\n if ((window.location.href.toLowerCase()).indexOf('thankyou') > -1) {\r\n sessionStorage.removeItem('createPageState');\r\n }\r\n }\r\n const faqTnc = (window.location.href.toLowerCase()).indexOf('faq') > -1 || (window.location.href.toLowerCase()).indexOf('terms') > -1 || (window.location.href.toLowerCase()).indexOf('privacynotice') > -1 || (window.location.href.toLowerCase()).indexOf('aboutnbajrleague') > -1;\r\n let lang = localeList.find(x => x.locale === locale).language;\r\n // \r\n let windowOriginURL = window.location.origin,\r\n env, src;\r\n if(windowOriginURL.indexOf('dev-') >= 0){\r\n env = 'Dev';\r\n src= 'https://assets.adobedtm.com/0e8da62b9d32/41f48040261d/launch-cb7f296524be-development.min.js'\r\n }else if(windowOriginURL.indexOf('staging-') >= 0){\r\n env = 'Staging';\r\n src= 'https://assets.adobedtm.com/0e8da62b9d32/41f48040261d/launch-cb7f296524be-development.min.js'\r\n }else if(windowOriginURL.indexOf('stage-') >= 0){\r\n env = 'stage';\r\n src= 'https://assets.adobedtm.com/0e8da62b9d32/41f48040261d/launch-52cbfe038952-staging.min.js'\r\n }else{\r\n \r\n env = 'Prod'\r\n src= 'https://assets.adobedtm.com/0e8da62b9d32/41f48040261d/launch-32eb2f92e708.min.js'\r\n }\r\n useEffect(()=>{\r\n // const base = () => {\r\n var s = document.createElement(\"script\");\r\n s.type = \"text/javascript\";\r\n s.src = \"/Content/AAdatalayer/base.min.js\";\r\n $('body').append(s);\r\n var sa = document.createElement(\"script\");\r\n sa.type = \"text/javascript\";\r\n sa.src = \"/Content/AAdatalayer/datalayer.min.js\";\r\n $('body').append(sa);\r\n // }\r\n // base();\r\n window.digitalData = window.digitalData || [];\r\n window.digitalData.page.promotionname= \"Kelloggs NBA Snacks 2023\";\r\n window.digitalData.page.propertyID = \"Promotion: Kelloggs NBA Snacks 2023\"\r\n window.digitalData.page.siteRegion= \"KEU\";\r\n window.digitalData.page.siteType= \"Promotion site\";\r\n window.digitalData.page.siteCountry = locale;\r\n window.digitalData.page.environment = env;\r\n window.digitalData.user.language = locale;\r\n window.digitalData.page.siteLanguage = lang;\r\n \r\n // Adobe launch script\r\n var script = document.createElement('script');\r\n script.text = \"var KSTL = KSTL || {};KSTL.LaunchConfig = {environment: 'local',propertyID: 'test',siteRegion: 'kla'};\"\r\n document.head.prepend(script);\r\n\r\n var AdobeLaunchScript = document.createElement(\"script\");\r\n AdobeLaunchScript.type = \"text/javascript\";\r\n AdobeLaunchScript.src = src;\r\n document.head.prepend(AdobeLaunchScript);\r\n \r\n },[])\r\n// \r\n return (\r\n <>\r\n {loadApp && loaded &&\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 \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 \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 \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 \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 \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
\r\n \r\n
\r\n
\r\n \r\n
A basketball hoop and ball
\r\n
\r\n
\r\n
\r\n
\r\n
Stress ball
\r\n\r\n \r\n
\r\n
\r\n
\r\n
*/}\r\n
\r\n
\r\n {\r\n locale != 'be' && locale != 'ch' && !faqTnc &&