{"version":3,"sources":["webpack:///./src/project/app/blocks/categories/CategoryTileBlock.vue?ef5d","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?af59","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?f082","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?4345","webpack:///./src/project/app/blocks/categories/CategoryTileBlockItem.vue?79e3","webpack:///./src/project/app/blocks/categories/CategoryTileBlockItem.vue","webpack:///./src/project/app/blocks/categories/CategoryTileBlock.vue","webpack:///./src/project/app/blocks/categories/CategoryTileBlockItem.vue?a546","webpack:///./src/project/app/blocks/categories/CategoryTileBlockItem.vue?7a52","webpack:///./src/project/app/blocks/categories/CategoryTileBlock.vue?215f","webpack:///./src/project/app/blocks/categories/CategoryTileBlock.vue?d4fa","webpack:///./src/core/responsive/image/ResponsiveIcon.vue?8636","webpack:///./src/core/responsive/image/ResponsiveIcon.vue","webpack:///./src/core/responsive/image/ResponsiveIcon.vue?21c6","webpack:///./src/core/responsive/image/ResponsiveIcon.vue?98dc","webpack:///./src/project/shared/megaMenu.service.ts","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?4a09","webpack:///./src/project/tracking/adnuntius/AdnuntiusPixels.vue?3ff3","webpack:///./src/project/tracking/adnuntius/adnuntiusBulk.service.ts","webpack:///./src/project/tracking/adnuntius/AdnuntiusPixels.vue","webpack:///./src/project/tracking/adnuntius/AdnuntiusPixels.vue?6c65","webpack:///./src/project/tracking/adnuntius/AdnuntiusPixels.vue?0e85","webpack:///./src/core/responsive/image/ResponsiveIcon.vue?bbc9","webpack:///./src/project/app/blocks/categories/CategoryTileBlock.vue?2cae"],"names":["render","_vm","this","_h","$createElement","_c","_self","content","staticClass","attrs","isFirstBlock","_v","_s","headline","_e","tiles","length","class","id","sliderOptions","_l","tile","tileIndex","key","imageMode","imageSizesAttributes","maxImageClippedDimension","prevButtonSelector","slot","nextButtonSelector","classes","staticRenderFns","renderedPixelUrl","visiblePixelUrl","viewPixelUrl","clickPixelUrl","scopedSlots","_u","fn","ref","click","categoryUrl","nativeOn","$event","apply","arguments","icon","categoryDisplayName","$dictionary","get","url","getUrlForMenuItem","campaignUrl","indexOf","getPageUrl","type","Object","components","AdnuntiusPixels","component","description","callToAction","image","CategoryTileBlockImageModes","clipped","computedImageClippedDimensions","width","height","imageAlt","imageAspectRatio","focalPoint","buttonClass","name","buttonFullWidth","lowFull","ResponsiveIcon","cls","push","maxItemsOnMdScreen","numbers","xs","md","Math","floor","Date","valueOf","spaceBetween","slidesPerView","watchSlidesVisibility","navigation","nextEl","prevEl","grabCursor","instanceName","observer","observeParents","observeSlideChildren","breakpointsInverse","breakpoints","640","required","default","Boolean","CategoryTileBlockItem","CategoryBlockItem","SmartHeadline","_b","directives","rawName","imageSrc","imageSrcSets","undefined","altText","$attrs","imageUrl","imageSrcFormat","svg","x1","x2","endsWith","bgColor","normalizedBgColor","upscale","allowUpscale","mode","replace","String","Number","validator","value","includes","MegaMenuService","megaMenuPromise","megaMenu","then","freeze","menu","menus","map","Map","mapBreadcrumbForChild","categoryId","absoluteId","getMegaMenu","find","x","breadcrumb","level","set","children","forEach","m","mappedBreadcrumbs","mapBreadcrumbs","getBreadCrumbForCategory","_t","handleClick","deliveryUrls","personalization","forwardAdnuntiusPixelRequest","AbstractBulkFetch","isSetup","isVisible","isMaybeViewed","isClicked","forwardContentRequests","clickUrl","trackCreativeClick","requestData","trackingData","trackCreativeView","lineItemId","creativeId","creative","parentBlockAlias","setup","oldUrl","renderedUrl","$el","alwaysVisible","viewUrl","visibleUrl","IntersectionObserver","entries","entry","isIntersecting","intersectionRatio","setTimeout","unObserve","threshold","observe","disconnect"],"mappings":"oJAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAEJ,EAAIM,QAAgB,SAAEF,EAAG,gBAAgB,CAACG,YAAY,2BAA2BC,MAAM,CAAC,MAAQR,EAAIS,aAAe,KAAO,KAAK,cAAcT,EAAIS,eAAe,CAACT,EAAIU,GAAG,IAAIV,EAAIW,GAAGX,EAAIM,QAAQM,UAAU,OAAOZ,EAAIa,KAAMb,EAAIM,SAAWN,EAAIM,QAAQQ,OAASd,EAAIM,QAAQQ,MAAMC,OAAS,EAAGX,EAAG,UAAU,CAACG,YAAY,iEAAiE,CAACH,EAAG,SAAS,CAACY,MAAM,UAAYhB,EAAIiB,GAAGT,MAAM,CAAC,GAAKR,EAAIiB,GAAG,gBAAgBjB,EAAIiB,GAAG,QAAUjB,EAAIkB,gBAAgBlB,EAAImB,GAAInB,EAAIM,QAAa,OAAE,SAASc,EAAKC,GAAW,OAAOjB,EAAG,cAAc,CAACkB,IAAID,EAAUd,YAAY,UAAU,CAACH,EAAG,wBAAwB,CAACkB,IAAID,EAAUd,YAAY,SAASC,MAAM,CAAC,QAAUY,EAAKd,QAAQ,aAAaN,EAAIuB,UAAU,yBAAyBvB,EAAIwB,qBAAqB,2BAA2BxB,EAAIyB,6BAA6B,MAAK,GAAGrB,EAAG,SAAS,CAACG,YAAY,4CAA4CS,MAAMhB,EAAI0B,mBAAmBlB,MAAM,CAAC,KAAO,cAAc,KAAO,UAAUmB,KAAK,eAAe,CAACvB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,kBAAkB,MAAQ,KAAK,OAAS,SAAS,GAAGJ,EAAG,SAAS,CAACG,YAAY,4CAA4CS,MAAMhB,EAAI4B,mBAAmBpB,MAAM,CAAC,KAAO,cAAc,KAAO,UAAUmB,KAAK,eAAe,CAACvB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,mBAAmB,MAAQ,KAAK,OAAS,SAAS,IAAI,GAAGJ,EAAG,MAAM,CAACG,YAAY,uBAAuBS,MAAMhB,EAAI6B,SAAS7B,EAAImB,GAAInB,EAAIM,QAAa,OAAE,SAASc,EAAKC,GAAW,OAAOjB,EAAG,wBAAwB,CAACkB,IAAID,EAAUb,MAAM,CAAC,QAAUY,EAAKd,QAAQ,aAAaN,EAAIuB,UAAU,yBAAyBvB,EAAIwB,qBAAqB,2BAA2BxB,EAAIyB,+BAA8B,IAAI,IACvuDK,EAAkB,G,wECDlB,EAAS,WAAa,IAAI9B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACG,YAAY,uFAAuFC,MAAM,CAAC,eAAeR,EAAIM,QAAQyB,iBAAiB,cAAc/B,EAAIM,QAAQ0B,gBAAgB,WAAWhC,EAAIM,QAAQ2B,aAAa,YAAYjC,EAAIM,QAAQ4B,eAAeC,YAAYnC,EAAIoC,GAAG,CAAC,CAACd,IAAI,UAAUe,GAAG,SAASC,GAChb,IAAIC,EAAQD,EAAIC,MAChB,MAAO,CAAEvC,EAAe,YAAEI,EAAG,yBAAyB,CAACG,YAAY,oEAAoEC,MAAM,CAAC,GAAKR,EAAIwC,YAAY,OAAS,QAAQC,SAAS,CAAC,MAAQ,SAASC,GAAQ,OAAOH,EAAMI,MAAM,KAAMC,cAAc,CAACxC,EAAG,MAAM,CAACG,YAAY,gEAAgE,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMR,EAAI6C,KAAK,IAAM7C,EAAIM,QAAQwC,yBAAyB1C,EAAG,OAAO,CAACG,YAAY,WAAW,CAACP,EAAIU,GAAG,IAAIV,EAAIW,GAAGX,EAAI+C,YAAYC,IAAI,2CAA2C,OAAO5C,EAAG,IAAI,CAACG,YAAY,6DAA6D,CAACP,EAAIU,GAAG,IAAIV,EAAIW,GAAGX,EAAIM,QAAQwC,qBAAqB,KAAK1C,EAAG,QAAQ,CAACG,YAAY,8BAA8BC,MAAM,CAAC,KAAO,cAAc,MAAQ,IAAI,OAAS,QAAQ,KAAKR,EAAIa,aAC1xB,EAAkB,G,4DCsCD,EAArB,yG,0BAKI,EAAA2B,YAA6B,KALjC,2CAOI,WACI,OAAOvC,KAAKK,QAAQuC,KAAKI,MARjC,iFAWI,0GAEwBhD,KAAKK,QAAQ2C,IAFrC,gCAEiD,OAAgBC,kBAAkBjD,KAAKK,QAAQ2C,KAFhG,8CAEuG,KAFvG,cAEUE,EAFV,KAKQF,EADAhD,KAAKK,QAAQ2C,IAAKG,QAAQ,OAAS,GAAKD,EAClCA,EAEAlD,KAAKK,QAAQ2C,IAP3B,kBAUWA,GAVX,iDAXJ,qFAwBI,WAAoB,MAChB,iBAAOhD,KAAKK,eAAZ,aAAO,EAAcyB,mBAzB7B,wBA4BI,WAAgB,MACZ,iBAAO9B,KAAKK,eAAZ,aAAO,EAAc2B,eA7B7B,2BAgCI,WAAmB,MACf,iBAAOhC,KAAKK,eAAZ,aAAO,EAAc0B,kBAjC7B,yBAoCI,WAAiB,MACb,iBAAO/B,KAAKK,eAAZ,aAAO,EAAc4B,gBArC7B,8EAwCI,8GAC6BjC,KAAKoD,aADlC,OACIpD,KAAKuC,YADT,uDAxCJ,8DAA+C,QAGxC,gBAFF,eAAK,CACFc,KAAMC,U,8BAFO,EAAiB,gBAHrC,eAAU,CACPC,WAAY,CAAEC,kBAAA,SAEG,WCzC6a,I,wBCQ9bC,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,oBCnBX,EAAS,WAAa,IAAI1D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,MAAM,CAACG,YAAY,gBAAgBS,MAAM,CAAC,WAAahB,EAAIM,QAAQM,UAAYZ,EAAIM,QAAQqD,aAAgB3D,EAAIM,QAAQsD,cAAgB5D,EAAIM,QAAQsD,aAAaX,MAAQ,CAAC7C,EAAG,yBAAyB,CAACG,YAAY,SAASS,MAAM,CAAC,SAAUhB,EAAIM,QAAQuD,OAAOrD,MAAM,CAAC,GAAKR,EAAIM,QAAQsD,cAAgB5D,EAAIM,QAAQsD,aAAaX,MAAM,CAAEjD,EAAIM,QAAQuD,OAAS7D,EAAIuB,YAAcvB,EAAI8D,4BAA4BC,QAAS3D,EAAG,MAAM,CAACG,YAAY,iCAAiC,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,iBAAiB,CAACG,YAAY,UAAUC,MAAM,CAAC,YAAYR,EAAIM,QAAQuD,MAAMZ,IAAI,MAAQjD,EAAIgE,+BAA+BC,MAAM,OAASjE,EAAIgE,+BAA+BE,OAAO,IAAMlE,EAAImE,SAAS,QAAU,OAAO,WAAW,aAAa,KAAMnE,EAAIM,QAAa,MAAEF,EAAG,kBAAkB,CAACG,YAAY,iBAAiBC,MAAM,CAAC,YAAYR,EAAIM,QAAQuD,MAAMZ,IAAI,kBAAkBjD,EAAIwB,qBAAqB,eAAexB,EAAIoE,iBAAiB,cAAcpE,EAAIM,QAAQuD,MAAMQ,WAAW,IAAMrE,EAAImE,SAAS,QAAU,OAAO,KAAO,UAAUnE,EAAIa,KAAMb,EAAIM,QAAgB,SAAEF,EAAG,MAAM,CAACG,YAAY,gEAAgE,CAACP,EAAIU,GAAG,IAAIV,EAAIW,GAAGX,EAAIM,QAAQM,UAAU,OAAOZ,EAAIa,KAAMb,EAAIM,QAAmB,YAAEF,EAAG,MAAM,CAACG,YAAY,wBAAwB,CAACP,EAAIU,GAAG,IAAIV,EAAIW,GAAGX,EAAIM,QAAQqD,aAAa,OAAO3D,EAAIa,MAAM,GAAIb,EAAIM,QAAoB,aAAEF,EAAG,MAAM,CAACG,YAAY,yCAAyC,CAACH,EAAG,eAAe,CAACY,MAAMhB,EAAIsE,YAAY9D,MAAM,CAAC,KAAOR,EAAIM,QAAQsD,aAAaX,IAAI,KAAOjD,EAAIM,QAAQsD,aAAaW,SAAS,GAAGvE,EAAIa,MAAM,GAAGb,EAAIa,MAC/pD,EAAkB,G,4CCoDD,EAArB,2KAcI,WAAe,MACX,OAAO,UAAAZ,KAAKK,eAAL,SAAckE,gBAAkB,SAAW,KAf1D,0CAkBI,WACI,OAAIvE,KAAKsB,YAAcuC,EAA4BC,QAExC,CAAEE,MAAO,IAAKC,OAAQ,KAE1B,CAAED,MAAO,EAAGC,OAAQ,KAvBnC,4BA0BI,WACI,GAAIjE,KAAKsB,YAAcuC,EAA4BC,QACnD,OAAI9D,KAAKsB,YAAcuC,EAA4BW,QAAgB,IAAM,IAElE,IAAM,MA9BrB,oBAiCI,WAAY,YACR,OAAO,UAAAxE,KAAKK,eAAL,eAAcM,YAAd,UAA0BX,KAAKK,eAA/B,aAA0B,EAAcqD,eAAxC,UAAuD1D,KAAKK,eAA5D,iBAAuD,EAAcsD,oBAArE,aAAuD,EAA4BW,OAAQ,KAlC1G,uCAqCI,WACI,OAAOT,MAtCf,GAAmD,QAG5C,gBAFF,eAAK,CACFR,KAAMC,U,8BAIV,gBADC,kB,gCAID,gBADC,kB,6CAID,gBADC,kB,2CAXgB,EAAqB,gBAHzC,eAAU,CACPC,WAAY,CAAEkB,iBAAA,SAEG,OCFTZ,EDES,IErDib,ICOlc,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,SFiCf,SAAYA,GACR,4BACA,4BACA,+BAHJ,CAAYA,MAA2B,KAQvC,IAAqB,EAArB,yKAUI,WACI,OAAOA,EAA4B7D,KAAKK,QAAQiB,aAXxD,mBAcI,WACI,IAAMoD,EAAgB,GAStB,OARI1E,KAAKsB,YAAcuC,EAA4BC,SAC/CY,EAAIC,KAAK,yCAET3E,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,EAClC4D,EAAIC,KAAK,kCACF3E,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,GACzC4D,EAAIC,KAAK,kCAEND,IAxBf,oCA2BI,WACI,GAAI1E,KAAKsB,YAAcuC,EAA4BC,QAC/C,MAAO,CAAEE,MAAO,IAAKC,OAAQ,OA7BzC,gCAkCI,WACI,IAAMW,EAAqB5E,KAAKK,QAAQQ,MAAMC,OAAS,EAAId,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,EAAI,EAAI,EAAId,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,EAAI,EAAI,EAC7I+D,EAAU,CACZC,GAAI,GACJC,GAAIC,KAAKC,MAAM,KAAOjF,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,EAAI,EAAI8D,KAEpE,OAAOC,IAxCf,cA2CI,WACI,MAAO,wBAAyB,IAAIK,MAAOC,YA5CnD,8BA+CI,WACI,MAAO,6BAA+BnF,KAAKgB,KAhDnD,8BAmDI,WACI,MAAO,6BAA+BhB,KAAKgB,KApDnD,yBAuDI,WACI,MAAO,CACHoE,aAAc,GACdC,cAAe,EACfC,uBAAuB,EACvBC,WAAY,CACRC,OAAQ,IAAMxF,KAAK2B,mBACnB8D,OAAQ,IAAMzF,KAAKyB,oBAEvBiE,YAAY,EACZC,aAAc3F,KAAKgB,GACnB4E,UAAU,EACVC,gBAAgB,EAChBC,sBAAsB,EACtBC,oBAAoB,EACpBC,YAAa,CACTC,IAAK,CACDZ,cAAerF,KAAKK,QAAQQ,MAAMC,OAAS,IAAM,EAAI,EAAI,SAxE7E,GAA+C,QAE3C,gBADC,kB,8BAOE,gBAJF,eAAK,CACFoF,UAAU,EACVC,SAAS,EACT9C,KAAM+C,W,mCAPO,EAAiB,gBAHrC,eAAU,CACP7C,WAAY,CAAE8C,sBAAA,EAAuBC,kBAAA,EAAmBC,gBAAA,SAEvC,WG3D6a,ICQ9b,G,UAAY,eACd,EACAzG,EACA+B,GACA,EACA,KACA,KACA,OAIa,S,6CCnBf,IAAI/B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAY,SAAEI,EAAG,MAAMJ,EAAIyG,GAAG,CAACC,WAAW,CAAC,CAACnC,KAAK,WAAWoC,QAAQ,eAAepG,YAAY,kBAAkBC,MAAM,CAAC,IAAMR,EAAI4G,SAAS,OAAS5G,EAAI6G,aAAa,MAAQ7G,EAAIiE,YAAS6C,EAAU,OAAS9G,EAAIkE,aAAU4C,EAAU,IAAM9G,EAAI+G,UAAU,MAAM/G,EAAIgH,QAAO,IAAQhH,EAAIa,MACnXiB,EAAkB,G,8JCkBD,EAArB,wKAqBI,WAAY,QACR,GAAM7B,KAAKgH,SACX,OAAO,UAAAhH,KAAKiH,sBAAL,eAAqBC,OAArB,UAA4BlH,KAAKiH,sBAAjC,aAA4B,EAAqBE,UAAMN,IAvBtE,wBA0BI,WAAgB,MACZ,OAAO,UAAA7G,KAAKiH,sBAAL,SAAqBE,GAArB,UAA6BnH,KAAKiH,eAAeE,GAAjD,gBAA2DnH,KAAKiH,eAAeG,GAA/E,OAAyF,OA3BxG,0BA8BI,WACI,GAAMpH,KAAKgH,SAAX,CACA,GAAIhH,KAAKgH,SAASK,SAAS,QACvB,MAAO,CACHH,IAAKlH,KAAKgH,UAGlB,IAAIM,EAAUtH,KAAKuH,kBACfD,IACAA,EAAsB,gBAAZA,EAA4B,GAA5B,mBAA6CA,IAE3D,IAAME,EAAU,YAAH,OAAexH,KAAKyH,cAC3BC,EAAO,SAAH,OAAY1H,KAAK0H,MAC3B,MAAO,CACHP,GAAI,GAAF,OAAKnH,KAAKgH,SAAV,kBAA4BhH,KAAKgE,MAAQ,EAAzC,mBAAqDhE,KAAKiE,OAAS,GAAnE,OAAuEqD,GAAvE,OAAiFE,GAAjF,OAA2FE,GAC7FN,GAAI,GAAF,OAAKpH,KAAKgH,SAAV,kBAA4BhH,KAAKgE,MAAjC,mBAAiDhE,KAAKiE,QAAtD,OAA+DqD,GAA/D,OAAyEE,GAAzE,OAAmFE,OA7CjG,6BAiDI,WACI,OAAO1H,KAAKsH,QAAUtH,KAAKsH,QAAQK,QAAQ,IAAK,IAAM,OAlD9D,GAA4C,cAExC,gBADC,eAAK,CAAEtE,KAAMuE,OAAQzB,QAAS,M,+BAGvB,gBAAP,kB,8BAGD,gBADC,eAAK,CAAE9C,KAAMwE,OAAQ1B,QAAS,K,6BAK/B,gBADC,eAAK,CAAE9C,KAAMwE,OAAQ1B,QAAS,K,4BAI/B,gBADC,eAAK,CAAE9C,KAAMuE,OAAQzB,QAAS,iB,8BAGU,gBAAxC,eAAK,CAAE9C,KAAM+C,QAASD,SAAS,K,mCAGhC,gBADC,eAAK,CAAE9C,KAAMuE,OAAQzB,QAAS,MAAO2B,UAAW,SAAAC,GAAK,MAAI,CAAC,OAAQ,MAAO,OAAOC,SAASD,O,2BAlBzE,EAAc,gBAHlC,eAAU,CACPzD,KAAM,oBAEW,WCnBwZ,I,wBCQzab,EAAY,eACd,EACA3D,EACA+B,GACA,EACA,KACA,KACA,MAIa,OAAA4B,E,gQChBTwE,E,WAAN,oCAEY,KAAAC,gBAAkB,OAAI3C,WAAW4C,WACpCC,MAAK,SAAAD,GACF,OAAO7E,OAAO+E,OAAOF,EAASG,S,2GAGtC,uHACWtI,KAAKkI,iBADhB,gD,qFAIA,SAAeK,GACX,IADqC,EAC/BC,EAAM,IAAIC,IADqB,iBAElBF,GAFkB,IAErC,IAAK,EAAL,qBAA0B,KAAfD,EAAe,QACtBtI,KAAK0I,sBAAsBF,EAAKF,EAAM,CAACA,GAAO,IAHb,8BAKrC,OAAOE,I,wFAGX,WAAwBG,GAAxB,kGACUC,EAAaD,EAAWhB,QAAQ,OAAQ,IADlD,SAE2B3H,KAAK6I,cAFhC,UAEUV,EAFV,OAGUG,EAAOH,EAASW,MAAK,SAAAC,GAAC,OAAIA,EAAE/H,KAAO4H,MACrCN,EAJR,yCAKeA,EAAKtF,KALpB,gCAQW,MARX,gD,6FAWA,SAAsBwF,EAA8BF,EAAgBU,EAAwBC,GAAa,WACrGT,EAAIU,IAAIZ,EAAKtH,GAAIgI,GACjBV,EAAKa,SAASC,SAAQ,SAAAC,GAClB,EAAKX,sBAAsBF,EAAKa,EAAhC,yBAAuCL,GAAvC,CAAmDK,IAAIJ,EAAQ,Q,+FAIvE,WAA+BN,GAA/B,uGAC2B3I,KAAK6I,cADhC,cACUV,EADV,OAESnI,KAAKsJ,oBACNtJ,KAAKsJ,kBAAoBtJ,KAAKuJ,eAAepB,IAHrD,kBAKWnI,KAAKsJ,kBAAkBvG,IAAI4F,IAAe,IALrD,gD,sGAQA,SAA+BA,GAAkB,MAC7C,OAAO,UAAA3I,KAAKsJ,yBAAL,eAAwBvG,IAAI4F,KAAe,K,sFAGtD,WAAsBA,GAAtB,uGAC6B3I,KAAKwJ,yBAAyBb,GAD3D,cACUK,EADV,yBAEWA,EAAWA,EAAWlI,OAAS,IAF1C,gD,iEAMW,WAAImH,G,kCC1DnB,yBAAinB,EAAG,G,gFCApnB,IAAInI,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,UAAU,CAACP,EAAI0J,GAAG,UAAU,KAAK,CAAC,MAAQ1J,EAAI2J,eAAe,IAC/K7H,EAAkB,G,8ICGhB,E,kOACF,WAAc8H,GAAd,iGACU,OAAIC,gBAAgBC,6BAA6B,CACnDF,aAAcA,IAFtB,gCAKW,MALX,2C,+DAD+BG,EAAA,MAUpB,MAAI,EAAqB,YAAa,K,YCDhC,EAArB,yG,0BACI,EAAAC,SAAU,EACV,EAAAC,WAAY,EACZ,EAAAC,eAAgB,EAChB,EAAAC,WAAY,EACZ,EAAAtE,SAAwC,KAL5C,oDAyBI,WACS5F,KAAKkK,YACNlK,KAAKkK,WAAY,EACjBlK,KAAKmK,uBAAuBnK,KAAKoK,UACjCpK,KAAKqK,wBA7BjB,oCAiCI,SAAuBrH,GACfA,GAAO,EAAqBsH,YAAYtH,KAlCpD,+BAqCI,WACQhD,KAAKuK,cACL,OAAWC,kBAAkB,CAAC,CAAElG,KAAMtE,KAAKuK,aAAaE,WAAYzJ,GAAIhB,KAAKuK,aAAaG,WAAYC,SAAU3K,KAAKuK,aAAaK,sBAvC9I,gCA2CI,WACQ5K,KAAKuK,cACL,OAAWF,mBAAmBrK,KAAKuK,aAAaE,WAAYzK,KAAKuK,aAAaG,WAAY1K,KAAKuK,aAAaK,oBA7CxH,qBAiDI,WACI5K,KAAK6K,UAlDb,iCAsDI,SAAoB7H,EAAa8H,GACzB9H,GACAhD,KAAK6K,UAxDjB,mBA4DI,WAAK,YAEG7K,KAAK+J,SAAY/J,KAAK+K,aAAgB/K,KAAKgL,MAC/ChL,KAAK+J,SAAU,EAEf/J,KAAKmK,uBAAuBnK,KAAK+K,aAE7B/K,KAAKiL,eACLjL,KAAKmK,uBAAuBnK,KAAKkL,SACjClL,KAAKmK,uBAAuBnK,KAAKmL,cAEjCnL,KAAK4F,SAAW,IAAIwF,sBAChB,SAACC,GACGA,EAAQjC,SAAQ,SAAAkC,GACRA,EAAMC,eACD,EAAKvB,YACN,EAAKA,WAAY,EACjB,EAAKG,uBAAuB,EAAKgB,aAGrC,EAAKlB,eAAgB,EAGrBqB,EAAME,mBAAqB,IAAOF,EAAMC,iBACxC,EAAKtB,eAAgB,EACrBwB,YAAW,WACH,EAAKxB,gBACL,EAAKE,uBAAuB,EAAKe,SACjC,EAAKV,oBACL,EAAKkB,eAEV,WAIf,CACIC,UAAW,CAAC,EAAG,MAGvB3L,KAAK4F,SAASgG,QAAQ5L,KAAKgL,SAnGvC,uBAuGI,WACQhL,KAAK4F,WACL5F,KAAK4F,SAASiG,aACd7L,KAAK4F,SAAW,QA1G5B,uBA8GI,WACI5F,KAAK0L,gBA/Gb,GAA6C,QAQzC,gBADC,eAAK9D,S,kCAIN,gBADC,eAAKA,S,iCAIN,gBADC,eAAKA,S,8BAIN,gBADC,eAAKA,S,+BAIN,gBADC,eAAKxB,U,oCAIN,gBADC,eAAK9C,S,mCAgCN,gBADC,eAAM,gB,kCAKN,MA1DgB,EAAe,gBADnC,QACoB,WCbyZ,I,YCO1aG,EAAY,eACd,EACA3D,EACA+B,GACA,EACA,KACA,KACA,MAIa,OAAA4B,E,2CClBf,yBAAikB,EAAG,G,kCCApkB,yBAAylB,EAAG","file":"js/chunk-c2a2577e.234bdfdd.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.content.headline)?_c('SmartHeadline',{staticClass:\"text-18 md:text-34 mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),(_vm.content && _vm.content.tiles && _vm.content.tiles.length > 5)?_c('article',{staticClass:\"relative w-full overflow-visible category-tile-blocks--swiper\"},[_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.content.tiles),function(tile,tileIndex){return _c('SwiperSlide',{key:tileIndex,staticClass:\"h-auto\"},[_c('CategoryTileBlockItem',{key:tileIndex,staticClass:\"h-full\",attrs:{\"content\":tile.content,\"image-mode\":_vm.imageMode,\"image-sizes-attributes\":_vm.imageSizesAttributes,\"clipped-image-dimensions\":_vm.maxImageClippedDimension}})],1)}),1),_c('button',{staticClass:\"custom-swiper-button-prev hidden md:block\",class:_vm.prevButtonSelector,attrs:{\"slot\":\"button-prev\",\"type\":\"button\"},slot:\"button-prev\"},[_c('CIcon',{attrs:{\"name\":\"arrow-thin-left\",\"width\":\"25\",\"height\":\"25\"}})],1),_c('button',{staticClass:\"custom-swiper-button-next hidden md:block\",class:_vm.nextButtonSelector,attrs:{\"slot\":\"button-next\",\"type\":\"button\"},slot:\"button-next\"},[_c('CIcon',{attrs:{\"name\":\"arrow-thin-right\",\"width\":\"25\",\"height\":\"25\"}})],1)],1):_c('div',{staticClass:\"category-tile-blocks\",class:_vm.classes},_vm._l((_vm.content.tiles),function(tile,tileIndex){return _c('CategoryTileBlockItem',{key:tileIndex,attrs:{\"content\":tile.content,\"image-mode\":_vm.imageMode,\"image-sizes-attributes\":_vm.imageSizesAttributes,\"clipped-image-dimensions\":_vm.maxImageClippedDimension}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AdnuntiusPixels',{staticClass:\"flex justify-center md:mx-10 first:ml-0 last:mr-0 w-1/2 sm:w-1/3 md:w-auto md:flex-1\",attrs:{\"rendered-url\":_vm.content.renderedPixelUrl,\"visible-url\":_vm.content.visiblePixelUrl,\"view-url\":_vm.content.viewPixelUrl,\"click-url\":_vm.content.clickPixelUrl},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar click = ref.click;\nreturn [(_vm.categoryUrl)?_c('CultureAwareRouterLink',{staticClass:\"category-link category-link--whiteBox mb-15 md:mb-0 mx-5 md:mx-10\",attrs:{\"to\":_vm.categoryUrl,\"target\":\"_top\"},nativeOn:{\"click\":function($event){return click.apply(null, arguments)}}},[_c('div',{staticClass:\"category-item w-full h-full flex items-center justify-center\"},[_c('img',{attrs:{\"src\":_vm.icon,\"alt\":_vm.content.categoryDisplayName}})]),_c('span',{staticClass:\"sr-only\"},[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('BrandHero.BrandLogo.SeeAllProductsFrom'))+\" \")]),_c('p',{staticClass:\"text-12 md:text-14 font-medium mt-10 md:mt-20 text-center\"},[_vm._v(\" \"+_vm._s(_vm.content.categoryDisplayName)+\" \"),_c('CIcon',{staticClass:\"category-link--arrow hidden\",attrs:{\"name\":\"arrow-right\",\"width\":\"9\",\"height\":\"9\"}})],1)]):_vm._e()]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Prop, Vue } from 'vue-property-decorator';\r\nimport Component from 'vue-class-component';\r\nimport AdnuntiusPixels from '@/project/tracking/adnuntius/AdnuntiusPixels.vue';\r\nimport { CategoryItemViewModel } from '@/types/apiServerContract';\r\nimport megaMenuService from '@/project/shared/megaMenu.service';\r\n\r\n@Component({\r\n components: { AdnuntiusPixels }\r\n})\r\nexport default class CategoryBlockItem extends Vue {\r\n @Prop({\r\n type: Object\r\n }) content!: CategoryItemViewModel;\r\n\r\n categoryUrl: string | null = null;\r\n\r\n get icon(): string {\r\n return this.content.icon.url;\r\n }\r\n\r\n async getPageUrl() {\r\n let url;\r\n const campaignUrl = this.content.url ? await megaMenuService.getUrlForMenuItem(this.content.url) : null;\r\n\r\n if (this.content.url!.indexOf('c-') >= 0 && campaignUrl) {\r\n url = campaignUrl;\r\n } else {\r\n url = this.content.url;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n get renderedPixelUrl() {\r\n return this.content?.renderedPixelUrl;\r\n }\r\n\r\n get viewPixelUrl() {\r\n return this.content?.viewPixelUrl;\r\n }\r\n\r\n get visiblePixelUrl() {\r\n return this.content?.visiblePixelUrl;\r\n }\r\n\r\n get clickPixelUrl() {\r\n return this.content?.clickPixelUrl;\r\n }\r\n\r\n async created() {\r\n this.categoryUrl = await this.getPageUrl();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryBlockItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryBlockItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryBlockItem.vue?vue&type=template&id=5ac999c7&scoped=true&\"\nimport script from \"./CategoryBlockItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryBlockItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryBlockItem.vue?vue&type=style&index=0&id=5ac999c7&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ac999c7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.content)?_c('div',{staticClass:\"flex flex-col\",class:{'bg-white': (_vm.content.headline || _vm.content.description || (_vm.content.callToAction && _vm.content.callToAction.url))}},[_c('CultureAwareRouterLink',{staticClass:\"w-full\",class:{'pt-10': !_vm.content.image},attrs:{\"to\":_vm.content.callToAction && _vm.content.callToAction.url}},[(_vm.content.image && _vm.imageMode === _vm.CategoryTileBlockImageModes.clipped)?_c('div',{staticClass:\"flex justify-center min-h-140\"},[_c('div',{staticClass:\"flex my-auto\"},[_c('ResponsiveIcon',{staticClass:\"mx-auto\",attrs:{\"image-url\":_vm.content.image.url,\"width\":_vm.computedImageClippedDimensions.width,\"height\":_vm.computedImageClippedDimensions.height,\"alt\":_vm.imageAlt,\"loading\":\"lazy\",\"bg-color\":\"ffffff\"}})],1)]):(_vm.content.image)?_c('ResponsiveImage',{staticClass:\"mb-10 md:mb-20\",attrs:{\"image-url\":_vm.content.image.url,\"width-on-screen\":_vm.imageSizesAttributes,\"aspect-ratio\":_vm.imageAspectRatio,\"focal-point\":_vm.content.image.focalPoint,\"alt\":_vm.imageAlt,\"loading\":\"lazy\",\"mode\":\"crop\"}}):_vm._e(),(_vm.content.headline)?_c('div',{staticClass:\"px-10 md:px-20 text-13 lg:text-14 font-bold text-black mb-10\"},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),(_vm.content.description)?_c('div',{staticClass:\"px-10 md:px-20 mb-10\"},[_vm._v(\" \"+_vm._s(_vm.content.description)+\" \")]):_vm._e()],1),(_vm.content.callToAction)?_c('div',{staticClass:\"mt-auto px-10 md:px-20 pb-10 md:pb-20\"},[_c('CallToAction',{class:_vm.buttonClass,attrs:{\"href\":_vm.content.callToAction.url,\"text\":_vm.content.callToAction.name}})],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Prop, Vue } from 'vue-property-decorator';\r\nimport Component from 'vue-class-component';\r\nimport ResponsiveIcon from '@/core/responsive/image/ResponsiveIcon.vue';\r\nimport { CategoryTileBlockImageModes } from '@/project/app/blocks/categories/CategoryTileBlock.vue';\r\nimport { IResponsiveImageWidthOnScreenConfig } from '@/core/responsive/image/ResponsiveImage.vue';\r\nimport { CategoryTileViewModel } from '@/types/contentServerContract';\r\n\r\n@Component({\r\n components: { ResponsiveIcon }\r\n})\r\nexport default class CategoryTileBlockItem extends Vue {\r\n @Prop({\r\n type: Object\r\n }) content!: CategoryTileViewModel | null;\r\n\r\n @Prop()\r\n imageMode!: CategoryTileBlockImageModes;\r\n\r\n @Prop()\r\n clippedImageDimensions!: undefined | { width: number, height: number };\r\n\r\n @Prop()\r\n imageSizesAttributes!:IResponsiveImageWidthOnScreenConfig | number;\r\n\r\n get buttonClass(): string {\r\n return this.content?.buttonFullWidth ? 'w-full' : '';\r\n }\r\n\r\n get computedImageClippedDimensions(): { width: number, height: number} {\r\n if (this.imageMode === CategoryTileBlockImageModes.clipped) {\r\n // const width = this.content.image?.height\r\n return { width: 346, height: 232 };\r\n }\r\n return { width: 0, height: 0 };\r\n }\r\n\r\n get imageAspectRatio() {\r\n if (this.imageMode === CategoryTileBlockImageModes.clipped) return undefined;\r\n if (this.imageMode === CategoryTileBlockImageModes.lowFull) return 210 / 136;\r\n\r\n return 268 / 208; // High aspect ratio\r\n }\r\n\r\n get imageAlt(): string {\r\n return this.content?.headline || this.content?.description || this.content?.callToAction?.name || '';\r\n }\r\n\r\n get CategoryTileBlockImageModes() {\r\n return CategoryTileBlockImageModes;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport CategoryBlockItem from './CategoryBlockItem.vue';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport CategoryTileBlockItem from '@/project/app/blocks/categories/CategoryTileBlockItem.vue';\r\nimport { CategoryTileBlockViewModel } from '@/types/contentServerContract';\r\nimport { IResponsiveImageWidthOnScreenConfig } from '@/core/responsive/image/ResponsiveImage.vue';\r\nexport enum CategoryTileBlockImageModes {\r\n 'clipped',\r\n 'lowFull',\r\n 'highFull'\r\n}\r\n@Component({\r\n components: { CategoryTileBlockItem, CategoryBlockItem, SmartHeadline }\r\n})\r\nexport default class CategoryTileBlock extends Vue {\r\n @Prop()\r\n content!: CategoryTileBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n default: false,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n get imageMode() {\r\n return CategoryTileBlockImageModes[this.content.imageMode];\r\n }\r\n\r\n get classes() {\r\n const cls: string[] = [];\r\n if (this.imageMode !== CategoryTileBlockImageModes.clipped) {\r\n cls.push('category-tile-blocks--1-in-row-mobile');\r\n }\r\n if (this.content.tiles.length % 4 === 0) {\r\n cls.push('category-tile-blocks--4-in-row');\r\n } else if (this.content.tiles.length % 5 === 0) {\r\n cls.push('category-tile-blocks--5-in-row');\r\n }\r\n return cls;\r\n }\r\n\r\n get maxImageClippedDimension(): undefined | { width: number, height: number } {\r\n if (this.imageMode === CategoryTileBlockImageModes.clipped) {\r\n return { width: 100, height: 100 };\r\n }\r\n return undefined;\r\n }\r\n\r\n get imageSizesAttributes(): IResponsiveImageWidthOnScreenConfig | number {\r\n const maxItemsOnMdScreen = this.content.tiles.length > 5 ? this.content.tiles.length % 4 === 0 ? 4 : 3 : this.content.tiles.length % 5 === 0 ? 5 : 3;\r\n const numbers = {\r\n xs: 50,\r\n md: Math.floor(100 / (this.content.tiles.length % 4 === 0 ? 4 : maxItemsOnMdScreen))\r\n };\r\n return numbers;\r\n }\r\n\r\n get id() {\r\n return 'category-tile-block-' + new Date().valueOf();\r\n }\r\n\r\n get prevButtonSelector() {\r\n return 'custom-swiper-button-prev-' + this.id;\r\n }\r\n\r\n get nextButtonSelector() {\r\n return 'custom-swiper-button-next-' + this.id;\r\n }\r\n\r\n get sliderOptions() {\r\n return {\r\n spaceBetween: 20,\r\n slidesPerView: 2,\r\n watchSlidesVisibility: true,\r\n navigation: {\r\n nextEl: '.' + this.nextButtonSelector,\r\n prevEl: '.' + this.prevButtonSelector\r\n },\r\n grabCursor: true,\r\n instanceName: this.id,\r\n observer: true,\r\n observeParents: true,\r\n observeSlideChildren: true,\r\n breakpointsInverse: true, // Mobile first, then override on larger screens\r\n breakpoints: {\r\n 640: {\r\n slidesPerView: this.content.tiles.length % 4 === 0 ? 4 : 3\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlockItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlockItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryTileBlockItem.vue?vue&type=template&id=6091c13e&\"\nimport script from \"./CategoryTileBlockItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryTileBlockItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryTileBlock.vue?vue&type=template&id=81a58146&\"\nimport script from \"./CategoryTileBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryTileBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryTileBlock.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.imageUrl)?_c('img',_vm._b({directives:[{name:\"on-error\",rawName:\"v-on-error\"}],staticClass:\"responsive-icon\",attrs:{\"src\":_vm.imageSrc,\"srcset\":_vm.imageSrcSets,\"width\":_vm.width || undefined,\"height\":_vm.height || undefined,\"alt\":_vm.altText}},'img',_vm.$attrs,false)):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\n@Component({\r\n name: 'ResponsiveIcon'\r\n})\r\nexport default class ResponsiveIcon extends Vue {\r\n @Prop({ type: String, default: '' })\r\n imageUrl!:string;\r\n\r\n @Prop() altText!:string;\r\n\r\n @Prop({ type: Number, default: 0 })\r\n height!: number;\r\n\r\n // Number or e.g. 'auto'\r\n @Prop({ type: Number, default: 0 })\r\n width!: number;\r\n\r\n @Prop({ type: String, default: 'transparent' })\r\n bgColor!: string;\r\n\r\n @Prop({ type: Boolean, default: false }) allowUpscale!:boolean;\r\n\r\n @Prop({ type: String, default: 'pad', validator: value => ['crop', 'pad', 'max'].includes(value as string) })\r\n mode!: string;\r\n\r\n get imageSrc() {\r\n if (!(this.imageUrl)) return undefined;\r\n return this.imageSrcFormat?.svg || this.imageSrcFormat?.x1 || undefined;\r\n }\r\n\r\n get imageSrcSets() {\r\n return this.imageSrcFormat?.x1 ? `${this.imageSrcFormat.x1} 1x, ${this.imageSrcFormat.x2} 2x` : null;\r\n }\r\n\r\n get imageSrcFormat() {\r\n if (!(this.imageUrl)) return undefined;\r\n if (this.imageUrl.endsWith('.svg')) {\r\n return {\r\n svg: this.imageUrl\r\n };\r\n }\r\n let bgColor = this.normalizedBgColor;\r\n if (bgColor) {\r\n bgColor = bgColor === 'transparent' ? '' : `&bgcolor=${bgColor}`;\r\n }\r\n const upscale = `&upscale=${this.allowUpscale}`;\r\n const mode = `&mode=${this.mode}`;\r\n return {\r\n x1: `${this.imageUrl}?width=${this.width / 2}&height=${this.height / 2}${bgColor}${upscale}${mode}`,\r\n x2: `${this.imageUrl}?width=${this.width}&height=${this.height}${bgColor}${upscale}${mode}`\r\n };\r\n }\r\n\r\n get normalizedBgColor(): string {\r\n return this.bgColor ? this.bgColor.replace('#', '') : '';\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponsiveIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponsiveIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResponsiveIcon.vue?vue&type=template&id=1f8ce3ac&\"\nimport script from \"./ResponsiveIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResponsiveIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResponsiveIcon.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Api from '@/project/http/Api.service';\r\nimport { MenuItem } from '@/types/apiServerContract';\r\n\r\nclass MegaMenuService {\r\n private mappedBreadcrumbs: Map | undefined;\r\n private megaMenuPromise = Api.navigation.megaMenu()\r\n .then(megaMenu => {\r\n return Object.freeze(megaMenu.menu);\r\n });\r\n\r\n async getMegaMenu(): Promise {\r\n return this.megaMenuPromise;\r\n }\r\n\r\n mapBreadcrumbs(menus: readonly MenuItem[]): Map {\r\n const map = new Map();\r\n for (const menu of menus) {\r\n this.mapBreadcrumbForChild(map, menu, [menu], 1);\r\n }\r\n return map;\r\n }\r\n\r\n async getUrlForMenuItem(categoryId: string) {\r\n const absoluteId = categoryId.replace(/\\D+/g, '');\r\n const megaMenu = await this.getMegaMenu();\r\n const menu = megaMenu.find(x => x.id === absoluteId);\r\n if (menu) {\r\n return menu.url;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n mapBreadcrumbForChild(map: Map, menu: MenuItem, breadcrumb: MenuItem[], level: number) {\r\n map.set(menu.id, breadcrumb);\r\n menu.children.forEach(m => {\r\n this.mapBreadcrumbForChild(map, m, [...breadcrumb, m], level + 1);\r\n });\r\n }\r\n\r\n async getBreadCrumbForCategory(categoryId: string): Promise {\r\n const megaMenu = await this.getMegaMenu();\r\n if (!this.mappedBreadcrumbs) {\r\n this.mappedBreadcrumbs = this.mapBreadcrumbs(megaMenu);\r\n }\r\n return this.mappedBreadcrumbs.get(categoryId) || [];\r\n }\r\n\r\n getMappedBreadCrumbForCategory(categoryId: string): MenuItem[] {\r\n return this.mappedBreadcrumbs?.get(categoryId) || [];\r\n }\r\n\r\n async getCategoryById(categoryId: string): Promise {\r\n const breadcrumb = await this.getBreadCrumbForCategory(categoryId);\r\n return breadcrumb[breadcrumb.length - 1];\r\n }\r\n}\r\n\r\nexport default new MegaMenuService();\r\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryBlockItem.vue?vue&type=style&index=0&id=5ac999c7&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryBlockItem.vue?vue&type=style&index=0&id=5ac999c7&lang=less&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pixels\"},[_vm._t(\"default\",null,{\"click\":_vm.handleClick})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from '@/project/http/Api.service';\r\nimport AbstractBulkFetch from '@/core/bulk-fetch/AbstractBulkFetch';\r\nimport { AdnuntiusPixelForwardRequest } from '@/types/apiServerContract';\r\n\r\nclass AdnuntiusBulkService extends AbstractBulkFetch {\r\n async apiCall(deliveryUrls: string[]) {\r\n await Api.personalization.forwardAdnuntiusPixelRequest({\r\n deliveryUrls: deliveryUrls\r\n } as AdnuntiusPixelForwardRequest);\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport default new AdnuntiusBulkService('Adnuntius', 200);\r\n","\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport AdnuntiusBulkService from './adnuntiusBulk.service';\r\nimport gtmService from '@/project/tracking/gtm/GTM.service';\r\nimport { AdnuntiusTrackingData } from '@/project/tracking/adnuntius/types';\r\n\r\n@Component\r\nexport default class AdnuntiusPixels extends Vue {\r\n isSetup = false;\r\n isVisible = false;\r\n isMaybeViewed = false;\r\n isClicked = false;\r\n observer: IntersectionObserver | null = null;\r\n\r\n @Prop(String)\r\n renderedUrl!: string | null;\r\n\r\n @Prop(String)\r\n visibleUrl!: string | null;\r\n\r\n @Prop(String)\r\n viewUrl!: string | null;\r\n\r\n @Prop(String)\r\n clickUrl!: string | null;\r\n\r\n @Prop(Boolean)\r\n alwaysVisible!: boolean | null;\r\n\r\n @Prop(Object)\r\n trackingData!: AdnuntiusTrackingData | null;\r\n\r\n handleClick() {\r\n if (!this.isClicked) {\r\n this.isClicked = true;\r\n this.forwardContentRequests(this.clickUrl);\r\n this.trackCreativeClick();\r\n }\r\n }\r\n\r\n forwardContentRequests(url: string | null) {\r\n if (url) { AdnuntiusBulkService.requestData(url); }\r\n }\r\n\r\n trackCreativeView() {\r\n if (this.trackingData) {\r\n gtmService.trackCreativeView([{ name: this.trackingData.lineItemId, id: this.trackingData.creativeId, creative: this.trackingData.parentBlockAlias }]);\r\n }\r\n }\r\n\r\n trackCreativeClick() {\r\n if (this.trackingData) {\r\n gtmService.trackCreativeClick(this.trackingData.lineItemId, this.trackingData.creativeId, this.trackingData.parentBlockAlias);\r\n }\r\n }\r\n\r\n mounted() {\r\n this.setup();\r\n }\r\n\r\n @Watch('renderedUrl')\r\n onRenderedUrlChange(url: string, oldUrl: string) {\r\n if (url) {\r\n this.setup();\r\n }\r\n }\r\n\r\n setup() {\r\n // Setup only when has been mounted and link props are present\r\n if (this.isSetup || !this.renderedUrl || !this.$el) return;\r\n this.isSetup = true;\r\n\r\n this.forwardContentRequests(this.renderedUrl);\r\n\r\n if (this.alwaysVisible) {\r\n this.forwardContentRequests(this.viewUrl);\r\n this.forwardContentRequests(this.visibleUrl);\r\n } else {\r\n this.observer = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n if (!this.isVisible) {\r\n this.isVisible = true;\r\n this.forwardContentRequests(this.visibleUrl);\r\n }\r\n } else {\r\n this.isMaybeViewed = false;\r\n }\r\n\r\n if (entry.intersectionRatio >= 0.5 && entry.isIntersecting) {\r\n this.isMaybeViewed = true;\r\n setTimeout(() => {\r\n if (this.isMaybeViewed) {\r\n this.forwardContentRequests(this.viewUrl);\r\n this.trackCreativeView();\r\n this.unObserve();\r\n }\r\n }, 1000);\r\n }\r\n });\r\n },\r\n {\r\n threshold: [0, 0.5]\r\n });\r\n\r\n this.observer.observe(this.$el);\r\n }\r\n }\r\n\r\n unObserve(): void {\r\n if (this.observer) {\r\n this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n }\r\n\r\n destroyed() {\r\n this.unObserve();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdnuntiusPixels.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdnuntiusPixels.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdnuntiusPixels.vue?vue&type=template&id=7023c8d9&\"\nimport script from \"./AdnuntiusPixels.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdnuntiusPixels.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponsiveIcon.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponsiveIcon.vue?vue&type=style&index=0&lang=less&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlock.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryTileBlock.vue?vue&type=style&index=0&lang=less&\""],"sourceRoot":""}