{"version":3,"sources":["webpack:///./src/frontend/components/ads/dfp-ad-init-data-decorator.js","webpack:///./src/frontend/components/ads/boot-takeover-ads.js","webpack:///./src/frontend/components/ads/boot-react-ads.js","webpack:///./src/EbaySweden.TouchWeb/static/script/init-module.js","webpack:///./src/EbaySweden.TouchWeb/static/script/packages/react/messaging.js","webpack:///./src/frontend/components/alerts/gdpr/gdpr-modal.jsx","webpack:///./src/frontend/components/alerts/gdpr/gdpr-settings-modal.jsx","webpack:///./src/frontend/components/alerts/gdpr/gpdr-container.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/containers/navigation/main-navigation.js","webpack:///./src/EbaySweden.TouchWeb/static/script/containers/price-slider.jsx","webpack:///./src/frontend/components/site-footer/footer-localization-link.jsx","webpack:///./src/frontend/components/site-footer/footer-links.jsx","webpack:///./src/frontend/components/site-footer/site-footer.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/jquery-events.js","webpack:///./src/frontend/components/alerts/gdpr/gdpr-mount.js"],"names":["DfpAdInitDataDecorator","props","state","pageTargeting","initData","gptData","customTargetingParameters","adUnitPath","prevProps","this","setState","React","Component","initLeeadsDesktop","takeoverElement","children","length","innerHTML","window","ADTECH","config","page","protocol","server","network","siteid","params","loc","placements","sizeid","alias","target","enqueueAd","executeQueue","isTakeOverAllowedOnPage","getInitData","pageName","loadScript","src","resolve","reject","script","document","createElement","async","onload","onerror","body","appendChild","initTakeovers","a","GdprSettings","isMarketingEnabled","getElementById","clientWidth","Math","max","documentElement","innerWidth","isBreakpointOrHigher","BREAKPOINTS","MD","loadReactElements","getElementsByTagName","element","hasAttribute","position","getAttribute","adFormats","deviceName","lazyLoad","adOnlyOnPages","stickyEnabled","autoscale","stickyTop","stickyBottom","adContainerClass","refresh","featureSwitches","split","isNaN","isLoggedIn","sizeMapping","createGptSizeMapping","mapDeviceNameToViewport","minViewportWidth","maxViewportWidth","ReactDOM","render","slotTargeting","pos","autoscaleOffsetWidth","offsetWidth","undefined","messages","Messaging","subscribe","unmountComponentAtNode","teardown","e","logger","initReactElement","setAttribute","reactAdsLoader","_","$","GdprMount","MultiCurrencyBoot","boot","MainNavigation","publish","namespace","random","events","callback","event","push","on","payload","trigger","me","off","GdprModal","t","useTranslator","openGdprSettings","acceptAndHide","className","overlay","classNameBody","closeModalCallback","data-gdpr-modal","href","onClick","data-gdpr-approve-button","GdprSettingsModal","label","saveHandler","gdprSettings","performance","functional","marketing","l","join","name","checked","dismissOnOverlayClick","mobileFullscreen","onDismiss","save","style","width","onSubmit","type","disabled","index","value","key","htmlFor","id","tabIndex","autoFocus","onChange","handleChange","propTypes","withTranslator","connect","visibleModal","ui","gdpr","modalOpen","visibleSettings","settingsOpen","dispatch","closeModal","uiActions","closeGdprModal","openSettings","closeSettings","closeGdprSettings","eventLabel","set","CookieUtil","createCookie","GDPR_CONSENT_ALERT_DISMISSED","moment","add","toDate","trackEvent","then","location","reload","error","Analytics","category","action","hitCallback","hasCookie","GDPR_CONSENT_COOKIE","isPerformanceEnabled","isFunctionalEnabled","preventDefault","headerElement","querySelector","footerElement","cartItemCount","cartSum","cartItems","getPriceRangeParams","searchParams","JSON","parse","fromPrice","toPrice","elementsToAttachTo","options","priceRangeParams","ready","sliderElementsAsArray","sliderElement","rangeStart","rangeEnd","handleStart","handleEnd","searchResults","dataset","navigateEvent","FooterLocalizationLink","showCurrencySelection","showRegionSelection","useState","isLocalizationSettingsVisible","setLocalizationSettingsVisible","title","showMenu","idPrefix","onBlur","shouldBeVisible","selectShowCurrencySelection","selectShowRegionSelection","FooterLinks","links","callerId","linksToRender","useCurrentLanguage","language","link","onlySwedish","text","rest","BuyingLinks","toLocalizedUrl","useUrlLocalizer","SellingLinks","ContactAndHelpLinks","rel","AboutUsLinks","CouponCodeLinks","isCouponationNavLinkEnabled","isSwedishOrUndefined","environment","aria-label","data-ga-category","data-ga-action","data-ga-label","height","appName","downTo","Date","getFullYear","jqueryTrigger","data","elem","onlyHandlers","prefixedEventName","jsEvent","CustomEvent","detail","dispatchEvent","isNativeAppContext","isHybridAppContext","domNode"],"mappings":"k6BA+BeA,E,gCA3BX,WAAYC,GAAO,0BACf,cAAMA,IACDC,MAAQ,CACTC,cAAeF,EAAMG,SAASC,QAAQC,0BACtCC,WAAYN,EAAMG,SAASC,QAAQE,YAJxB,E,uDAQAC,GAEXA,EAAUJ,UACVI,EAAUJ,SAASC,SACnBG,EAAUJ,SAASC,QAAQC,2BAG3BG,KAAKC,SAAS,CACVP,cACIK,EAAUJ,SAASC,QAAQC,0BAC/BC,WAAYC,EAAUJ,SAASC,QAAQE,e,+BAM/C,OAAO,kBAAC,IAAD,OAAoBE,KAAKP,MAAWO,KAAKR,Y,GAzBnBU,IAAMC,W,2JCyBrCC,EAAoB,SAAAC,GAIiB,GAAnCA,EAAgBC,SAASC,SACzBF,EAAgBG,UACZ,sTAERC,OAAOC,OAAOC,OAAOC,KAAO,CACxBC,SAAU,QACVC,OAAQ,qBACRC,QAAS,SACTC,OAAQ,SACRC,OAAQ,CAAEC,IAAK,QAEnBT,OAAOC,OAAOC,OAAOQ,WAAW,SAAW,CACvCC,OAAQ,KACRH,OAAQ,CAAEI,MAAO,GAAIC,OAAQ,WAEjCb,OAAOC,OAAOa,UAAU,SACxBd,OAAOC,OAAOc,gBAGZC,EAA0B,WAE5B,OADeC,cACEC,UACb,IAAK,YACL,IAAK,WACL,IAAK,gBACD,OAAO,EACX,QACI,OAAO,IAIbC,EAAa,SAAAC,GACf,OAAO,IAAI,KAAQ,SAACC,EAASC,GACzB,IAAIC,EAASC,SAASC,cAAc,UACpCF,EAAOH,IAAMA,EACbG,EAAOG,OAAQ,EACfH,EAAOI,OAAS,WACZN,KAEJE,EAAOK,QAAU,WACbN,EAAO,iCAEXE,SAASK,KAAKC,YAAYP,OAmCnBQ,EA/BI,+BAAG,8BAAAC,EAAA,yDACbC,IAAaC,qBADA,0EAKRf,EAAW,8CALH,iGAzDc,IAAlBnB,OAAOC,OAyDH,sDAebe,IAfa,mDAmBdpB,EAAkB4B,SAASW,eAAe,gBAC1CC,EAAcC,KAAKC,IACnBd,SAASe,gBAAgBH,YACzBpC,OAAOwC,YAAc,GAIrBC,YAAqBC,IAAYC,GAAIP,IACrCzC,EAAkBC,GA3BJ,yDAAH,qD,gBC6CbgD,EAAoB,SAAA1D,GAAY,MAElC,UAAWsC,SAASqB,qBAAqB,kBAAzC,QACI,SAAAC,GACSA,EAAQC,aAAa,wBA5Fb,SAACD,EAAS5D,GAE/B,IAiB4B,EAjBtB8D,EAAWF,EAAQG,aAAa,sBAChCC,EAAYJ,EAAQG,aAAa,oBACjCE,EAAaL,EAAQG,aAAa,oBAClCG,EAAWN,EAAQC,aAAa,uBAChCM,EAAgBP,EAAQG,aAAa,2BACrCK,EAAgBR,EAAQC,aAAa,oBACrCQ,EAAYT,EAAQC,aAAa,uBACnCS,EAAYV,EAAQG,aAAa,wBACjCQ,EAAeX,EAAQG,aAAa,2BACpCS,EAAmBZ,EAAQG,aAAa,gCAEtCU,EACFb,EAAQC,aAAa,sBACrB,gBAAiB7D,EAAS0E,kBACkB,IAA5C1E,EAAS0E,gBAAgB,eAG7B,GAAsB,OAAlBP,IAKuE,IAFnE,MAAAA,EACKQ,MAAM,MADX,OAEa3E,EAASC,QAAQC,0BAA0Be,MAExD,OAKU,OAAdqD,GAAuBM,MAAMN,KAC7BA,EAAY,IAASA,GAChBtE,EAAS6E,aACVP,GAAa,KAGA,OAAjBC,GAA0BK,MAAML,KAChCA,EAAe,IAASA,IAI5B,IAAMO,EAAcC,YAAqBf,EAAWC,GA1CR,EA2CCe,YACzCf,GA5CwC,WA2CrCgB,EA3CqC,KA2CnBC,EA3CmB,KA+C5C,GAAItB,GAAWkB,EACX,IACIK,IAASC,OACL,kBAAC,2BAAD,KACI,kBAAC,EAAD,CACIH,iBAAkBA,EAClBC,iBAAkBA,EAClBJ,YAAaA,EACbO,cAAe,CAAEC,IAAKxB,GACtB9D,SAAUA,EACVkE,SAAUA,EACVE,cAAeA,EACfE,UAAWA,EACXC,aAAcA,EACdE,QAASA,EACTJ,UAAWA,EACXkB,sBACkB,IAAdlB,EAAqBT,EAAQ4B,iBAAcC,EAE/CjB,iBAAkBA,KAG1BZ,GAIJ,IAAM8B,EAAW,IAAIC,IACrBD,EAASE,UAAU,CAAC,oCAAoC,WACpDT,IAASU,uBAAuBjC,GAChC8B,EAASI,cAEf,MAAOC,GACLC,YAAOD,IAcHE,CAAiBrC,EAAS5D,GAC1B4D,EAAQsC,aAAa,qBAAqB,QAmC3CC,IAzBQ,SAAAnG,GAEf,wBAAyBA,EAAS0E,kBACkB,IAApD1E,EAAS0E,gBAAgB,wBAEzB7B,IAEJa,EAAkB1D,GAGlB,IAAM0F,EAAW,IAAIC,IACrBD,EAASE,UACL,CACI,oCACA,sCAEJ,WACIlC,EAAkB1D,MAG1B0F,EAASE,UAAU,CAAC,oCAAoC,WACpDF,EAASI,gB,gSCvJjB,yCAAe,WAAM9F,GAAN,SAAA8C,EAAA,6DACXhC,OAAOsF,EAAItF,OAAOsF,GAAKA,IACvBtF,EAAWA,GAAYuF,IACvBC,YAAUtG,GAHC,SAILuG,IAAkBC,KAAKxG,GAJlB,OAKXyG,cACAN,YAAenG,GANJ,2CAAf,uD,6VCFqB2F,E,WACjB,aAAc,sBACVtF,KAAKuF,UAAY,MAAAvF,KAAKuF,WAAL,OAAoBvF,MACrCA,KAAKqG,QAAU,MAAArG,KAAKqG,SAAL,OAAkBrG,MACjCA,KAAKsG,UAAL,uBAA2B,MAA3B,aAAyCxD,KAAKyD,UAC9CvG,KAAKwG,OAAS,G,8CASRA,EAAQC,GAAU,WACnBD,GAKA,IAAcA,KACfA,EAAS,CAACA,IAEd,IAAAA,GAAM,KAANA,GAAW,SAAAE,GAAS,MAChB,EAAKF,OAAOG,KAAKD,GACjBV,IAAE/D,UAAU2E,GAAZ,gBAAkBF,EAAlB,aAA2B,EAAKJ,WAAaG,OAT7Cd,YAAO,2CAA2C,K,8BAmBlDe,EAAOG,GAEXb,IAAE/D,UAAU6E,QAAQJ,EAAOG,K,iCAGpB,MACHE,EAAK/G,KACT,MAAAA,KAAKwG,QAAL,QAAgB,SAAAE,GAAS,MACrBV,IAAE/D,UAAU+E,IAAZ,gBAAmBN,EAAnB,aAA4BK,EAAGT,eAEnCtG,KAAKwG,OAAS,O,6RCGPS,G,cA/CG,SAAAzH,GAAS,IACf0H,EAAMC,cAAND,EACAE,EAAoC5H,EAApC4H,iBAAkBC,EAAkB7H,EAAlB6H,cAC1B,OACI,kBAAC,cAAD,CACIC,UAAU,aACVC,SAAS,EACTC,cAAc,uEACdC,mBAAoB,cACpB,kBAAC,WAAD,KACI,yBACIC,kBAAgB,GAChBJ,UAAU,qCACV,wBAAIA,UAAU,oBACV,kBAAC,IAAD,CAAUA,UAAU,kBAExB,wBAAIA,UAAU,eACV,kBAAC,cAAD,OAEJ,wBAAIA,UAAU,eACTJ,EAAE,6BAEP,wBAAII,UAAU,SACd,2BACKJ,EAAE,0BAA2B,IAC9B,uBACIS,KAAK,IACLL,UAAU,eACVM,QAASR,GACT,2BAAIF,EAAE,kCAIlB,4BACIW,2BAAyB,GACzBP,UAAU,kBACVM,QAAS,kBACLP,GAAc,GAAM,GAAM,EAAM,iBAEpC,kBAAC,IAAD,CAAWC,UAAU,cAAe,IACnCJ,EAAE,mC,8zCCzCjBY,G,iCACF,WAAYtI,GAAO,yBACf,cAAMA,GADS,oBAOZ,WAAM,IAMLuI,EAGG,EARCC,EAAgB,EAAKxI,MAArBwI,YADC,EAIL,EAAKvI,MADLwI,aAAgBC,EAHX,EAGWA,YAAaC,EAHxB,EAGwBA,WAAYC,EAHpC,EAGoCA,UAIzCF,GAAeC,GAAcC,EAC7BL,EAAQ,WAERA,EACI,QACA,OACIG,GAAe,cACfC,GAAc,aACdC,GAAa,cAHjB,QAKY,SAAAC,GAAC,OAAIA,KACZC,KAAK,MAGlBN,EAAYE,EAAaC,EAAYC,EAAWL,MA5BjC,4BA+BJ,SAAArB,GAAS,MAGhBA,EADApF,OAAUiH,EAFM,EAENA,KAAMC,EAFA,EAEAA,QAEpB,EAAKvI,UAAS,SAAAR,GAAK,MAAK,CACpBwI,aAAc,GAAF,MACLxI,EAAMwI,cADD,WAEPM,EAAOC,WApChB,EAAK/I,MAAQ,CACTwI,aAAczI,EAAMyI,cAHT,E,6CA2CV,aACGf,EAAMlH,KAAKR,MAAX0H,EACAe,EAAiBjI,KAAKP,MAAtBwI,aACR,OACI,kBAAC,cAAD,CACIX,UAAU,cACVmB,uBAAuB,EACvBC,kBAAkB,EAClBC,UAAW3I,KAAK4I,KAChBC,MAAO,CAAEC,MAAO,UAChB,yBAAKxB,UAAU,2BACX,wBAAIA,UAAU,mBACTJ,EAAE,4BAGX,yBAAKI,UAAU,8BACX,2BACI,kBAAC,IAAD,CAAUA,UAAU,2BAA4B,IAC/CJ,EAAE,yBAA0B,IAC7B,uBAAGS,KAAK,qDACHT,EAAE,2BAIf,0BAAMI,UAAU,GAAGyB,SAAU/I,KAAK4I,MAC9B,yBAAKtB,UAAU,2BACX,yBAAKA,UAAU,yCACX,2BAAOA,UAAU,oDACb,wBAAIA,UAAU,QACTJ,EAAE,yCAGX,2BACI8B,KAAK,WACL1B,UAAU,8CACVkB,SAAS,EACTS,UAAU,KAGlB,uBAAG3B,UAAU,QACRJ,EAAE,2CAGV,UAAee,IAAf,QACG,WAAgBiB,GAAhB,eAAEF,EAAF,KAAQG,EAAR,YACI,yBAAKC,IAAKJ,EAAM1B,UAAU,2BACtB,yBAAKA,UAAU,yCACX,2BACIA,UAAU,mDACV+B,QAAO,yBAAoBL,IAC3B,wBAAI1B,UAAU,QACTJ,EAAE,6BAAD,OAC+B8B,MAIzC,2BACIA,KAAK,WACL1B,UAAU,8CACVgC,GAAE,yBAAoBN,GACtBT,KAAMS,EACNO,SAAUL,EACVM,UAAqB,IAAVN,EACXV,QAASW,EACTM,SAAU,EAAKC,gBAGvB,uBAAGpC,UAAU,QACRJ,EAAE,+BAAD,OAAgC8B,UAMtD,yBAAK1B,UAAU,OACX,4BACIA,UAAU,wBACViC,SAAUtB,EAAa1H,OACvBqH,QAAS5H,KAAK4I,MACb1B,EAAE,2B,GA3HKhH,IAAMC,WAmItC2H,GAAkB6B,UAAlB,GAIeC,mBAAe9B,ICnCf+B,iBAXS,SAAApK,GAAK,MAAK,CAC9BqK,aAAcrK,EAAMsK,GAAGC,KAAKC,UAC5BC,gBAAiBzK,EAAMsK,GAAGC,KAAKG,iBAGR,SAAAC,GAAQ,MAAK,CACpCC,WAAY,kBAAMD,EAASE,IAAUC,mBACrCC,aAAc,kBAAMJ,EAASE,IAAUlD,qBACvCqD,cAAe,kBAAML,EAASE,IAAUI,yBAG7Bb,EA5FO,SAAArK,GAAS,IAEvBsK,EAKAtK,EALAsK,aACAI,EAIA1K,EAJA0K,gBACAG,EAGA7K,EAHA6K,WACAG,EAEAhL,EAFAgL,aACAC,EACAjL,EADAiL,cAQEpD,EAAgB,WAKjB,IAJDa,IAIC,yDAHDC,IAGC,yDAFDC,IAEC,yDADDuC,EACC,uCACDjI,IAAakI,IAAI1C,EAAaC,EAAYC,GAC1CyC,UAAWC,aACPC,IACA,EACAC,MACKC,IAAI,EAAG,SACPC,UAETT,IACAJ,IAEInC,GACAiD,EAAWR,GACNS,MAAK,kBAAMC,SAASC,QAAO,MADhC,OAEW,SAAAC,GAAK,OAAI5F,YAAO4F,OAI7BJ,EAAa,WAAoB,IAAnBpD,EAAmB,uDAAX,OACxB,OAAO,IAAI,KAAQ,SAAAjG,GACf0J,IAAUL,WAAW,CACjBM,SAAU,WACVC,OAAQ,UACR3D,QACA4D,YAAa7J,QAOnBmG,EAFgB4C,UAAWe,UAAUC,KAGrC,CACI3D,YAAaxF,IAAaoJ,uBAC1B3D,WAAYzF,IAAaqJ,sBACzB3D,UAAW1F,IAAaC,sBAE5B,CACIuF,aAAa,EACbC,YAAY,EACZC,WAAW,GAGrB,OACI,kBAAC,WAAD,KACK0B,GACG,kBAAC,EAAD,CACI1C,iBA1DS,SAAAV,GACjBA,GAAOA,EAAMsF,iBACjBxB,KAyDYnD,cAAeA,IAGtB6C,GACG,kBAAC,GAAD,CACIjC,aAAcA,EACdD,YAAaX,S,2OCjF3B4E,EAAgBhK,SAASiK,cAAc,2BACvCC,EAAgBlK,SAASiK,cAAc,sBAE9B,aACX,GAAID,EAAe,CACf,IAAMG,EAAgBH,EAAcvI,aAChC,wBAEE2I,EAAUJ,EAAcvI,aAAa,iBAE3C,IACIqB,iBACI,kBAAC,IAAD,KACI,kBAAC,aAAD,CAAYuH,UAAWF,EAAeC,QAASA,KAEnDJ,GAEN,MAAOvG,GACLC,YAAOD,IAIf,GAAIyG,EACA,IACIpH,iBACI,kBAAC,IAAD,KACI,kBAAC,IAAD,OAEJoH,GAEN,MAAOzG,GACLC,YAAOD,M,2NChCb6G,EAAsB,SAAAC,GACxB,GAAIA,EACA,IACI,IAAMvL,EAASwL,KAAKC,MAAMF,GAC1B,MAAO,CACHG,UAAW1L,EAAO0L,WAAa,EAC/BC,QAAS3L,EAAO2L,SAAW,KAEjC,MAAOlH,GACLC,YAAOD,GAGf,OAAO,MAGI,aAACmH,GAAqC,IAAjBC,EAAiB,uDAAP,GACpCC,EAAmBR,EAAoB5M,IAAS6M,cACjDK,GAAuBE,GAG5B/G,EAAE/D,UAAU+K,OAAM,WACd,IACI,IAAMC,EAAwB,IAAWJ,GACnCxH,EAAW,IAAIC,IAErB,IAAA2H,GAAqB,KAArBA,GAA0B,SAAAC,GACtBpI,IAASC,OACL,kBAAC,aAAD,CACIoI,WAAY,EACZC,SAAU,IACVC,YAAaN,EAAgB,UAC7BO,UAAWP,EAAgB,QAC3BQ,cAAeL,EAAcM,QAAQV,QACrCW,cAAeX,EAAQW,eAAiB,gBAE5CP,GAEJ7H,EAASE,UACL,CACI,kCACA,sCAEJ,WACIT,IAASU,uBAAuB0H,GAChC7H,EAASI,iBAIvB,MAAOC,GACLC,YAAOD,U,oTCnCbgI,EAAyB,SAAC,GAG1B,IAFFC,EAEE,EAFFA,sBACAC,EACE,EADFA,oBAEQ1G,EAAMC,cAAND,EADN,EAKE2G,oBAAS,GALX,WAGEC,EAHF,KAIEC,EAJF,KAcIC,EACA9G,EADQyG,EACN,0CACA,gCAER,OACI,kBAAC,WAAD,KACI,kBAAC,IAAD,CACIM,SAAUH,EACVxG,UAAU,kCACV,kBAAC,IAAD,CACI4G,SAAS,cACTC,OAAQ,kBAAMJ,GAA+B,IAC7CJ,sBAAuBA,EACvBC,oBAAqBA,IAAuB,KAGpD,uBAAGtG,UAAU,OAAOK,KAAK,IAAIC,QAvBrB,SAAAlC,GACZA,EAAEsG,iBACF,IArBEjE,EAqBIqG,GAAmBN,EArBvB/F,EAsBaqG,EAtBK,OAAS,QAEjC5C,IAAUL,WAAW,CACjBM,SAAU,SACVC,OAAQ,oBACR3D,MAAOA,IAkBPgG,EAA+BK,KAoBtBJ,EACD,kBAAC,IAAD,CAAc1G,UAAU,wCAMxCoG,EAAuB/D,UAAvB,GAIA,IAKeE,eALS,SAAApK,GAAK,MAAK,CAC9BkO,sBAAuBU,YAA4B5O,GACnDmO,oBAAqBU,YAA0B7O,MAGpCoK,CAAyB6D,G,oPC7DlCa,EAAc,SAAC,GAAwB,IAAtBC,EAAsB,EAAtBA,MAAOC,EAAe,EAAfA,SAGpBC,EACW,OAHIC,cAAbC,SAGgB,IAAAJ,GAAK,KAALA,GAAa,SAAAK,GAAI,OAAKA,EAAKC,eAAeN,EAElE,OACI,oCACK,IAAAE,GAAa,KAAbA,GACG,WAA4CxF,GAAU,MAAnD6F,EAAmD,EAAnDA,KAAMzH,EAA6C,EAA7CA,UAA2B0H,GAAkB,EAAlCF,YAAkC,2CAClD,OACI,wBACI1F,IAAG,gBAAKqF,EAAL,aAAiBvF,GACpB5B,UAAS,oBACSlC,IAAdkC,EAA0BA,EAAY,OAE1C,sBAAO0H,EAAOD,SAS7BE,EAAc,WAAM,IACrB/H,EAAMC,cAAND,EACAgI,EAAmBC,cAAnBD,eAEFV,EAAQ,CACV,CACI7G,KAAMuH,EAAe,eACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,2BACjBH,KAAM7H,EAAE,oBACR4H,aAAa,GAEjB,CACInH,KAAMuH,EAAe,eACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,aACjBH,KAAM7H,EAAE,qBACR4H,aAAa,GAEjB,CACInH,KAAMuH,EAAe,WACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,sBACjBH,KAAM7H,EAAE,wBACR4H,aAAa,GAEjB,CACInH,KAAMuH,EAAe,gBACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,cACjBH,KAAM7H,EAAE,sBACR4H,aAAa,IAIrB,OACI,yBAAKxH,UAAU,kBACX,wBAAIA,UAAU,eAAeJ,EAAE,sBAC/B,wBAAII,UAAU,iBACV,kBAAC,EAAD,CAAamH,SAAS,cAAcD,MAAOA,OAM9CY,EAAe,WAAM,IACtBlI,EAAMC,cAAND,EAGFsH,EAAQ,CACV,CACI7G,MAAMuH,EAJaC,cAAnBD,gBAIqB,gBACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,gCACjBH,KAAM7H,EAAE,2BACR4H,aAAa,GAEjB,CACInH,KAAM,oCACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,mBACjBoH,KAAM7H,EAAE,6BACR4H,aAAa,GAEjB,CACInH,KAAM,yCACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,QACjBoH,KAAM7H,EAAE,gBACR4H,aAAa,IAIrB,OACI,yBAAKxH,UAAU,kBACX,wBAAIA,UAAU,eAAeJ,EAAE,uBAC/B,wBAAII,UAAU,iBACV,kBAAC,EAAD,CAAamH,SAAS,eAAeD,MAAOA,OAM/Ca,EAAsB,SAAC,GAAmC,IAAjC1N,EAAiC,EAAjCA,SAAUyF,EAAuB,EAAvBA,iBACpCF,EAAMC,cAAND,EAGFsH,EAAQ,CACV,CACI7G,MAAMuH,EAJaC,cAAnBD,gBAIqB,4BACrB,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,iBACjBH,KAAM7H,EAAE,cACR4H,aAAa,GAEjB,CACInH,KAAM,8DACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,oBACjBoH,KAAM7H,EAAE,uBACR4H,aAAa,GAEjB,CACInH,KAAM,0CACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,WACjBoH,KAAM7H,EAAE,mBACR4H,aAAa,GAEjB,CACInH,KAAM,IACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,qBACjBoH,KAAM7H,EAAE,wBACRU,QAAS,SAAAlB,GACLA,EAAMsF,iBACN5E,KAEJ0H,aAAa,GAEjB,CACInH,KACI,mEACJ,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,eACjBoH,KAAM7H,EAAE,oBACR4H,aAAa,GAEjB,CACInH,KACiB,aAAbhG,EACM,2BACA,4BACVoN,KAAM7H,EAAE,0BACRoI,IAAK,WACLhI,UAAW,SACXwH,aAAa,IAIrB,OACI,yBAAKxH,UAAU,+BACX,wBAAIA,UAAU,eAAeJ,EAAE,8BAC/B,wBAAII,UAAU,iBACV,kBAAC,EAAD,CAAamH,SAAS,sBAAsBD,MAAOA,OAMtDe,EAAe,WAAM,IACtBrI,EAAMC,cAAND,EAEFsH,EAAQ,CACV,CACI7G,KAAM,eACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,SACjBoH,KAAM7H,EAAE,uBACR4H,aAAa,GAEjB,CACInH,KAAM,uCACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,QACjBoH,KAAM7H,EAAE,gBACRoI,IAAK,WACLR,aAAa,GAEjB,CACInH,KAAM,mBACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,wBACjBoH,KAAM7H,EAAE,wBACR4H,aAAa,GAEjB,CACInH,KAAM,sCACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,cACjBoH,KAAM7H,EAAE,kBACR4H,aAAa,GAEjB,CACInH,KAAM,2BACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,OACjBoH,KAAM7H,EAAE,wBACR4H,aAAa,IAIrB,OACI,yBAAKxH,UAAU,+BACX,wBAAIA,UAAU,eAAeJ,EAAE,0BAC/B,wBAAII,UAAU,iBACV,kBAAC,EAAD,CAAamH,SAAS,eAAeD,MAAOA,OAM/CgB,EAAkB,SAAC,GAAoC,IAAlCC,EAAkC,EAAlCA,4BACtBvI,EAAMC,cAAND,EACA0H,EAAaD,cAAbC,SA4CR,OAAOc,YAAqBd,GACxB,yBAAKtH,UAAU,+BACVmI,GACG,oCACI,wBAAInI,UAAU,eAAeJ,EAAE,uBAC/B,wBAAII,UAAU,iBACV,kBAAC,EAAD,CAAamH,SAAS,kBAAkBD,MAjD9C,CACV,CACI7G,KAAM,oBACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,OACjBoH,KAAM,OACND,aAAa,GAEjB,CACInH,KAAM,qBACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,QACjBoH,KAAM,QACND,aAAa,GAEjB,CACInH,KAAM,0BACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,aACjBoH,KAAM,aACND,aAAa,GAEjB,CACInH,KAAM,qBACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,QACjBoH,KAAM,QACND,aAAa,GAEjB,CACInH,KAAM,qBACN,mBAAoB,SACpB,iBAAkB,aAClB,gBAAiB,QACjBoH,KAAM,QACND,aAAa,SAejB,M,cCtGOjF,iBAVS,SAAApK,GAAK,MAAK,CAC9BkC,SAAUlC,EAAMmB,KAAK2H,KACrBkH,4BACIhQ,EAAMkQ,YAAYtL,gBAAgB,4BAGf,SAAA+F,GAAQ,MAAK,CACpChD,iBAAkB,kBAAMgD,EAASE,IAAUlD,wBAGhCyC,EApLI,SAAArK,GAAS,IAChBmC,EAA4DnC,EAA5DmC,SAAU8N,EAAkDjQ,EAAlDiQ,4BAA6BrI,EAAqB5H,EAArB4H,iBACvCF,EAAMC,cAAND,EACR,OACI,yBAAKI,UAAU,qEACX,yBAAKA,UAAU,qDACf,yBAAKA,UAAU,uBAEX,kBAAC,EAAD,MAGA,kBAAC,EAAD,OAEJ,yBAAKA,UAAU,uBAEX,kBAAC,EAAD,CACI3F,SAAUA,EACVyF,iBAAkBA,IAItB,kBAAC,EAAD,OAEJ,yBAAKE,UAAU,uBAEX,kBAAC,EAAD,CACImI,4BAA6BA,KAGrC,yBAAKnI,UAAU,mCAEf,yBAAKA,UAAU,0FACX,uBACIsI,aAAW,mBACXjI,KAAK,mCACLL,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,4BACdT,IAAI,YACJ,kBAAC,IAAD,CAAchI,UAAU,4BAE5B,uBACIsI,aAAW,kBACXjI,KAAK,8BACLL,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,2BACdT,IAAI,YACJ,kBAAC,IAAD,CAAahI,UAAU,4BAE3B,uBACIsI,aAAW,mBACXjI,KAAK,oCACLL,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,6BACdT,IAAI,YACJ,kBAAC,IAAD,CAAehI,UAAU,4BAE7B,uBACIsI,aAAW,oBACXjI,KAAK,qCACLL,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,6BACdT,IAAI,YACJ,kBAAC,IAAD,CAAehI,UAAU,4BAE7B,uBACIsI,aAAW,mBACXjI,KAAK,4CACLL,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,4BACdT,IAAI,YACJ,kBAAC,IAAD,CAAchI,UAAU,6BAGhC,0BAAMA,UAAU,wCAEhB,yBAAKA,UAAU,0FACX,uBACIK,KAAK,kFACL2H,IAAI,WACJhI,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,aACd,kBAAC,IAAD,CACIC,OAAO,KACPhC,MAAO9G,EAAE,8BAA+B,CACpC+I,QAAS,cAEb3I,UAAU,eAGlB,uBACIK,KAAK,kEACL2H,IAAI,WACJhI,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,aACd,kBAAC,IAAD,CACIC,OAAO,KACPhC,MAAO9G,EAAE,8BAA+B,CACpC+I,QAAS,gBAEb3I,UAAU,gBAItB,0BAAMA,UAAU,wCAEhB,yBAAKA,UAAU,6EACX,uBACIsI,aAAW,iBACXjI,KAAK,0BACLrG,OAAO,SACPgG,UAAU,OACVuI,mBAAiB,SACjBC,iBAAe,aACfC,gBAAc,SACdT,IAAI,gCACJ,kBAAC,IAAD,CAAYhI,UAAU,6BAG9B,yBAAKA,UAAU,mCACf,yBAAKA,UAAU,sGACX,kBAAC,IAAD,CAAY4I,OAAQ/M,IAAYC,IAC5B,kBAAC,EAAD,OAEJ,uBACIyM,mBAAiB,SACjBvI,UAAU,oBACVwI,iBAAe,aACfC,gBAAc,gBACdpI,KAAK,mDACJT,EAAE,yBAEP,uBACI2I,mBAAiB,SACjBvI,UAAU,oBACVwI,iBAAe,aACfC,gBAAc,oBACdpI,KAAK,uDACJT,EAAE,2BAEP,uBACI2I,mBAAiB,SACjBvI,UAAU,oBACVwI,iBAAe,aACfC,gBAAc,UACdpI,KAAK,6CACJT,EAAE,oBAIX,uBAAGI,UAAU,qFAAb,WACkB,IAAI6I,MAAOC,cAD7B,2B,0BChMZ,sBAAUpK,GACN,GAAKA,EAAL,CAIA,IAAMqK,EAAgBrK,EAAEU,MAAMI,QAE9Bd,EAAEU,MAAMI,QAAU,SAASJ,EAAO4J,EAAMC,EAAMC,GAC1C,IAEI,IACMC,EADc,UACoB/J,EAClCgK,EAAUJ,EACV,IAAIK,YAAYF,EAAmB,CAAEG,OAAQN,IAC7C,IAAIK,YAAYF,IACKF,GAAc9P,QACtBoQ,cAAcH,GACnC,MAAOnF,GACL,OAIJ8E,EAAc3J,EAAO4J,EAAMC,EAAMC,KAtBzC,CAwBG/P,K,gECxBH,6EAuBewF,IAjBG,SAAAtG,GACd,IAAIA,EAASmR,qBAAsBnR,EAASoR,mBAA5C,CAGA,IAAMC,EAAU/O,SAASiK,cACrB,wCAEA8E,GACAjM,iBACI,kBAAC,IAAD,KACI,kBAAC,IAAD,OAEJiM","file":"script/chunks/chunk.65.34fa1f0397.js","sourcesContent":["import React from 'react';\nimport LocalizedDfpAd from './localized-dfp-ad';\n\nclass DfpAdInitDataDecorator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n pageTargeting: props.initData.gptData.customTargetingParameters,\n adUnitPath: props.initData.gptData.adUnitPath\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.initData &&\n prevProps.initData.gptData &&\n prevProps.initData.gptData.customTargetingParameters\n ) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n pageTargeting:\n prevProps.initData.gptData.customTargetingParameters,\n adUnitPath: prevProps.initData.gptData.adUnitPath\n });\n }\n }\n\n render() {\n return ;\n }\n}\nexport default DfpAdInitDataDecorator;\n","/*\n----------------------------------------------------------------------------------------------------------------------------------\n\n# DESCRIPTION\nThis script contains the boot loader for takeover ads at Tradera. In the current version it has support for following vendors:\n- Leeads\n\nIMPORTANT: if you need to add a new takeover solution then be sure it doesn't collide with the leeads takeover solution. \nThere is a risk you get a take over over a take over if that happens.\n\n----------------------------------------------------------------------------------------------------------------------------------\n*/\n\nimport { getInitData } from 'packages/init-data';\nimport { BREAKPOINTS, isBreakpointOrHigher } from 'tradera-utils/breakpoints';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\n\n/**\n * this will be false if the user has an ad blocker\n */\nconst adTechLoaded = () => {\n return typeof window.ADTECH === 'undefined' ? false : true;\n};\n\n/**\n * init the leeads desktop take over\n * @param {*DOMElement} takeoverElement\n */\nconst initLeeadsDesktop = takeoverElement => {\n // console.info('[init] leeads take over - desktop');\n\n // \n if (takeoverElement.children.length == 0) {\n takeoverElement.innerHTML =\n '
';\n }\n window.ADTECH.config.page = {\n protocol: 'https',\n server: 'adserver.adtech.de',\n network: '1568.1',\n siteid: '894854',\n params: { loc: '100' }\n };\n window.ADTECH.config.placements[6498025] = {\n sizeid: '16',\n params: { alias: '', target: '_blank' }\n };\n window.ADTECH.enqueueAd(6498025);\n window.ADTECH.executeQueue();\n};\n\nconst isTakeOverAllowedOnPage = () => {\n let initData = getInitData();\n switch (initData.pageName) {\n case 'StartPage':\n case 'Category':\n case 'SearchResults':\n return true;\n default:\n return false;\n }\n};\n\nconst loadScript = src => {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.src = src;\n script.async = false;\n script.onload = () => {\n resolve();\n };\n script.onerror = () => {\n reject('failed to load adtech script');\n };\n document.body.appendChild(script);\n });\n};\n\nconst initTakeovers = async () => {\n if (!GdprSettings.isMarketingEnabled()) {\n return;\n }\n try {\n await loadScript('https://aka-cdn.adtech.de/dt/common/DAC.js');\n } catch (err) {\n // failed, maybe adblocker or other, do not do anything more here\n return;\n }\n\n if (!adTechLoaded()) {\n return;\n }\n\n if (!isTakeOverAllowedOnPage()) {\n return;\n }\n\n let takeoverElement = document.getElementById('ads-takeover');\n let clientWidth = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n\n // LEEADS TAKEOVERS\n if (isBreakpointOrHigher(BREAKPOINTS.MD, clientWidth)) {\n initLeeadsDesktop(takeoverElement);\n }\n};\n\nexport default initTakeovers;\n","/**\n *\n * DESCRIPTION:\n * This script detects elements in a HTML page and initializes react components in those slots.\n * The react component that is created can be configured using data attributes, see under function declaration below.\n *\n * data-g-ad-position - {string} Tradera domain specific custom targeting parameter e.g. mid1-desktop, see google ad manager (DFP) for more info\n * data-g-ad-format - {string} comma separated, maps to an ad size, see ad-slot-utilities.js\n * data-g-ad-device - {string} maps to viewport according to our breakpoints, see ad-slot-utilities.js\n * data-g-ad-lazy-load - {bool} enable lazy load\n * data-g-ad-only-on-pages - {string} comma separated, specify pages where ad should be visible, OR filter, uses our pagename in init-data\n * data-g-ad-sticky - {bool} enable sticky\n * data-g-ad-autoscale - {bool} enable autoscale, which resizes an ad to fit the available space to parent\n * data-g-ad-sticky-top - {string (#id) or number} if sticky is enabled, specifies top boundary\n * data-g-ad-sticky-bottom - {string (#id) or number} if sticky is enabled, specifies top boundary\n * data-g-ad-ad-container-class - {string} possibility to wrap entire ad component in div with class specified as value\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport logger from 'packages/logger';\nimport {\n createGptSizeMapping,\n mapDeviceNameToViewport\n} from 'static/script/app/ui/layout/ads/ad-slot-utilities';\nimport DfpAdInitDataDecorator from './dfp-ad-init-data-decorator';\nimport Messaging from 'packages/react/messaging';\nimport initTakeovers from './boot-takeover-ads';\nimport { ApplicationErrorBoundary } from 'components';\n\n/**\n * initializes the react into the DOM element\n * @param {*HTMLDomElement} element a HTML Dom element for the that is to be initialized.\n * @param {*} initData The init data element that is part of every page request\n */\nconst initReactElement = (element, initData) => {\n // get all element attributes\n const position = element.getAttribute('data-g-ad-position');\n const adFormats = element.getAttribute('data-g-ad-format');\n const deviceName = element.getAttribute('data-g-ad-device');\n const lazyLoad = element.hasAttribute('data-g-ad-lazy-load');\n const adOnlyOnPages = element.getAttribute('data-g-ad-only-on-pages');\n const stickyEnabled = element.hasAttribute('data-g-ad-sticky');\n const autoscale = element.hasAttribute('data-g-ad-autoscale');\n let stickyTop = element.getAttribute('data-g-ad-sticky-top');\n let stickyBottom = element.getAttribute('data-g-ad-sticky-bottom');\n let adContainerClass = element.getAttribute('data-g-ad-ad-container-class');\n\n const refresh =\n element.hasAttribute('data-g-ad-refresh') &&\n 'ads-refresh' in initData.featureSwitches &&\n initData.featureSwitches['ads-refresh'] === true;\n\n // check if this adslot has specific exclusion rules\n if (adOnlyOnPages !== null) {\n // if page not found in list of ads to load then exit\n if (\n adOnlyOnPages\n .split(',')\n .indexOf(initData.gptData.customTargetingParameters.page) === -1\n ) {\n return;\n }\n }\n\n // handle sticky properties\n if (stickyTop !== null && !isNaN(stickyTop)) {\n stickyTop = parseInt(stickyTop);\n if (!initData.isLoggedIn) {\n stickyTop += 38;\n }\n }\n if (stickyBottom !== null && !isNaN(stickyBottom)) {\n stickyBottom = parseInt(stickyBottom);\n }\n\n // get size mapping\n const sizeMapping = createGptSizeMapping(adFormats, deviceName);\n const [minViewportWidth, maxViewportWidth] = mapDeviceNameToViewport(\n deviceName\n );\n\n if (element && sizeMapping) {\n try {\n ReactDOM.render(\n \n \n ,\n element\n );\n\n // make sure that we kill our react stuff once a pjax happens\n const messages = new Messaging();\n messages.subscribe(['data:navigation:after-page-load'], function() {\n ReactDOM.unmountComponentAtNode(element);\n messages.teardown();\n });\n } catch (e) {\n logger(e);\n }\n }\n};\n\n/**\n * Finds all react ad elements in the DOM and initializes them if they have not previously been initialized\n * @param {*object} initData\n */\nconst loadReactElements = initData => {\n // find all the elements on the page\n Array.from(document.getElementsByTagName('react-adslot')).forEach(\n element => {\n if (!element.hasAttribute('data-react-loaded')) {\n initReactElement(element, initData);\n element.setAttribute('data-react-loaded', true);\n }\n }\n );\n};\n\n/**\n * This is the main loader function to init the ads on a page. This function should only be called once per \"loaded page.\"\n * @param {*object} initData\n */\nconst reactAdsLoader = initData => {\n if (\n 'ads-leeads-takeover' in initData.featureSwitches &&\n initData.featureSwitches['ads-leeads-takeover'] === true\n ) {\n initTakeovers();\n }\n loadReactElements(initData);\n\n // make sure that on mobile pagination that the new that are sent are loaded\n const messages = new Messaging();\n messages.subscribe(\n [\n 'ui:search-result:after-pagination',\n 'data:navigation-filter:after-load'\n ],\n function() {\n loadReactElements(initData);\n }\n );\n messages.subscribe(['data:navigation:after-page-load'], function() {\n messages.teardown();\n });\n};\n\nexport default reactAdsLoader;\n","import $ from 'jquery';\nimport './utils/jquery-events';\nimport _ from 'underscore';\n\nimport GdprMount from 'tradera-components/alerts/gdpr/gdpr-mount';\nimport MultiCurrencyBoot from 'components/multi-currency/multi-currency-boot';\nimport { MainNavigation } from 'static/script/containers';\nimport reactAdsLoader from 'tradera-components/ads/boot-react-ads';\n\nexport default async initData => {\n window._ = window._ || _;\n window.$ = window.$ || $;\n GdprMount(initData);\n await MultiCurrencyBoot.boot(initData);\n MainNavigation();\n reactAdsLoader(initData);\n};\n","import $ from 'jquery';\nimport logger from 'packages/logger';\n\n/**\n * @description - class for connecting to twitter flight events\n * @class Messaging\n */\nexport default class Messaging {\n constructor() {\n this.subscribe = this.subscribe.bind(this);\n this.publish = this.publish.bind(this);\n this.namespace = `events-${Date.now()}-${Math.random()}`;\n this.events = [];\n }\n\n /**\n * @description - method to 'connect' to events\n * @param {array} events - array of all events to listen to\n * @param {function} callback - function invoked when an event is fired\n * @memberof Messaging\n */\n subscribe(events, callback) {\n if (!events) {\n logger('No event{s} passed, failing to register', true);\n return;\n }\n\n if (!Array.isArray(events)) {\n events = [events];\n }\n events.map(event => {\n this.events.push(event);\n $(document).on(`${event}.${this.namespace}`, callback);\n });\n }\n\n /**\n * @description - publish event\n * @param {string} event\n * @param {(object|string)} payload\n * @memberof Messaging\n */\n publish(event, payload) {\n // this.ConnectedToFlight.prototype.publishEvent(event, payload);\n $(document).trigger(event, payload);\n }\n\n teardown() {\n let me = this;\n this.events.map(event => {\n $(document).off(`${event}.${me.namespace}`);\n });\n this.events = [];\n }\n}\n","import React, { Fragment } from 'react';\n\nimport CheckIcon from '@tradera/blueprint/theme/icons2/check.svg?jsx';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\nimport { useTranslator } from 'tradera-lang';\nimport { SimpleModal, TraderaLogo } from 'components';\nimport './gdpr-modal.scss';\n\nconst GdprModal = props => {\n const { t } = useTranslator();\n const { openGdprSettings, acceptAndHide } = props;\n return (\n {}}>\n \n \n

\n \n

\n

\n \n

\n

\n {t('gdprConsent_modal_header')}\n

\n
\n

\n {t('gdprConsent_modal_info')}{' '}\n \n {t('gdprConsent_changeSettings')}\n \n

\n \n \n acceptAndHide(true, true, true, 'Approve All')\n }>\n {' '}\n {t('gdprConsent_approveCookies')}\n \n
\n \n );\n};\n\nexport default GdprModal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withTranslator } from 'tradera-lang';\nimport { DialogModal } from 'components';\nimport InfoIcon from '@tradera/blueprint/theme/icons2/info.svg?jsx';\n\nclass GdprSettingsModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n gdprSettings: props.gdprSettings\n };\n }\n\n save = () => {\n const { saveHandler } = this.props;\n const {\n gdprSettings: { performance, functional, marketing }\n } = this.state;\n\n let label;\n if (performance && functional && marketing) {\n label = 'Save All';\n } else {\n label =\n 'Save ' +\n [\n performance && 'performance',\n functional && 'functional',\n marketing && 'marketing'\n ]\n .filter(l => l)\n .join(', ');\n }\n\n saveHandler(performance, functional, marketing, label);\n };\n\n handleChange = event => {\n const {\n target: { name, checked }\n } = event;\n this.setState(state => ({\n gdprSettings: {\n ...state.gdprSettings,\n [name]: checked\n }\n }));\n };\n\n render() {\n const { t } = this.props;\n const { gdprSettings } = this.state;\n return (\n \n
\n

\n {t('gdprConsent_modalTitle')}\n

\n
\n
\n

\n {' '}\n {t('gdprConsent_whatsThis')}{' '}\n \n {t('gdprConsent_readMore')}\n \n

\n
\n
\n
\n
\n \n \n
\n

\n {t('gdprConsent_categoryComment_essential')}\n

\n
\n {Object.entries(gdprSettings).map(\n ([type, value], index) => (\n
\n
\n \n

\n {t(\n `gdprConsent_categoryTitle_${type}`\n )}\n

\n \n \n
\n

\n {t(`gdprConsent_categoryComment_${type}`)}\n

\n
\n )\n )}\n
\n
\n \n {t('gdprConsent_save')}\n \n
\n \n );\n }\n}\n\nGdprSettingsModal.propTypes = {\n saveHandler: PropTypes.func.isRequired\n};\n\nexport default withTranslator(GdprSettingsModal);\n","import React, { Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\n\nimport { Analytics, logger } from 'packages';\nimport uiActions from 'tradera-state/ui/actions';\nimport CookieUtil from 'tradera-utils/cookie';\nimport {\n GDPR_CONSENT_COOKIE,\n GDPR_CONSENT_ALERT_DISMISSED\n} from 'tradera-constants/cookies';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\nimport GdprModal from 'tradera-components/alerts/gdpr/gdpr-modal';\nimport GdprSettingsModal from 'tradera-components/alerts/gdpr/gdpr-settings-modal';\n\nconst GdprContainer = props => {\n const {\n visibleModal,\n visibleSettings,\n closeModal,\n openSettings,\n closeSettings\n } = props;\n\n const openGdprSettings = event => {\n if (event) event.preventDefault();\n openSettings();\n };\n\n const acceptAndHide = (\n performance = true,\n functional = true,\n marketing = true,\n eventLabel\n ) => {\n GdprSettings.set(performance, functional, marketing);\n CookieUtil.createCookie(\n GDPR_CONSENT_ALERT_DISMISSED,\n 1,\n moment()\n .add(1, 'years')\n .toDate()\n );\n closeSettings();\n closeModal();\n // Only track event and reload if cookie settings allow tracking\n if (performance) {\n trackEvent(eventLabel)\n .then(() => location.reload(true))\n .catch(error => logger(error));\n }\n };\n\n const trackEvent = (label = 'Save') => {\n return new Promise(resolve => {\n Analytics.trackEvent({\n category: 'Settings',\n action: 'Cookies',\n label,\n hitCallback: resolve\n });\n });\n };\n\n const hasGdprCookie = CookieUtil.hasCookie(GDPR_CONSENT_COOKIE);\n // Default to all toggled on if settings have never been set\n const gdprSettings = hasGdprCookie\n ? {\n performance: GdprSettings.isPerformanceEnabled(),\n functional: GdprSettings.isFunctionalEnabled(),\n marketing: GdprSettings.isMarketingEnabled()\n }\n : {\n performance: true,\n functional: true,\n marketing: true\n };\n\n return (\n \n {visibleModal && (\n \n )}\n {visibleSettings && (\n \n )}\n \n );\n};\n\nconst mapStateToProps = state => ({\n visibleModal: state.ui.gdpr.modalOpen,\n visibleSettings: state.ui.gdpr.settingsOpen\n});\n\nconst mapDispatchToProps = dispatch => ({\n closeModal: () => dispatch(uiActions.closeGdprModal()),\n openSettings: () => dispatch(uiActions.openGdprSettings()),\n closeSettings: () => dispatch(uiActions.closeGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GdprContainer);\n","import React from 'react';\nimport { render } from 'react-dom';\n\nimport { logger } from 'packages';\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport { SiteHeader } from 'components';\nimport SiteFooter from 'tradera-components/site-footer/site-footer';\n\nconst headerElement = document.querySelector('[data-site-header-slim]');\nconst footerElement = document.querySelector('[data-site-footer]');\n\nexport default () => {\n if (headerElement) {\n const cartItemCount = headerElement.getAttribute(\n 'data-cart-item-count'\n );\n const cartSum = headerElement.getAttribute('data-cart-sum');\n\n try {\n render(\n \n \n ,\n headerElement\n );\n } catch (e) {\n logger(e);\n }\n }\n\n if (footerElement) {\n try {\n render(\n \n \n ,\n footerElement\n );\n } catch (e) {\n logger(e);\n }\n }\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { PriceRange } from 'components';\nimport { logger } from 'packages';\nimport Messaging from 'packages/react/messaging';\nimport initData from 'init-data';\n\nconst getPriceRangeParams = searchParams => {\n if (searchParams) {\n try {\n const params = JSON.parse(searchParams);\n return {\n fromPrice: params.fromPrice || 1,\n toPrice: params.toPrice || 5000\n };\n } catch (e) {\n logger(e);\n }\n }\n return null;\n};\n\nexport default (elementsToAttachTo, options = {}) => {\n const priceRangeParams = getPriceRangeParams(initData.searchParams);\n if (!elementsToAttachTo || !priceRangeParams) {\n return;\n }\n $(document).ready(function() {\n try {\n const sliderElementsAsArray = Array.from(elementsToAttachTo);\n const messages = new Messaging();\n\n sliderElementsAsArray.map(sliderElement => {\n ReactDOM.render(\n ,\n sliderElement\n );\n messages.subscribe(\n [\n 'data:navigation:after-page-load',\n 'data:navigation-filter:after-load'\n ],\n function() {\n ReactDOM.unmountComponentAtNode(sliderElement);\n messages.teardown();\n }\n );\n });\n } catch (e) {\n logger(e);\n }\n });\n};\n","import React, { Fragment, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Analytics } from 'packages';\nimport { selectShowCurrencySelection } from 'tradera-state/multi-currency';\nimport { selectShowRegionSelection } from 'tradera-state/shipping-region/selectors';\nimport { useTranslator } from 'tradera-lang';\nimport DropdownIcon from '@tradera/blueprint/theme/icons2/dropdown.svg?jsx';\nimport { LocalizationMenu } from 'static/script/components/localization/localization-menu';\nimport HoverMenu from 'tradera-components/site-header/hover-menu/hover-menu';\n\nconst trackAnalytics = visible => {\n const label = visible ? 'Open' : 'Close';\n\n Analytics.trackEvent({\n category: 'Footer',\n action: 'Localization menu',\n label: label\n });\n};\n\nconst FooterLocalizationLink = ({\n showCurrencySelection,\n showRegionSelection\n}) => {\n const { t } = useTranslator();\n const [\n isLocalizationSettingsVisible,\n setLocalizationSettingsVisible\n ] = useState(false);\n\n const onClick = e => {\n e.preventDefault();\n const shouldBeVisible = !isLocalizationSettingsVisible;\n trackAnalytics(shouldBeVisible);\n setLocalizationSettingsVisible(shouldBeVisible);\n };\n\n const title = showCurrencySelection\n ? t('footer_localization_languageAndCurrency')\n : t('footer_localization_language');\n\n return (\n \n \n setLocalizationSettingsVisible(false)}\n showCurrencySelection={showCurrencySelection}\n showRegionSelection={showRegionSelection || false}\n />\n \n \n {title}\n \n \n \n );\n};\n\nFooterLocalizationLink.propTypes = {\n showCurrencySelection: PropTypes.bool.isRequired\n};\n\nconst mapStateToProps = state => ({\n showCurrencySelection: selectShowCurrencySelection(state),\n showRegionSelection: selectShowRegionSelection(state)\n});\n\nexport default connect(mapStateToProps)(FooterLocalizationLink);\n","import React from 'react';\n\nimport {\n useTranslator,\n useCurrentLanguage,\n useUrlLocalizer\n} from 'tradera-lang';\n\nimport { isSwedishOrUndefined } from 'tradera-utils/languagecode';\n\nconst FooterLinks = ({ links, callerId }) => {\n const { language } = useCurrentLanguage();\n\n const linksToRender =\n language !== 'sv' ? links.filter(link => !link.onlySwedish) : links;\n\n return (\n <>\n {linksToRender.map(\n ({ text, className, onlySwedish, ...rest }, index) => {\n return (\n \n {text}\n \n );\n }\n )}\n \n );\n};\n\nexport const BuyingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: toLocalizedUrl('/how-to-buy'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så handlar du på Tradera',\n text: t('footer_howToShop'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/kategorier'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kategorier',\n text: t('footer_categories'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/brands'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Populära varumärken',\n text: t('footer_popularBrands'),\n onlySwedish: false\n },\n {\n href: toLocalizedUrl('/inspiration'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Inspiration',\n text: t('footer_inspiration'),\n onlySwedish: true\n }\n ];\n\n return (\n
\n

{t('footer_buyHeading')}

\n
    \n \n
\n
\n );\n};\n\nexport const SellingLinks = () => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: toLocalizedUrl('/how-to-sell'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Så säljer du som privatperson',\n text: t('footer_howToSellPrivate'),\n onlySwedish: false\n },\n {\n href: 'https://info.tradera.com/foretag/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Sälj som företag',\n text: t('footer_howToSellCorporate'),\n onlySwedish: true\n },\n {\n href: 'http://info.tradera.com/foretag/butik/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Butik',\n text: t('footer_store'),\n onlySwedish: true\n }\n ];\n\n return (\n
\n

{t('footer_sellHeading')}

\n
    \n \n
\n
\n );\n};\n\nexport const ContactAndHelpLinks = ({ pageName, openGdprSettings }) => {\n const { t } = useTranslator();\n const { toLocalizedUrl } = useUrlLocalizer();\n\n const links = [\n {\n href: toLocalizedUrl('http://info.tradera.com/'),\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Vanliga frågor',\n text: t('footer_faq'),\n onlySwedish: false\n },\n {\n href: 'https://info.tradera.com/sakerhetscenter/regler-pa-tradera/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Regler på Tradera',\n text: t('footer_traderaRules'),\n onlySwedish: true\n },\n {\n href: 'http://info.tradera.com/sakerhetscenter',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Säkerhet',\n text: t('footer_security'),\n onlySwedish: true\n },\n {\n href: '#',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Open GDPR Settings',\n text: t('footer_gdpr_settings'),\n onClick: event => {\n event.preventDefault();\n openGdprSettings();\n },\n onlySwedish: false\n },\n {\n href:\n 'http://info.tradera.com/#humany-vanliga-fragor-och-svar=/contact',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Kontakta oss',\n text: t('footer_contactUs'),\n onlySwedish: true\n },\n {\n href:\n pageName === 'SellItem'\n ? '//tradera.humany.net/syi'\n : '//tradera.humany.net/juno',\n text: t('footer_customerService'),\n rel: 'nofollow',\n className: 'd-none',\n onlySwedish: false\n }\n ];\n\n return (\n
\n

{t('footer_contactHelpHeading')}

\n
    \n \n
\n
\n );\n};\n\nexport const AboutUsLinks = () => {\n const { t } = useTranslator();\n\n const links = [\n {\n href: '/info/om-oss',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Om oss',\n text: t('footer_aboutTradera'),\n onlySwedish: true\n },\n {\n href: 'http://www.mynewsdesk.com/se/tradera',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Press',\n text: t('footer_press'),\n rel: 'nofollow',\n onlySwedish: true\n },\n {\n href: '/info/gronfrakt/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Grön frakt på Tradera',\n text: t('footer_greenShipping'),\n onlySwedish: true\n },\n {\n href: 'https://www.tradera.com/info/blogg/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Vad är nytt',\n text: t('footer_whatsUp'),\n onlySwedish: true\n },\n {\n href: 'http://jobb.tradera.com/',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Jobb',\n text: t('footer_availableJobs'),\n onlySwedish: false\n }\n ];\n\n return (\n
\n

{t('footer_aboutUsHeading')}

\n
    \n \n
\n
\n );\n};\n\nexport const CouponCodeLinks = ({ isCouponationNavLinkEnabled }) => {\n const { t } = useTranslator();\n const { language } = useCurrentLanguage();\n const links = [\n {\n href: '/rabattkoder/cdon',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'CDON',\n text: 'CDON',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/ellos',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Ellos',\n text: 'Ellos',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/hotels-com',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Hotels.com',\n text: 'Hotels.com',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/jotex',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Jotex',\n text: 'Jotex',\n onlySwedish: true\n },\n {\n href: '/rabattkoder/nelly',\n 'data-ga-category': 'Footer',\n 'data-ga-action': 'Navigation',\n 'data-ga-label': 'Nelly',\n text: 'Nelly',\n onlySwedish: true\n }\n ];\n\n return isSwedishOrUndefined(language) ? (\n
\n {isCouponationNavLinkEnabled && (\n <>\n

{t('footer_couponCodes')}

\n
    \n \n
\n \n )}\n
\n ) : null;\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { useTranslator } from 'tradera-lang';\nimport {\n Breakpoint,\n BREAKPOINTS\n} from 'tradera-components/breakpoint/breakpoint';\nimport uiActions from 'tradera-state/ui/actions';\nimport FooterLocalizationLink from './footer-localization-link';\nimport AppstoreLogo from '@tradera/blueprint/theme/logos/appstore.svg?jsx';\nimport FacebookIcon from '@tradera/blueprint/theme/icons2/network-fb.svg?jsx';\nimport GooglePlayLogo from '@tradera/blueprint/theme/logos/googleplay.svg?jsx';\nimport InstagramIcon from '@tradera/blueprint/theme/icons2/network-ig.svg?jsx';\nimport LinkedInIcon from '@tradera/blueprint/theme/icons2/network-linkedin.svg?jsx';\nimport PinterestIcon from '@tradera/blueprint/theme/icons2/network-pin.svg?jsx';\nimport TwitterIcon from '@tradera/blueprint/theme/icons2/network-twitter.svg?jsx';\nimport BankidIcon from '@tradera/blueprint/theme/icons2/bankid.svg?jsx';\n\nimport {\n BuyingLinks,\n SellingLinks,\n ContactAndHelpLinks,\n AboutUsLinks,\n CouponCodeLinks\n} from './footer-links';\n\nimport './site-footer.scss';\n\nconst SiteFooter = props => {\n const { pageName, isCouponationNavLinkEnabled, openGdprSettings } = props;\n const { t } = useTranslator();\n return (\n
\n
\n
\n {/* Köp */}\n \n\n {/* Sälj */}\n \n
\n
\n {/* Kontakt & hjälp */}\n \n\n {/* Om Oss */}\n \n
\n
\n {/* Rabattkoder */}\n \n
\n
\n {/* Social media */}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {/* App download */}\n
\n \n \n \n \n \n \n
\n \n {/* BankId */}\n
\n \n \n \n
\n
\n
\n \n \n \n \n {t('footer_userAgreement')}\n \n \n {t('footer_integrityPolicy')}\n \n \n {t('footer_cookies')}\n \n
\n {/* Copyright */}\n

\n © 1999–{new Date().getFullYear()} Tradera Sweden AB\n

\n
\n );\n};\n\nconst mapStateToProps = state => ({\n pageName: state.page.name,\n isCouponationNavLinkEnabled:\n state.environment.featureSwitches['couponation-nav-link']\n});\n\nconst mapDispatchToProps = dispatch => ({\n openGdprSettings: () => dispatch(uiActions.openGdprSettings())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SiteFooter);\n","(function($) {\n if (!$) {\n return;\n }\n\n const jqueryTrigger = $.event.trigger;\n // trigger signature: function (event, data, elem, onlyHandlers)\n $.event.trigger = function(event, data, elem, onlyHandlers) {\n try {\n // Dispatch regular event, prefixed with 'jquery:'\n const eventPrefix = 'jquery:';\n const prefixedEventName = eventPrefix + event;\n const jsEvent = data\n ? new CustomEvent(prefixedEventName, { detail: data })\n : new CustomEvent(prefixedEventName);\n const elem2dispatchEvent = elem ? elem : window;\n elem2dispatchEvent.dispatchEvent(jsEvent);\n } catch (error) {\n return;\n }\n\n // Dispatch jquery event\n jqueryTrigger(event, data, elem, onlyHandlers);\n };\n})(window.jQuery);\n","import React from 'react';\nimport { render } from 'react-dom';\n\nimport { ProviderWithGlobalStore } from 'tradera-state/configure-store';\nimport GdprContainer from 'tradera-components/alerts/gdpr/gpdr-container';\n\nconst GdprMount = initData => {\n if (initData.isNativeAppContext || initData.isHybridAppContext) {\n return;\n }\n const domNode = document.querySelector(\n '[data-component-cookie-notification]'\n );\n if (domNode) {\n render(\n \n \n ,\n domNode\n );\n }\n};\n\nexport default GdprMount;\n"],"sourceRoot":""}