{"version":3,"sources":["webpack:///./src/project/app/blocks/UniqueSellingPointItem.vue?227b","webpack:///./src/project/app/content-pages/CampaignTeaser.vue?27f1","webpack:///./src/project/app/blocks/TextWithImageBlock.vue?c337","webpack:///./src/project/app/blocks/ProductRecommendationsBlock.vue?7b96","webpack:///./src/project/app/blocks/ProductRecommendationsBlock.vue","webpack:///./src/project/app/blocks/ProductRecommendationsBlock.vue?4754","webpack:///./src/project/app/blocks/ProductRecommendationsBlock.vue?9ba8","webpack:///./src/project/app/blocks/UniqueSellingPointItem.vue?2d14","webpack:///./src/project/app/blocks/UniqueSellingPointItem.vue","webpack:///./src/project/app/blocks/UniqueSellingPointItem.vue?e819","webpack:///./src/project/app/blocks/UniqueSellingPointItem.vue?dac9","webpack:///./src/project/app/blocks/categories/CategoryBlock.vue?5c05","webpack:///./src/project/app/blocks/categories/CategoryBlock.vue","webpack:///./src/project/app/blocks/categories/CategoryBlock.vue?f360","webpack:///./src/project/app/blocks/categories/CategoryBlock.vue?50de","webpack:///./src/project/app/blocks/BrandsBlock.vue?2dc2","webpack:///./src/project/shared/category.service.ts","webpack:///./src/project/app/blocks/BrandsBlock.vue","webpack:///./src/project/app/blocks/BrandsBlock.vue?8621","webpack:///./src/project/app/blocks/BrandsBlock.vue?7948","webpack:///./src/project/app/blocks/AdnuntiusHeroBannerBlock.vue?4c14","webpack:///./src/project/app/blocks/TextBlock.vue?3f83","webpack:///./src/project/app/blocks/TextBlock.vue","webpack:///./src/project/app/blocks/TextBlock.vue?d537","webpack:///./src/project/app/blocks/TextBlock.vue?1b9a","webpack:///./src/project/app/blocks/LatestNewsBlock.vue?0f0d","webpack:///./src/project/app/blocks/tableHtml.service.ts","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?d356","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/ProductListBlock.vue?f9d9","webpack:///./src/project/app/blocks/ProductListBlock.vue","webpack:///./src/project/app/blocks/ProductListBlock.vue?49da","webpack:///./src/project/app/blocks/ProductListBlock.vue?7e3b","webpack:///./src/project/app/blocks/LatestNewsBlock.vue?0078","webpack:///./src/project/app/blocks/LatestNewsBlock.vue","webpack:///./src/project/app/blocks/LatestNewsBlock.vue?5a9f","webpack:///./src/project/app/blocks/LatestNewsBlock.vue?da71","webpack:///./src/project/app/blocks/TextWithImageBlock.vue?0271","webpack:///./src/project/app/blocks/TextWithImageBlock.vue","webpack:///./src/project/app/blocks/TextWithImageBlock.vue?d231","webpack:///./src/project/app/blocks/TextWithImageBlock.vue?7084","webpack:///./src/project/app/blocks/OnePlusTwoBlocks.vue?afb4","webpack:///./src/project/app/blocks/AdnuntiusHeroBannerBlock.vue?b6ff","webpack:///./src/project/app/blocks/SmallImageTextBlock.vue?d6cd","webpack:///./src/project/app/blocks/SmallImageTextBlock.vue","webpack:///./src/project/app/blocks/SmallImageTextBlock.vue?d187","webpack:///./src/project/app/blocks/SmallImageTextBlock.vue?78d5","webpack:///./src/project/app/blocks/AdnuntiusHeroBannerBlock.vue","webpack:///./src/project/app/blocks/AdnuntiusHeroBannerBlock.vue?0fc4","webpack:///./src/project/app/blocks/AdnuntiusHeroBannerBlock.vue?f415","webpack:///./src/project/app/blocks/SmallImageTextBlock.vue?bbd0","webpack:///./src/project/app/blocks/SimpleUniqueSellingPointsBlock.vue?fef7","webpack:///./src/project/app/blocks/SimpleUniqueSellingPointsBlock.vue","webpack:///./src/project/app/blocks/SimpleUniqueSellingPointsBlock.vue?4a73","webpack:///./src/project/app/blocks/SimpleUniqueSellingPointsBlock.vue?24a3","webpack:///./src/core/ui-components/tabs/Tab.vue?2562","webpack:///./src/core/ui-components/tabs/Tab.vue","webpack:///./src/core/ui-components/tabs/Tab.vue?57b9","webpack:///./src/core/ui-components/tabs/Tab.vue?7f28","webpack:///./src/project/app/content-pages/NewsArticleTeaser.vue?69b3","webpack:///./src/project/spinners/SpinnerElement.vue?81e9","webpack:///./src/project/app/blocks/CategoryRecommendationsBlock.vue?5358","webpack:///./src/project/app/blocks/ContentBlockContainer.vue?82e6","webpack:///./src/project/app/blocks/ContentBlockContainer.vue","webpack:///./src/project/app/blocks/ContentBlockContainer.vue?4201","webpack:///./src/project/app/blocks/ContentBlockContainer.vue?3612","webpack:///./src/project/app/content-pages/NewsArticleTeaser.vue?7c62","webpack:///./src/project/app/content-pages/NewsArticleTeaser.vue","webpack:///./src/project/app/content-pages/NewsArticleTeaser.vue?e58d","webpack:///./src/project/app/content-pages/NewsArticleTeaser.vue?76cb","webpack:///./src/project/app/blocks/QuoteBlock.vue?d972","webpack:///./src/project/app/blocks/QuoteBlock.vue","webpack:///./src/project/app/blocks/QuoteBlock.vue?d14f","webpack:///./src/project/app/blocks/QuoteBlock.vue?b77e","webpack:///./src/core/ui-components/SmartHeadline.vue","webpack:///./src/core/ui-components/SmartHeadline.vue?38f1","webpack:///./src/core/ui-components/SmartHeadline.vue?2c08","webpack:///./src/project/app/blocks/HeroBannerBlock.vue?6401","webpack:///./src/project/app/blocks/HeroBannerBlock.vue","webpack:///./src/project/app/blocks/HeroBannerBlock.vue?79ba","webpack:///./src/project/app/blocks/HeroBannerBlock.vue?a318","webpack:///./src/project/app/blocks/JotFormBlock.vue?28de","webpack:///./src/project/app/blocks/JotFormBlock.vue","webpack:///./src/project/app/blocks/JotFormBlock.vue?e090","webpack:///./src/project/app/blocks/JotFormBlock.vue?e782","webpack:///./src/core/ui-components/tabs/Tabs.vue?3edd","webpack:///./src/core/ui-components/tabs/Tabs.vue","webpack:///./src/core/ui-components/tabs/Tabs.vue?e940","webpack:///./src/core/ui-components/tabs/Tabs.vue?35b9","webpack:///./src/project/app/blocks/OnePlusTwoBlocks.vue?b5a5","webpack:///./src/project/app/blocks/OnePlusTwoBlocks.vue","webpack:///./src/project/app/blocks/OnePlusTwoBlocks.vue?09c8","webpack:///./src/project/app/blocks/OnePlusTwoBlocks.vue?217c","webpack:///./src/project/spinners/SpinnerElement.vue?fc70","webpack:///./src/project/spinners/SpinnerElement.vue","webpack:///./src/project/spinners/SpinnerElement.vue?4c07","webpack:///./src/project/spinners/SpinnerElement.vue?f339","webpack:///./src/project/app/blocks/categories/CategoryBlockItem.vue?4a09","webpack:///./src/project/app/blocks/CategoryRecommendationsBlock.vue?e249","webpack:///./src/project/app/blocks/CategoryRecommendationsBlock.vue","webpack:///./src/project/app/blocks/CategoryRecommendationsBlock.vue?36b9","webpack:///./src/project/app/blocks/CategoryRecommendationsBlock.vue?7bcd","webpack:///./src/project/app/blocks/ImageTextVideoBlockNew.vue?8ae6","webpack:///./src/project/app/blocks/ImageTextVideoBlockNew.vue","webpack:///./src/project/app/blocks/ImageTextVideoBlockNew.vue?b139","webpack:///./src/project/app/blocks/ImageTextVideoBlockNew.vue?8b33","webpack:///./src/project/app/blocks/FullWidthTextBlock.vue?b65c","webpack:///./src/project/app/blocks/FullWidthTextBlock.vue","webpack:///./src/project/app/blocks/FullWidthTextBlock.vue?05c8","webpack:///./src/project/app/blocks/FullWidthTextBlock.vue?b5b2","webpack:///./src/project/app/blocks/LatestCampaignsBlock.vue?0a42","webpack:///./src/project/app/blocks/LatestCampaignsBlock.vue","webpack:///./src/project/app/blocks/LatestCampaignsBlock.vue?20cf","webpack:///./src/project/app/blocks/LatestCampaignsBlock.vue?d587","webpack:///./src/project/app/blocks/TabbedContentBlock.vue?f8d0","webpack:///./src/project/app/blocks/TabbedContentBlock.vue","webpack:///./src/project/app/blocks/TabbedContentBlock.vue?df29","webpack:///./src/project/app/blocks/TabbedContentBlock.vue?b1e5","webpack:///./src/project/app/blocks/ImageTextVideoBlockNew.vue?ee7c","webpack:///./src/project/app/blocks/BrandRecommendationsBlock.vue?4d83","webpack:///./src/project/product/condensed/CondensedProductList.vue?70cb","webpack:///./src/project/product/condensed/CondensedProductList.vue","webpack:///./src/project/product/condensed/CondensedProductList.vue?4313","webpack:///./src/project/product/condensed/CondensedProductList.vue?b4f7","webpack:///./src/core/messages/WebApiMessage.vue?2848","webpack:///./src/core/messages/WebApiMessage.vue","webpack:///./src/core/messages/WebApiMessage.vue?5af9","webpack:///./src/core/messages/WebApiMessage.vue?0b74","webpack:///./src/project/app/blocks/HalfWidthBlocks.vue?7af7","webpack:///./src/project/app/blocks/HalfWidthBlocks.vue","webpack:///./src/project/app/blocks/HalfWidthBlocks.vue?1ddc","webpack:///./src/project/app/blocks/HalfWidthBlocks.vue?639d","webpack:///./src/project/product/condensed/CondensedProductList.vue?48a1","webpack:///./src/project/app/blocks/LatestCampaignsBlock.vue?06fe","webpack:///./src/project/spinners/SpinnerOverlay.vue?3a72","webpack:///./src/project/spinners/SpinnerOverlay.vue","webpack:///./src/project/spinners/SpinnerOverlay.vue?c950","webpack:///./src/project/spinners/SpinnerOverlay.vue?9066","webpack:///./src/project/app/blocks/BrandsBlock.vue?e90c","webpack:///./src/project/app/blocks/UniqueSellingPointBlock.vue?b41a","webpack:///./src/project/app/blocks/UniqueSellingPointBlock.vue","webpack:///./src/project/app/blocks/UniqueSellingPointBlock.vue?04f4","webpack:///./src/project/app/blocks/UniqueSellingPointBlock.vue?f89b","webpack:///./src/project/app/blocks/newsletter/CancelNewsletterBlock.vue?47be","webpack:///./src/project/app/blocks/newsletter/CancelNewsletterBlock.vue","webpack:///./src/project/app/blocks/newsletter/CancelNewsletterBlock.vue?fd13","webpack:///./src/project/app/blocks/newsletter/CancelNewsletterBlock.vue?1667","webpack:///./src/project/app/content-pages/CampaignTeaser.vue?28aa","webpack:///./src/project/app/content-pages/CampaignTeaser.vue","webpack:///./src/project/app/content-pages/CampaignTeaser.vue?9690","webpack:///./src/project/app/content-pages/CampaignTeaser.vue?23d0","webpack:///./src/project/app/blocks/BrandRecommendationsBlock.vue?65ef","webpack:///./src/project/app/blocks/BrandRecommendationsBlock.vue","webpack:///./src/project/app/blocks/BrandRecommendationsBlock.vue?7a7b","webpack:///./src/project/app/blocks/BrandRecommendationsBlock.vue?bb3d"],"names":["render","_vm","this","_h","$createElement","_c","_self","products","length","class","appendToPreviousBlock","attrs","headline","headlineClasses","isFirstBlock","trackingListName","content","useListView","listViewPageSize","productBackgroundColor","resultFailed","noResultText","domProps","_s","_e","staticRenderFns","result","undefined","searchTerm","recommendations","recommendSearchTerm","categoryIdFilterPositiveList","categoryIdFilterNegativeList","displayedAtLocation","displayLocation","categoryId","productCount","allowFillIfNecessary","brandId","brandIdFilterList","hasImages","stockFilter","showFeedProducts","recommend","intervalDays","interval","popularityType","popularity","productId","getQueryParam","wid","recommendationType","type","error","key","Object","keys","filter","v","isNaN","Number","find","k","$route","name","getProductData","required","Boolean","default","String","components","CondensedProductList","component","staticClass","style","linkUrl","linkTarget","isPixelImage","backgroundColorStyle","iconBackgroundColor","directives","rawName","iconUrl","width","height","_v","text","linkName","icon","url","shortText","link","target","indexOf","color","backgroundColor","isColorDefined","_l","item","ix","categoryItems","customBackgroundColor","red","green","blue","isDarkBackground","theme","colors","white","black","paddingBottom","textColor","getCategoryItems","settings","selectedAdUnitIdContent","adUnitId","personalization","categories","fullPath","getContactKey","getCustomerKey","CategoryBlockItem","SmartHeadline","brands","linkText","brandOverviewPageName","brand","brandPageName","params","brandName","value","imageLoadFailed","expression","imageUrl","on","$event","imageLoadError","$dictionary","get","getCategoryIdFromUrl","regMatcher","matchingRegEx","match","replace","categoriesRegEx","RegExp","isLoading","BRAND","BRAND_OVERVIEW","categoryIdFromUrl","path","customer","brandTiles","isLoggedIn","$forceUpdate","getBrandTiles","ref","bodyText","callToActionColor","callToAction","html","wrapTableInOuterDivs","registerTableOverflow","$refs","htmlContent","unregisterTableOverflow","oldWidthNHeight","wrappersAndTables","Set","toggleHorisontalScroll","table","wrapper","clientWidth","classList","add","remove","viewPortChangeEventHandler","viewport","newWidthNHeight","forEach","x","containingElement","Error","wrappers","querySelectorAll","size","setCallback","querySelector","countBefore","delete","removeCallback","replaceFunc","replaceEx","renderedPixelUrl","visiblePixelUrl","viewPixelUrl","clickPixelUrl","scopedSlots","_u","fn","click","categoryUrl","nativeOn","apply","arguments","categoryDisplayName","getUrlForMenuItem","campaignUrl","getPageUrl","AdnuntiusPixels","header","loading","productIds","product","simpleByItemId","getProducts","news","id","sliderOptions","index","prevButtonSelector","slot","nextButtonSelector","firstNews","Date","valueOf","spaceBetween","slidesPerView","slidesPerGroup","loop","loopFillGroupWithBlank","watchSlidesVisibility","watchOverflow","setWrapperSize","navigation","nextEl","prevEl","grabCursor","instanceName","observer","observeParents","observeSlideChildren","NewsArticleTeaser","placeImageRight","image","imageFormat","focalPoint","subHeadline","headlineColor","subHeadlineColor","isTakeOverBanner","leftImage","rightImage","primaryBanner","adContent","small1Banner","small2Banner","hidden","loadError","trackingData","aspectRatio","imageLoaded","rendered","colorStyle","headerColor","subheaderColor","subheader","clickHandler","isBreakpointActive","styling","backgroundImage","backgroundImages","isMobile","setStyleAspectRatioOnDesktop","element","elementWidth","getBoundingClientRect","heightRatio","minHeight","backgroundSize","backgroundPosition","flex","backgroundRepeat","contentBackgroundColor","semiTransparent","makeContentBackgroundTransparent","semiTransparencyPercentage","hexToRgbWithDefault","hex","alpha","hexColor","defailtColor","$nextTick","$el","shimColor","hoverL","setProperty","Function","isFirst","loadAdContent","setTimeout","setThemeLoaded","requests","callAdContent","feedback","request","getAdContent","then","lineItemId","creativeId","parentBlockAlias","applyTheme","catch","push","smallAdUnit1","smallAdUnit2","Promise","all","getBundledPersonalizedContent","adContentBlockViewModel","isBackgroundVideo","vimeoVideoId","overlayVimeoVideoId","overlayVimeoCta","isTakeOverEnabled","styles","marginColor","isPrimaryBannerVideoBackground","marginTop","imageLeft","Math","floor","getScrollbarWidth","transform","scrollBarWidth","imageRight","ImageTextVideoBlock","SmallImageTextBlock","showBlockOnMobile","usp","uspIndex","uniqueSellingPointsMobileClasses","uspItems","isIconExtensionSvg","svgIconStyle","uniqueSellingPointItems","i","sort","random","uniqueSellingPointsColor","uniqueSellingPointsBackgroundColor","extension","toLowerCase","mask","maskSize","EETBlack","_t","active","selected","hash","getHash","setHash","adnuntiusTrackingData","_b","contentLoadError","$attrs","isHalfWidthBlock","isHeroBanner","parentAlias","UniqueSellingPointBlock","AllowedBlocks","alias","$emit","isAdUnitContent","validator","includes","SimpleUniqueSellingPointsBlock","ImageTextVideoBlockNew","TextBlock","JotFormBlock","GoogleMapsBlock","CancelNewsletterBlock","newsImageFormat","isOprema","date","teaser","SmartParagraph","quote","author","h","data","$props","h1","styleAsH1","level","$slots","staticStyle","allowTransparency","allowFullscreen","allowScrolling","jotformSrc","jotFormId","window","addEventListener","handleIFrameMessage","removeEventListener","e","iframe","jotform","args","split","_window","scrollIntoView","clientHeight","innerHeight","src","script","document","createElement","body","appendChild","exitFullscreen","mozCancelFullScreen","mozCancelFullscreen","webkitExitFullscreen","msExitFullscreen","isJotForm","origin","contentWindow","urls","docurl","encodeURIComponent","URL","referrer","postMessage","JSON","stringify","headerClass","tab","activeTab","toggle","contentClass","tabs","bus","emit","$children","$options","isActive","setup","blockAlignmentRight","largeBlock","halfWidthBlocksOne","halfWidthBlocksTwo","largeBlockAlignmentValue","Left","halfWidthBlocks","ContentBlockContainer","category","handleSlideVisible","viewed","handleClickCategory","imageIndex","resizeImageByPath","uri","x1","displayName","$localeNumberFilter","brandCount","activeBreakpoint","debouncedTrackCategoryViewed","doTrackCategoryViewed","viewedCategories","slidesPerGroupAuto","newBreakpoint","getActiveBreakpoint","recommendByCategory","periodDays","categoryCount","formatImageUrl","ImageSizePlaceholderValues","W86","x2","W172","trackCreativeClick","trackCreativeView","getCategoryData","addListener","handleBreakpointChange","removeListener","shouldUseFlexBox","hasTextContent","showCaptionAsContentTitle","caption","elementClasses","video","hasNoVideoOrVideoHasBeenLoaded","loadingVideo","showHtmlCustomControls","isPlaying","isWithinWideBannerAspectRatio","isBackgroundImageBehaviorImageDimensions","alignRight","captionColor","headerHeadlineLevel","ctaColor","clickOpenVideoOverlay","renderContent","toggleVideoState","mobileAspectRatio","videoAspectRatio","wideBannerAspectRatio","vimeoVideoAspectRatio","backgroundImageWidth","useFlexBox","classes","showBackgroundImage","backgroundImageBehavior","elWidth","imageAspectRatio","top","newBackgroundWidth","newBackgroundHeight","upsizeFactor","doResize","allowUpscale","round","backgroundImageUrl","left","paddingPct","realAspectRatio","margin","quality","firstSeparator","focal","qualityFormatted","format","absoluteImageUrl","getBaseUrl","forceVimeoAspectRatio","widthOnScreen","aspectRatioMargins","activeBpDef","bpDef","initVideo","videoMount","onloadeddata","options","ensureId","autoplay","muted","controls","showVideoControls","title","byline","portrait","opremayellow","autopause","console","log","getVimeoVideoAspectRatio","idOrUrl","idParts","parseInt","contentAligmentValue","contentWidthValue","TwoThird","FullWidth","subheaderFontSizeValue","Large","Normal","delayedVideoAspectRatio","getVideoWidth","getVideoHeight","minSize","subheaderSize","min","max","pause","play","shouldShowContentBackground","translateY","Right","widthCls","OneThird","adImages","img","isMatchingImageAspectRatio","allowedDelta","abs","adnuntiusImages","srcset","map","join","imageA","imageB","sizes","realWidthOnScreen","opacity","videoContainerMoreNarrowThanVideo","captionLocation","adImageProps","showCallToActionButton","show","immediate","SpinnerOverlay","CallToAction","campaigns","campaign","anyCampaignWithImageOrIcon","firstCampaign","c","showIcon","autoHeight","CampaignTeaser","keepAlive","blocks","Tabs","Tab","productImpression","productClick","productColor","relationType","itemId","page","handleNextPage","p","productBgColor","setSlidesPerView","Array","ProductListTracker","messages","message","getMessage","errorId","deleteMessageAtIndex","onMessages","splice","validationErrorEvent","messagesId","handled","msgOrLabel","exists","off","block","_uid","isSiblingVimeoVideo","failingBlocks","siblingIndex","sibling","b","uid","doShow","startTime","change","performance","now","delay","timeShown","restTime","minDuration","SpinnerElement","isInHalfWidth","wrapperClass","pointsClass","itemClasses","itemTextStyle","UniqueSellingPointItem","success","subtitle","handleSubmit","preventDefault","submit","model","callback","$$v","email","newsletter","unsubscribe","WebApiMessage","forceImageThumb","xs","md","lg","iconInImage","defaultCampaignIcon","campaignName","endDate","buttonText","recommendedBrands","getBrandUrl","handleClickBrand","brandLogo","isSimpleView","debouncedTrackBrandViewed","doTrackBrandViewed","viewedBrands","recommendPopularBrands","useDiverseRecommendations","creative","getBrandData","ResponsiveIcon"],"mappings":"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","file":"js/basic-blocks.d48492fc.js","sourcesContent":["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!./UniqueSellingPointItem.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!./UniqueSellingPointItem.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!./CampaignTeaser.vue?vue&type=style&index=0&id=57ac20d2&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!./CampaignTeaser.vue?vue&type=style&index=0&id=57ac20d2&lang=less&scoped=true&\"","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!./TextWithImageBlock.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!./TextWithImageBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.products.length > 0)?_c('CondensedProductList',{class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock },attrs:{\"headline\":_vm.headline,\"headline-classes\":_vm.headlineClasses,\"is-first-block\":_vm.isFirstBlock,\"products\":_vm.products,\"tracking-list-name\":_vm.trackingListName,\"use-swiper\":!_vm.content.useListView,\"list-view-page-size\":_vm.listViewPageSize,\"product-bg-color\":_vm.content.productBackgroundColor}}):(_vm.resultFailed && _vm.noResultText)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.noResultText)}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { ProductRecommendationsBlockViewModel } from '@/types/contentServerContract';\r\nimport { ProductRecommendationType, ProductTileViewModel, ProductTileViewObject } from '@/types/apiServerContract';\r\nimport loggingService from '@/core/logging.service';\r\nimport Api from '@/project/http/Api.service';\r\nimport CondensedProductList from '@/project/product/condensed/CondensedProductList.vue';\r\nimport urlHelperService from '@/core/urlHelper.service';\r\nimport { UrlQueryKey } from '@/core/urlQueryKey';\r\n\r\n@Component({\r\n components: { CondensedProductList }\r\n})\r\nexport default class ProductRecommendationsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n })\r\n content!: ProductRecommendationsBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n })\r\n isFirstBlock!: boolean;\r\n\r\n @Prop()\r\n headlineClasses!: string;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n @Prop({\r\n required: false,\r\n type: String\r\n })\r\n productId!: string | undefined;\r\n\r\n @Prop({\r\n required: false,\r\n type: String\r\n })\r\n searchTerm!: string | undefined;\r\n\r\n @Prop({\r\n required: false,\r\n type: String\r\n })\r\n noResultText!: string | undefined;\r\n\r\n result: ProductTileViewModel | null = null;\r\n resultFailed: boolean = false;\r\n\r\n get products(): ProductTileViewObject[] {\r\n return this.result ? this.result.products : [];\r\n }\r\n\r\n get listViewPageSize(): undefined | number {\r\n return this.content.useListView ? 4 : undefined;\r\n }\r\n\r\n async getProductData() {\r\n try {\r\n if (this.searchTerm?.length) {\r\n this.result = await Api.recommendations.recommendSearchTerm({\r\n categoryIdFilterPositiveList: this.content.categoryIdFilterPositiveList,\r\n categoryIdFilterNegativeList: this.content.categoryIdFilterNegativeList,\r\n displayedAtLocation: this.content.displayLocation,\r\n categoryId: this.content.categoryId,\r\n productCount: this.content.productCount,\r\n allowFillIfNecessary: this.content.allowFillIfNecessary,\r\n brandId: this.content.brandId,\r\n brandIdFilterList: this.content.brandIdFilterList,\r\n hasImages: this.content.hasImages,\r\n stockFilter: this.content.stockFilter,\r\n showFeedProducts: this.content.showFeedProducts,\r\n searchTerm: this.searchTerm\r\n });\r\n } else {\r\n this.result = await Api.recommendations.recommend({\r\n categoryIdFilterPositiveList: this.content.categoryIdFilterPositiveList,\r\n categoryIdFilterNegativeList: this.content.categoryIdFilterNegativeList,\r\n displayedAtLocation: this.content.displayLocation,\r\n intervalDays: this.content.interval,\r\n popularityType: this.content.popularity,\r\n categoryId: this.content.categoryId,\r\n productId: this.productId || urlHelperService.getQueryParam(UrlQueryKey.wid),\r\n productCount: this.content.productCount,\r\n recommendationType: this.content.type,\r\n allowFillIfNecessary: this.content.allowFillIfNecessary,\r\n brandId: this.content.brandId,\r\n brandIdFilterList: this.content.brandIdFilterList,\r\n hasImages: this.content.hasImages,\r\n stockFilter: this.content.stockFilter,\r\n showFeedProducts: this.content.showFeedProducts\r\n });\r\n }\r\n } catch (e) {\r\n loggingService.error(e);\r\n this.resultFailed = true;\r\n }\r\n }\r\n\r\n get headline(): string | undefined {\r\n return this.content?.headline;\r\n }\r\n\r\n get trackingListName():string {\r\n const key = Object.keys(ProductRecommendationType).filter((v) => isNaN(Number(v))).find(k => ProductRecommendationType[k] === this.content.type) || 'recommendation';\r\n // format: recommendation/relation - page type - recommendation type\r\n return `recommendations-${this.$route.name}-${key}`;\r\n }\r\n\r\n created() {\r\n this.getProductData();\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!./ProductRecommendationsBlock.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!./ProductRecommendationsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductRecommendationsBlock.vue?vue&type=template&id=544f1bec&\"\nimport script from \"./ProductRecommendationsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductRecommendationsBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"flex flex-wrap flex-col justify-start items-center f-basis\"},[(_vm.linkUrl)?_c('culture-aware-router-link',{staticClass:\"flex flex-wrap flex-col justify-start items-center c-usp-item__link-content\",style:(_vm.textStyle),attrs:{\"to\":_vm.linkUrl,\"target\":_vm.linkTarget}},[(_vm.iconUrl)?_c('div',{staticClass:\"w-80 h-80 flex justify-center align-center mb-15\",class:{'bg-gray-300 rounded-full': !_vm.isPixelImage},style:(_vm.backgroundColorStyle(_vm.content.iconBackgroundColor))},[_c('img',{directives:[{name:\"on-error\",rawName:\"v-on-error\"}],staticClass:\"self-center h-full\",class:{'max-w-usp-icon max-h-usp-icon': !_vm.isPixelImage},attrs:{\"src\":_vm.iconUrl,\"width\":_vm.width,\"height\":_vm.height,\"loading\":\"lazy\",\"alt\":\"\"}})]):_vm._e(),(_vm.headline)?_c('h2',{staticClass:\"text-18 lh-normal font-bold text-center mb-3 w-full\"},[_vm._v(\" \"+_vm._s(_vm.headline)+\" \")]):_vm._e(),(_vm.text)?_c('p',{staticClass:\"text-center mb-3 w-full\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]):_vm._e(),_c('span',{staticClass:\"c-usp-item__text underline hover:no-underline text-center\"},[_vm._v(_vm._s(_vm.linkName))])]):_c('div',{staticClass:\"flex flex-wrap flex-col justify-start items-center\"},[(_vm.iconUrl)?_c('div',{staticClass:\"w-80 h-80 flex justify-center align-center mb-15\",class:{'bg-gray-300 rounded-full': !_vm.isPixelImage},style:(_vm.backgroundColorStyle(_vm.content.iconBackgroundColor))},[_c('img',{directives:[{name:\"on-error\",rawName:\"v-on-error\"}],staticClass:\"self-center h-full\",class:{'c-usp-item__icon-svg': !_vm.isPixelImage},attrs:{\"src\":_vm.iconUrl,\"width\":_vm.width,\"height\":_vm.height,\"loading\":\"lazy\",\"alt\":\"\"}})]):_vm._e(),(_vm.headline)?_c('h2',{staticClass:\"text-18 lh-normal font-bold text-center mb-3 w-full\"},[_vm._v(\" \"+_vm._s(_vm.headline)+\" \")]):_vm._e(),(_vm.text)?_c('p',{staticClass:\"text-center mb-3 w-full\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]):_vm._e()])],1)}\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\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { UniqueSellingPointItemViewModel } from '@/types/contentServerContract';\r\n\r\n@Component\r\nexport default class UniqueSellingPointItem extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: UniqueSellingPointItemViewModel;\r\n\r\n @Prop()\r\n textStyle!: Partial;\r\n\r\n get iconUrl() {\r\n return this.content.icon?.url;\r\n }\r\n\r\n get headline() {\r\n return this.content?.headline;\r\n }\r\n\r\n get text() {\r\n return this.content?.shortText;\r\n }\r\n\r\n get linkUrl() {\r\n return this.content.link?.url;\r\n }\r\n\r\n get linkTarget() {\r\n return this.content.link?.target;\r\n }\r\n\r\n get linkName() {\r\n return this.content.link?.name;\r\n }\r\n\r\n get isPixelImage() {\r\n return this.iconUrl.indexOf('.jpg') !== -1 || this.iconUrl.indexOf('.jpeg') !== -1 || this.iconUrl.indexOf('.png') !== -1;\r\n }\r\n\r\n get width() {\r\n return this.isPixelImage ? 80 : 40;\r\n }\r\n\r\n get height() {\r\n return this.isPixelImage ? 80 : 40;\r\n }\r\n\r\n isColorDefined(color: string): boolean {\r\n return color?.length === 7 ?? false; // #233445\r\n }\r\n\r\n backgroundColorStyle(backgroundColor: string): object {\r\n let result = '';\r\n\r\n if (this.isColorDefined(backgroundColor)) {\r\n result = backgroundColor;\r\n }\r\n\r\n return ({\r\n backgroundColor: result\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!./UniqueSellingPointItem.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!./UniqueSellingPointItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UniqueSellingPointItem.vue?vue&type=template&id=63ccf789&\"\nimport script from \"./UniqueSellingPointItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./UniqueSellingPointItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UniqueSellingPointItem.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 _c('article',{class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('smart-headline',{staticClass:\"ml-15 md:ml-0 text-18 md:text-36 font-regular my-30\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]),_c('div',{staticClass:\"flex flex-wrap justify-center\",style:(_vm.style)},_vm._l((_vm.categoryItems),function(item,ix){return _c('category-block-item',{key:ix,attrs:{\"content\":item}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { CategoryItemViewModel } from '@/types/apiServerContract';\r\nimport { CategoryBlockViewModel } from '@/types/contentServerContract';\r\nimport Api from '@/project/http/Api.service';\r\nimport adnuntiusService from '@/project/personalization/adnuntius.service';\r\nimport CategoryBlockItem from './CategoryBlockItem.vue';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport { hexToRgbValues, luma } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\n\r\n@Component({\r\n components: { CategoryBlockItem, SmartHeadline }\r\n})\r\nexport default class CategoryBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: CategoryBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n get backgroundColor() {\r\n return this.content.customBackgroundColor\r\n ? this.content.customBackgroundColor\r\n : this.content.backgroundColor ? '#' + this.content.backgroundColor : undefined;\r\n }\r\n\r\n get textColor() {\r\n if (!this.backgroundColor) return undefined;\r\n const { red, green, blue } = hexToRgbValues(this.backgroundColor);\r\n const isDarkBackground = luma(red, green, blue) <= 0.5;\r\n return isDarkBackground ? tailwind.theme.colors.white : tailwind.theme.colors.black;\r\n }\r\n\r\n get style(): Partial {\r\n return {\r\n backgroundColor: this.backgroundColor,\r\n ...(this.backgroundColor && { paddingBottom: '15px' }),\r\n color: this.textColor\r\n };\r\n }\r\n\r\n categoryItems: CategoryItemViewModel[] = [];\r\n\r\n created() {\r\n this.getCategoryItems(this.content.settings?.selectedAdUnitIdContent?.adUnitId);\r\n }\r\n\r\n async getCategoryItems(adUnitId: string) {\r\n if (adUnitId) return;\r\n this.categoryItems = await Api.personalization.categories(\r\n adUnitId,\r\n this.$route.fullPath,\r\n adnuntiusService.getContactKey(),\r\n adnuntiusService.getCustomerKey());\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!./CategoryBlock.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!./CategoryBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryBlock.vue?vue&type=template&id=293c18d6&\"\nimport script from \"./CategoryBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.brands && _vm.brands.length > 0)?_c('article',{staticClass:\"o-chrome-container flex flex-col\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('div',{staticClass:\"flex md:justify-between\"},[(_vm.content.headline)?_c('SmartHeadline',{staticClass:\"text-18 md:text-34\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),(_vm.content.linkText)?_c('div',{staticClass:\"hidden md:inline-block\"},[_c('CallToAction',{staticClass:\"cta--blue-light\",attrs:{\"text\":_vm.content.linkText,\"href\":{ name: _vm.brandOverviewPageName }}})],1):_vm._e()],1),_c('ul',{staticClass:\"flex flex-wrap\"},[(_vm.isLoading)?_c('li',{staticClass:\"min-h-200\"}):_vm._e(),_vm._l((_vm.brands),function(brand){return _c('li',{key:brand.brandId,staticClass:\"c-brandblock--item my-15 md:my-30\"},[_c('CultureAwareRouterLink',{staticClass:\"c-brandblock--item-link flex items-center justify-center\",attrs:{\"to\":{ name: _vm.brandPageName, params: { brandName: brand.brandName } }}},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!brand.imageLoadFailed),expression:\"!brand.imageLoadFailed\"}],staticClass:\"c-brandblock--item-logo\",attrs:{\"src\":brand.imageUrl,\"alt\":brand.brandName},on:{\"error\":function($event){return _vm.imageLoadError(brand)}}}),_c('span',{class:{ 'sr-only': !brand.imageLoadFailed }},[_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.$dictionary.get('BrandHero.BrandLogo.SeeAllProductsFrom')))]),_vm._v(\" \"+_vm._s(brand.brandName)+\" \")])])],1)})],2),(_vm.content.linkText)?_c('div',{staticClass:\"md:hidden\"},[_c('CallToAction',{staticClass:\"cta--blue-light\",attrs:{\"text\":_vm.content.linkText,\"href\":{ name: _vm.brandPageName }}})],1):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n/c-1-24\r\n/xxxxx/c-1-22\r\n/xxxxx/yyyy/c-2-343244\r\n*/\r\n\r\nfunction getCategoryIdFromUrl(url: string): string | null {\r\n const regMatcher = matchingRegEx();\r\n\r\n const match = url.match(regMatcher);\r\n if (match && match.length === 2) {\r\n return match[1].replace(/-/g, '_');\r\n }\r\n return null;\r\n}\r\n\r\nfunction matchingRegEx(): RegExp {\r\n // Create new one every time - RegEx is stateful.\r\n const categoriesRegEx = /c-([\\d,-]+)/i;\r\n return new RegExp(categoriesRegEx);\r\n}\r\n\r\nexport default {\r\n getCategoryIdFromUrl,\r\n matchingRegEx\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport Api from '@/project/http/Api.service';\r\nimport { BrandsBlockViewModel } from '@/types/contentServerContract';\r\nimport { CustomerBrandTileViewObject } from '@/types/apiServerContract';\r\nimport categoryUrlService from '@/project/shared/category.service';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport { PageName } from '@/router/routes/constants';\r\nimport authService from '@/core/auth/auth.service';\r\ninterface CustomerBrandTileViewObjectExtended extends CustomerBrandTileViewObject {\r\n imageLoadFailed?: boolean;\r\n}\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class BrandsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: BrandsBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n isLoading: boolean = true;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n brands: CustomerBrandTileViewObjectExtended[] = [];\r\n\r\n get brandPageName() {\r\n return PageName.BRAND;\r\n }\r\n\r\n get brandOverviewPageName() {\r\n return PageName.BRAND_OVERVIEW;\r\n }\r\n\r\n async getBrandTiles() {\r\n const categoryIdFromUrl = categoryUrlService.getCategoryIdFromUrl(this.$route.path);\r\n const result = await Api.customer.brandTiles(categoryIdFromUrl);\r\n this.brands = result.brandTiles;\r\n this.isLoading = false;\r\n }\r\n\r\n get isUserLoggedIn(): boolean {\r\n return authService.isLoggedIn();\r\n }\r\n\r\n imageLoadError(brand) {\r\n brand.imageLoadFailed = true;\r\n this.$forceUpdate();\r\n }\r\n\r\n created() {\r\n this.getBrandTiles();\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!./BrandsBlock.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!./BrandsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandsBlock.vue?vue&type=template&id=7dffeeda&\"\nimport script from \"./BrandsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandsBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandsBlock.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 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!./AdnuntiusHeroBannerBlock.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!./AdnuntiusHeroBannerBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"h-full\",class:{ 'p-20 md:p-30 lg:p-40 has-background': _vm.backgroundColor },style:({ 'background-color': _vm.backgroundColor })},[_c('div',[_c('div',[(_vm.content.headline)?_c('smart-headline',{staticClass:\"mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),_c('section',{directives:[{name:\"delegate-html-links\",rawName:\"v-delegate-html-links\"},{name:\"delegate-on-img-error\",rawName:\"v-delegate-on-img-error\"}],ref:\"htmlContent\",staticClass:\"wysiwyg text-block\",domProps:{\"innerHTML\":_vm._s(_vm.bodyText(_vm.content.bodyText))}}),(_vm.content.callToAction)?_c('call-to-action',{staticClass:\"cta--rounded mt-20\",attrs:{\"hex-color\":_vm.content.callToActionColor,\"text\":_vm.content.callToAction.name,\"href\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target}}):_vm._e()],1)])])}\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\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { TextBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport tableHtmlService from './tableHtml.service';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class TextBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: TextBlockViewModel;\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 backgroundColor() {\r\n return this.content.backgroundColor ? `#${this.content.backgroundColor}` : null;\r\n }\r\n\r\n bodyText(html: string): string {\r\n return tableHtmlService.wrapTableInOuterDivs(html);\r\n }\r\n\r\n $refs!: Vue['$refs'] & {\r\n htmlContent: HTMLElement\r\n }\r\n\r\n mounted() {\r\n tableHtmlService.registerTableOverflow(this.$refs.htmlContent);\r\n }\r\n\r\n beforeDestroy() {\r\n tableHtmlService.unregisterTableOverflow(this.$refs.htmlContent);\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!./TextBlock.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!./TextBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextBlock.vue?vue&type=template&id=77e56a6f&\"\nimport script from \"./TextBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextBlock.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!./LatestNewsBlock.vue?vue&type=style&index=0&id=7d1aae48&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!./LatestNewsBlock.vue?vue&type=style&index=0&id=7d1aae48&lang=less&scoped=true&\"","import viewportEvents, { Viewport } from '@/core/responsive/viewport/viewportEvents.service';\r\n\r\ninterface WrapperAndTable {\r\n containingElement: HTMLElement,\r\n wrapper: HTMLElement,\r\n table: HTMLElement\r\n}\r\n\r\nlet oldWidthNHeight = 0;\r\n\r\nconst wrappersAndTables = new Set();\r\n\r\nfunction toggleHorisontalScroll(table: HTMLElement, wrapper: HTMLElement) {\r\n if (table.clientWidth > wrapper.clientWidth) {\r\n wrapper.classList.add('has-scroll');\r\n } else {\r\n wrapper.classList.remove('has-scroll');\r\n }\r\n}\r\n\r\nfunction viewPortChangeEventHandler(viewport: Viewport) {\r\n const newWidthNHeight = viewport.width + viewport.height;\r\n if (newWidthNHeight === oldWidthNHeight) return;\r\n oldWidthNHeight = newWidthNHeight;\r\n\r\n wrappersAndTables.forEach(x => {\r\n toggleHorisontalScroll(x.table, x.wrapper);\r\n });\r\n}\r\n\r\nfunction registerTableOverflow(containingElement: HTMLElement) {\r\n if (!containingElement) throw new Error('containingElement must not be undefined!');\r\n const wrappers = containingElement.querySelectorAll('.scrollable') as NodeListOf;\r\n if (wrappersAndTables.size === 0) {\r\n viewportEvents.setCallback(viewPortChangeEventHandler);\r\n }\r\n wrappers.forEach(wrapper => {\r\n const table = wrapper.querySelector('table') as HTMLTableElement;\r\n if (table) {\r\n wrappersAndTables.add({\r\n containingElement,\r\n wrapper,\r\n table\r\n });\r\n toggleHorisontalScroll(table, wrapper);\r\n }\r\n });\r\n}\r\n\r\nfunction unregisterTableOverflow(containingElement: HTMLElement) {\r\n if (!containingElement) throw new Error('containingElement must not be undefined!');\r\n const countBefore = wrappersAndTables.size;\r\n wrappersAndTables.forEach(x => {\r\n if (x.containingElement === containingElement) {\r\n wrappersAndTables.delete(x);\r\n }\r\n });\r\n if (countBefore > 0 && wrappersAndTables.size === 0) {\r\n viewportEvents.removeCallback(viewPortChangeEventHandler);\r\n }\r\n}\r\n\r\nfunction wrapTableInOuterDivs(html: string): string {\r\n function replaceFunc(...params: string[]): string {\r\n return `
${params[0]}
`;\r\n }\r\n\r\n const replaceEx = /(]*>[^]*?<\\/table>)/ig;\r\n\r\n return html.replace(replaceEx, replaceFunc);\r\n}\r\n\r\nexport default {\r\n registerTableOverflow,\r\n unregisterTableOverflow,\r\n wrapTableInOuterDivs\r\n};\r\n","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.products.length > 0)?_c('CondensedProductList',{attrs:{\"headline\":_vm.content.header,\"is-first-block\":_vm.isFirstBlock,\"products\":_vm.products,\"use-swiper\":\"\",\"tracking-list-name\":(\"productListBlock-\" + (_vm.$route.name)),\"product-bg-color\":_vm.content.productBackgroundColor}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { ProductListBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport CondensedProductList from '@/project/product/condensed/CondensedProductList.vue';\r\nimport { ProductTileViewObject } from '@/types/apiServerContract';\r\nimport Api from '@/project/http/Api.service';\r\n\r\n@Component({\r\n components: { SmartHeadline, CondensedProductList }\r\n})\r\nexport default class ProductListBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: ProductListBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n }) isFirstBlock!: boolean;\r\n\r\n products: ProductTileViewObject[] = [];\r\n loading: boolean = false;\r\n\r\n async getProducts() {\r\n if (this.content.productIds.length === 0) return;\r\n\r\n this.loading = true;\r\n\r\n try {\r\n const result = await Api.product.simpleByItemId(this.content.productIds);\r\n this.products = result.products;\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n created() {\r\n this.getProducts();\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!./ProductListBlock.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!./ProductListBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductListBlock.vue?vue&type=template&id=6b84b68b&\"\nimport script from \"./ProductListBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductListBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"relative w-full overflow-visible\"},[(_vm.content.headline && _vm.news.length)?_c('SmartHeadline',{staticClass:\"mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.news),function(news,index){return _c('SwiperSlide',{key:index,staticClass:\"news-wrapper\"},[_c('NewsArticleTeaser',{attrs:{\"news\":news}})],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)}\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\r\nimport { NewsPageViewModel } from '@/types/contentServerContract';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport NewsArticleTeaser from '@/project/app/content-pages/NewsArticleTeaser.vue';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\n\r\n@Component({\r\n components: { NewsArticleTeaser, SmartHeadline }\r\n})\r\nexport default class LatestNewsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: NewsPageViewModel;\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 news() {\r\n return [this.content.firstNews, ...this.content.news];\r\n }\r\n\r\n get id() {\r\n return 'latest-news-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: 'auto',\r\n slidesPerGroup: 1,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: 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 };\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!./LatestNewsBlock.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!./LatestNewsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LatestNewsBlock.vue?vue&type=template&id=7d1aae48&scoped=true&\"\nimport script from \"./LatestNewsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./LatestNewsBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LatestNewsBlock.vue?vue&type=style&index=0&id=7d1aae48&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 \"7d1aae48\",\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 _c('article',{staticClass:\"text-image-block flex flex-wrap\"},[(_vm.content.image)?_c('div',{staticClass:\"text-image-block__item\",class:{'sm:order-1 sm:ml-10' : _vm.content.placeImageRight, 'sm:mr-10' : !_vm.content.placeImageRight}},[_c('responsive-image',{attrs:{\"image-url\":_vm.content.image.url,\"format\":_vm.imageFormat,\"mode\":\"crop\",\"focal-point\":_vm.content.image.focalPoint,\"alt\":\"\"}})],1):_vm._e(),_c('div',{class:{'text-image-block__item' : _vm.content.image, 'sm:mr-10' : _vm.content.placeImageRight && _vm.content.image, 'sm:ml-10' : !_vm.content.placeImageRight && _vm.content.image, 'w-full' : !_vm.content.image}},[_c('div',{staticClass:\"text-image-block__content bg-white p-20 lg:p-40\"},[(_vm.content.headline)?_c('smart-headline',{staticClass:\"uppercase text-12 font-bold text-blue-700\",class:{'mb-10 sm:mb-15' : _vm.content.subHeadline},style:({'color' : _vm.headlineColor}),attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2'}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),(_vm.content.subHeadline)?_c('smart-headline',{staticClass:\"h1 text-blue-700\",class:{'mb-10 sm:mb-15' : _vm.content.text},style:({'color' : _vm.subHeadlineColor}),attrs:{\"level\":_vm.isFirstBlock ? 'h2' : 'h3'}},[_vm._v(\" \"+_vm._s(_vm.content.subHeadline)+\" \")]):_vm._e(),(_vm.content.text)?_c('div',{directives:[{name:\"delegate-html-links\",rawName:\"v-delegate-html-links\"},{name:\"delegate-on-img-error\",rawName:\"v-delegate-on-img-error\"}],staticClass:\"wysiwyg theme-text-linkcolor leading-normal text-15 md:text-22\",class:{'mb-15 sm:mb-20' : _vm.content.callToAction},style:({'color' : _vm.textColor}),domProps:{\"innerHTML\":_vm._s(_vm.content.text)}}):_vm._e(),(_vm.content.callToAction)?_c('call-to-action',{staticClass:\"cta--rounded\",attrs:{\"hex-color\":_vm.content.callToActionColor,\"text\":_vm.content.callToAction.name,\"href\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target}}):_vm._e()],1)])])}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { TextWithImageBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport { extensionIsGifOrUndefined } from '@/project/shared/responsive-umbraco-image.service';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class TextWithImageBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: TextWithImageBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n get headlineColor() {\r\n return this.content.headlineColor ?? null;\r\n }\r\n\r\n get subHeadlineColor() {\r\n return this.content.subHeadlineColor ?? null;\r\n }\r\n\r\n get textColor() {\r\n return this.content.textColor ?? null;\r\n }\r\n\r\n get imageFormat(): string | undefined {\r\n return extensionIsGifOrUndefined(this.content?.image);\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!./TextWithImageBlock.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!./TextWithImageBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextWithImageBlock.vue?vue&type=template&id=61862716&\"\nimport script from \"./TextWithImageBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextWithImageBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextWithImageBlock.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 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!./OnePlusTwoBlocks.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!./OnePlusTwoBlocks.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"adnuntius-hero-banner\",class:{ 'no-container': _vm.isTakeOverBanner, '-is-appended-to-prev-block': _vm.appendToPreviousBlock },style:(_vm.marginStyle)},[(_vm.leftImage)?_c('img',{staticClass:\"left-bannner\",style:(_vm.leftImagePosition),attrs:{\"src\":_vm.leftImage,\"alt\":\"\"}}):_vm._e(),(_vm.rightImage)?_c('img',{staticClass:\"right-banner\",style:(_vm.rightImagePosition),attrs:{\"src\":_vm.rightImage,\"alt\":\"\"}}):_vm._e(),_c('div',{class:{\n 'center-banner': _vm.primaryBanner.adContent && !(_vm.small1Banner.adContent && _vm.small2Banner.adContent),\n 'o-grid': (_vm.small1Banner.adContent || _vm.small2Banner.adContent),\n 'o-container': _vm.isTakeOverBanner,\n 'o-container--bleed' : _vm.isFirstBlock, hidden: _vm.primaryBanner.loadError\n }},[(_vm.primaryBanner.adContent)?_c('AdnuntiusPixels',{class:{\n 'o-grid--item w-full': _vm.primaryBanner.adContent && (_vm.small1Banner.adContent || _vm.small2Banner.adContent),\n 'lg:w-10/12': (_vm.small1Banner.adContent || _vm.small2Banner.adContent) && !(_vm.small1Banner.adContent && _vm.small2Banner.adContent),\n 'lg:w-2/3': _vm.small1Banner.adContent && _vm.small2Banner.adContent\n },attrs:{\"rendered-url\":_vm.primaryBanner.adContent.renderedPixelUrl,\"visible-url\":_vm.primaryBanner.adContent.visiblePixelUrl,\"view-url\":_vm.primaryBanner.adContent.viewPixelUrl,\"click-url\":_vm.primaryBanner.adContent.clickPixelUrl,\"tracking-data\":_vm.primaryBanner.trackingData},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var click = ref.click;\nreturn [_c('ImageTextVideoBlock',{attrs:{\"content\":_vm.primaryBanner.adContent,\"content-load-error\":_vm.primaryBanner.loadError,\"width-on-screen\":100,\"aspect-ratio\":_vm.aspectRatio,\"is-first-block\":_vm.isFirstBlock,\"click-handler\":click},on:{\"loaded\":function($event){return _vm.imageLoaded()}}})]}}],null,false,659540635)}):_vm._e(),(_vm.small1Banner.adContent)?_c('AdnuntiusPixels',{staticClass:\"mt-10 md:mt-20 lg:mt-0 o-grid--item w-full md:w-1/2 lg:w-2/12\",attrs:{\"rendered-url\":_vm.small1Banner.adContent.renderedPixelUrl,\"visible-url\":_vm.small1Banner.adContent.visiblePixelUrl,\"view-url\":_vm.small1Banner.adContent.viewPixelUrl,\"click-url\":_vm.small1Banner.adContent.clickPixelUrl,\"tracking-data\":_vm.small1Banner.trackingData},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var click = ref.click;\nreturn [(_vm.small1Banner.adContent)?_c('SmallImageTextBlock',{staticClass:\"h-full\",attrs:{\"content\":_vm.small1Banner.adContent,\"set-style-aspect-ratio-on-desktop\":!_vm.primaryBanner.adContent,\"index\":1,\"click-handler\":click}}):_vm._e()]}}],null,false,2941120810)}):_vm._e(),(_vm.small2Banner.adContent)?_c('AdnuntiusPixels',{staticClass:\"mt-10 md:mt-20 lg:mt-0 o-grid--item w-full md:w-1/2 lg:w-2/12\",attrs:{\"rendered-url\":_vm.small2Banner.adContent.renderedPixelUrl,\"visible-url\":_vm.small2Banner.adContent.visiblePixelUrl,\"view-url\":_vm.small2Banner.adContent.viewPixelUrl,\"click-url\":_vm.small2Banner.adContent.clickPixelUrl,\"tracking-data\":_vm.small2Banner.trackingData},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var click = ref.click;\nreturn [(_vm.small2Banner.adContent)?_c('SmallImageTextBlock',{staticClass:\"h-full\",attrs:{\"content\":_vm.small2Banner.adContent,\"set-style-aspect-ratio-on-desktop\":!_vm.primaryBanner.adContent,\"index\":2,\"click-handler\":click}}):_vm._e()]}}],null,false,2175172361)}):_vm._e()],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('div',{ref:\"element\",staticClass:\"h-full\"},[(_vm.content && _vm.rendered)?_c('div',{staticClass:\"p-20 md:px-15 xl:px-30 md:py-25 xl:py-35 relative h-full\",style:(_vm.style)},[(_vm.content.header)?_c('h3',{staticClass:\"h3 text-16 xl:text-18 tracking-normal mb-10 font-regular max-w-155 md:max-w-none\",style:(_vm.colorStyle(_vm.content.headerColor))},[_vm._v(\" \"+_vm._s(_vm.content.header)+\" \")]):_vm._e(),(_vm.content.subheader)?_c('p',{staticClass:\"leading-normal text-14 max-w-155 md:max-w-none\",style:(_vm.colorStyle(_vm.content.subheaderColor || _vm.content.headerColor))},[_vm._v(\" \"+_vm._s(_vm.content.subheader)+\" \")]):_vm._e(),(_vm.content.callToAction)?_c('CultureAwareRouterLink',{ref:\"callToAction\",staticClass:\"c-one-plus-two-small--link absolute flex flex-col inset-0 items-center justify-center\",attrs:{\"to\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target},nativeOn:{\"click\":function($event){return _vm.clickHandler()}}},[_c('CallToAction',{staticClass:\"min-w-1/2 mx-10\",attrs:{\"href\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target,\"hex-color\":_vm.content.callToActionColor || '#ffffff',\"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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { hexToRgb, hexToRgbValues, isValidHexColor } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport breakpointState from '@/core/responsive/breakpoints/breakpointsState.observable';\r\nimport { MAX_MD } from '@/core/config/breakpointConfig';\r\nimport { AdImage, Link } from '@/types/apiServerContract';\r\nimport CallToAction from '@/project/form/CallToAction.vue';\r\n// Use custom interface because this banner only have some of the options we have in a normal banner.\r\ninterface SmallImageTextBlockViewModel {\r\n lineItemId?: string;\r\n creativeId?: string;\r\n backgroundColor?: string;\r\n headerColor?: string;\r\n header?: string;\r\n subheader?: string;\r\n callToAction?: Link;\r\n\r\n callToActionColor?: string;\r\n subheaderColor?: string;\r\n contentBackgroundColor?: string;\r\n makeContentBackgroundTransparent?: boolean;\r\n backgroundImages?: AdImage[];\r\n shim: boolean | undefined;\r\n shimColor?: string;\r\n}\r\ninterface extendedCSSStyleDeclarationWithContentBackgroundColor extends CSSStyleDeclaration {\r\n contentBackgroundColor?: string;\r\n aspectRatio?: number;\r\n}\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class SmallImageTextBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: SmallImageTextBlockViewModel;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false,\r\n required: false\r\n }) setStyleAspectRatioOnDesktop!: boolean;\r\n\r\n @Prop({\r\n type: Function,\r\n default: () => {}\r\n }) clickHandler!: () => void;\r\n\r\n rendered = false;\r\n\r\n get isMobile() {\r\n return breakpointState.isBreakpointActive(MAX_MD);\r\n }\r\n\r\n get style(): Partial {\r\n if (!this.content) return {};\r\n const styling: Partial = {};\r\n let backgroundImage: null | AdImage = null;\r\n if (this.content.backgroundImages?.length) {\r\n if (this.content.backgroundImages.length > 1 && this.isMobile) {\r\n backgroundImage = this.content.backgroundImages[1];\r\n } else {\r\n backgroundImage = this.content.backgroundImages[0];\r\n }\r\n }\r\n if (backgroundImage) {\r\n if (this.isMobile || this.setStyleAspectRatioOnDesktop) {\r\n // styling.aspectRatio = backgroundImage ? backgroundImage.width / backgroundImage.height : 360 / 190;\r\n const height = (backgroundImage ? backgroundImage.height : 190);\r\n const width = (backgroundImage ? backgroundImage.width : 360);\r\n const element = this.$refs.element;\r\n const elementWidth = element?.getBoundingClientRect()?.width || width;\r\n const heightRatio = (height / width) * elementWidth;\r\n styling.minHeight = heightRatio + 'px';\r\n } else {\r\n }\r\n styling.backgroundSize = 'cover';\r\n styling.backgroundImage = `url(${backgroundImage.url})`;\r\n styling.backgroundPosition = '50% 50%';\r\n }\r\n styling.flex = '1';\r\n styling.backgroundRepeat = 'no-repeat';\r\n\r\n const backgroundColor = this.content.contentBackgroundColor;\r\n const semiTransparent = this.content.makeContentBackgroundTransparent;\r\n\r\n let result = 'transparent';\r\n const semiTransparencyPercentage = 0.75;\r\n\r\n if (this.content.backgroundImages?.length && backgroundColor && this.isColorDefined(backgroundColor)) {\r\n result = this.hexToRgbWithDefault(backgroundColor, semiTransparent ? semiTransparencyPercentage : undefined);\r\n }\r\n\r\n styling.backgroundColor = result;\r\n styling.contentBackgroundColor = result;\r\n return styling;\r\n }\r\n\r\n hexToRgbWithDefault(hex: string, alpha?: number): string {\r\n if (!isValidHexColor(hex)) return tailwind.theme.colors.black;\r\n return hexToRgb(hex, alpha);\r\n }\r\n\r\n colorStyle(hexColor?: string): object {\r\n const defailtColor = tailwind.theme.colors.white;\r\n return ({\r\n color: this.style?.contentBackgroundColor === 'white' ? defailtColor : hexColor ? this.hexToRgbWithDefault(hexColor) : defailtColor\r\n });\r\n }\r\n\r\n isColorDefined(color: string): boolean {\r\n return color?.length === 7 ?? false; // #233445\r\n }\r\n\r\n $refs!: {\r\n element?: HTMLElement,\r\n callToAction?: CallToAction\r\n }\r\n\r\n mounted() {\r\n this.$nextTick(() => {\r\n this.rendered = true;\r\n this.$nextTick(() => {\r\n if (this.$refs.callToAction?.$el && this.content.shimColor && this.isColorDefined(this.content.shimColor)) {\r\n const element = this.$refs.callToAction.$el as HTMLElement;\r\n const { red, green, blue } = hexToRgbValues(this.content.shimColor);\r\n const hoverL = 0.6;\r\n element.style.setProperty('--hover-active-color', `rgba(${red},${green},${blue},${hoverL})`);\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!./SmallImageTextBlock.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!./SmallImageTextBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmallImageTextBlock.vue?vue&type=template&id=f0ff897e&\"\nimport script from \"./SmallImageTextBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmallImageTextBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SmallImageTextBlock.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","\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\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 { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ImageTextVideoBlock from './ImageTextVideoBlock.vue';\r\nimport AdnuntiusPixels from '@/project/tracking/adnuntius/AdnuntiusPixels.vue';\r\nimport { PersonalizedContentBlockViewModel } from '@/types/contentServerContract';\r\nimport adnuntiusService from '@/project/personalization/adnuntius.service';\r\nimport { AdnuntiusTrackingData } from '@/project/tracking/adnuntius/types';\r\nimport themeService from '@/project/app/themes/theme.service';\r\nimport scrollService from '@/core/scroll/scroll.service';\r\nimport SmallImageTextBlock from '@/project/app/blocks/SmallImageTextBlock.vue';\r\nimport { AdnuntiusBannerObject, ExtendedAdContentBlockViewModel } from '@/project/app/blocks/AdnuntiusViewModel';\r\nimport breakpointState from '@/core/responsive/breakpoints/breakpointsState.observable';\r\nimport { MAX_SM } from '@/core/config/breakpointConfig';\r\n\r\n@Component({\r\n components: { AdnuntiusPixels, ImageTextVideoBlock, SmallImageTextBlock }\r\n})\r\nexport default class AdnuntiusHeroBannerBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: PersonalizedContentBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n primaryBanner: AdnuntiusBannerObject = { adContent: null, loadError: false, trackingData: null, isFirst: this.isFirstBlock };\r\n small1Banner: AdnuntiusBannerObject = { adContent: null, loadError: false, trackingData: null, isFirst: false };\r\n small2Banner: AdnuntiusBannerObject = { adContent: null, loadError: false, trackingData: null, isFirst: false };\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n created() {\r\n this.loadAdContent();\r\n }\r\n\r\n imageLoaded() {\r\n // During take-over, a lot of re-rendering is going on with colors and element sizes, so we wait with the\r\n // big animation till the actual center is loaded\r\n setTimeout(() => {\r\n themeService.setThemeLoaded();\r\n }, 100);\r\n }\r\n\r\n async loadAdContent() {\r\n const requests: unknown[] = [];\r\n const callAdContent = async(adUnitId: string, feedback: { adContent: null | ExtendedAdContentBlockViewModel, trackingData: null | AdnuntiusTrackingData, loadError: boolean, isFirst?:boolean }): Promise => {\r\n if (!adUnitId) return null;\r\n const request = this.getAdContent(adUnitId);\r\n request.then(result => {\r\n feedback.adContent = result;\r\n if (feedback.adContent && feedback.adContent.lineItemId && feedback.adContent.creativeId) {\r\n feedback.trackingData = {\r\n lineItemId: feedback.adContent.lineItemId,\r\n creativeId: feedback.adContent.creativeId,\r\n parentBlockAlias: 'personalizedContentHero'\r\n };\r\n }\r\n if (feedback.isFirst) {\r\n themeService.applyTheme({ ...feedback.adContent });\r\n }\r\n }).catch(() => {\r\n feedback.loadError = true;\r\n });\r\n return request;\r\n };\r\n\r\n requests.push(callAdContent(this.content.settings?.selectedAdUnitIdContent?.adUnitId, this.primaryBanner));\r\n requests.push(callAdContent(this.content.smallAdUnit1?.selectedAdUnitIdContent?.adUnitId, this.small1Banner));\r\n requests.push(callAdContent(this.content.smallAdUnit2?.selectedAdUnitIdContent?.adUnitId, this.small2Banner));\r\n await Promise.all(requests);\r\n\r\n if (this.isTakeOverBanner) {\r\n this.small1Banner.adContent = null;\r\n this.small2Banner.adContent = null;\r\n }\r\n }\r\n\r\n async getAdContent(adUnitId: string) {\r\n if (!adUnitId) return null;\r\n try {\r\n const adContentBlockViewModel: ExtendedAdContentBlockViewModel = await adnuntiusService.getBundledPersonalizedContent(\r\n adUnitId,\r\n this.$route.fullPath);\r\n adContentBlockViewModel.isBackgroundVideo = !!adContentBlockViewModel.vimeoVideoId; // To make ImageTextVideoBlock work, it must have video playing in background\r\n // hide callToAction if both overlayVimeoCta and overlayVimeoVideoId is set\r\n if (adContentBlockViewModel.overlayVimeoVideoId && adContentBlockViewModel.overlayVimeoCta && adContentBlockViewModel.callToAction) {\r\n adContentBlockViewModel.callToAction = undefined;\r\n }\r\n return adContentBlockViewModel;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n get isTakeOverBanner() {\r\n return themeService.isTakeOverEnabled;\r\n }\r\n\r\n get aspectRatio() {\r\n return this.isTakeOverBanner ? (1440 / 680) : (1440 / 480);\r\n }\r\n\r\n get marginStyle(): Partial | undefined {\r\n const styles: Partial = {};\r\n if (this.primaryBanner.adContent?.marginColor) {\r\n styles.backgroundColor = this.primaryBanner.adContent.marginColor;\r\n }\r\n if (this.isFirstBlock && !this.isMobile && this.isTakeOverBanner && this.isPrimaryBannerVideoBackground) {\r\n // Only add negative margin for take-over banners with video background, as image background is handled in ImageTextBlock.\r\n styles.marginTop = '-20rem';\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n get isPrimaryBannerVideoBackground(): boolean {\r\n return !!(this.primaryBanner.adContent?.vimeoVideoId) || false;\r\n }\r\n\r\n get isMobile() {\r\n return breakpointState.isBreakpointActive(MAX_SM);\r\n }\r\n\r\n get leftImage() {\r\n return this.primaryBanner.adContent?.imageLeft?.url;\r\n }\r\n\r\n get scrollBarWidth() {\r\n return Math.floor(scrollService.getScrollbarWidth() / 2);\r\n }\r\n\r\n get leftImagePosition(): Partial | undefined {\r\n if (!this.primaryBanner.adContent?.imageLeft) return undefined;\r\n\r\n return {\r\n transform: `translateX(calc((100vw - 1440px) / 2 - ${this.primaryBanner.adContent.imageLeft.width}px - ${this.scrollBarWidth}px))`\r\n };\r\n }\r\n\r\n get rightImage() {\r\n return this.primaryBanner.adContent?.imageRight?.url;\r\n }\r\n\r\n get rightImagePosition(): Partial | undefined {\r\n if (!this.primaryBanner.adContent?.imageRight) return undefined;\r\n\r\n return {\r\n transform: `translateX(calc((1440px - 100vw) / 2 + ${this.primaryBanner.adContent.imageRight.width}px + ${this.scrollBarWidth}px))`\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!./AdnuntiusHeroBannerBlock.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!./AdnuntiusHeroBannerBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdnuntiusHeroBannerBlock.vue?vue&type=template&id=35b3840a&\"\nimport script from \"./AdnuntiusHeroBannerBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdnuntiusHeroBannerBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdnuntiusHeroBannerBlock.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 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!./SmallImageTextBlock.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!./SmallImageTextBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"relative flex flex-col\",class:{'o-container--bleed' : _vm.isFirstBlock, '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('div',{staticClass:\"px-5 lg:px-25 text-10 lg:text-14 order-1 md:order-2\",class:{'hidden md:flex': !_vm.content.showBlockOnMobile, 'flex': _vm.content.showBlockOnMobile},style:(_vm.uspStyle)},_vm._l((_vm.uspItems),function(usp,uspIndex){return _c('div',{key:uspIndex,staticClass:\"py-20 px-5 flex-grow max-w-1/2\",class:[\n _vm.uniqueSellingPointsMobileClasses[uspIndex],\n uspIndex === (_vm.uspItems.length -1) ? '' : 'xl:pr-20',\n {\n 'md:max-w-1/3': _vm.uspItems.length % 3 === 0 || _vm.uspItems.length === 5,\n 'md:max-w-1/4': _vm.uspItems.length % 4 === 0 || _vm.uspItems.length === 7\n }\n ]},[(usp.content.icon && _vm.isIconExtensionSvg(usp.content.icon))?_c('div',{staticClass:\"w-25 md:w-32 h-32 md:h-36 min-w-30 mr-3 md:mr-20 mb-auto mt-5\",style:(_vm.svgIconStyle(usp.content.icon))}):(usp.content.icon)?_c('ResponsiveIconWrap',{staticClass:\"w-25 md:w-32 min-w-30 mr-3 md:mr-20 mb-auto mt-5\",attrs:{\"image\":usp.content.icon,\"alt-text\":usp.content.text}}):_vm._e(),_c('div',{staticClass:\"flex-grow-0\"},[_vm._v(\" \"+_vm._s(usp.content.text)+\" \")])],1)}),0)])}\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 { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { SimpleUspBlockViewModel, Media } from '@/types/contentServerContract';\r\nimport { hexToRgb, isValidHexColor } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\nimport breakpointState from '@/core/responsive/breakpoints/breakpointsState.observable';\r\nimport { MAX_SM } from '@/core/config/breakpointConfig';\r\nexport interface SimpleUspBlockItemViewModel {\r\n icon?: Media;\r\n text?: string;\r\n}\r\n@Component\r\nexport default class HeroBannerUniqueSellingPointsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: SimpleUspBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n uniqueSellingPointsMobileClasses: string[] = [];\r\n\r\n mounted() {\r\n // Randomize what UPS are shown on mobile.\r\n this.uniqueSellingPointsMobileClasses = ['flex', 'flex'];\r\n if (this.content.uniqueSellingPointItems?.length) {\r\n for (let i:number = 2; i < this.content.uniqueSellingPointItems.length; i++) {\r\n this.uniqueSellingPointsMobileClasses.push('hidden md:flex');\r\n }\r\n this.uniqueSellingPointsMobileClasses.sort(() => Math.random() - 0.5);\r\n }\r\n }\r\n\r\n get uspStyle(): Partial | null {\r\n const style: Partial = {};\r\n if (this.uniqueSellingPointsColor) {\r\n style.color = this.uniqueSellingPointsColor;\r\n }\r\n if (this.uniqueSellingPointsBackgroundColor) {\r\n style.backgroundColor = this.uniqueSellingPointsBackgroundColor;\r\n }\r\n return style;\r\n }\r\n\r\n get uniqueSellingPointsBackgroundColor() {\r\n return '#262422'; // Hardcoded for now\r\n }\r\n\r\n get uniqueSellingPointsColor() {\r\n return '#ffffff'; // Hardcoded for now\r\n }\r\n\r\n isIconExtensionSvg(icon:Media): boolean {\r\n return icon?.extension?.toLowerCase() === 'svg';\r\n }\r\n\r\n svgIconStyle(icon: Media): Partial {\r\n if (this.isIconExtensionSvg(icon)) {\r\n // Set background color to text color and set mask to SVG icon, if icon is SVG. That makes it possible to set fill color of umbraco SVGs.\r\n return {\r\n backgroundColor: this.uniqueSellingPointsColor,\r\n // @ts-ignore\r\n '-webkit-mask': `url(\"${icon.url}\") no-repeat center`,\r\n '-webkit-mask-size': '100% auto',\r\n mask: `url(\"${icon.url}\") no-repeat center`,\r\n maskSize: '100% auto'\r\n };\r\n }\r\n return {};\r\n }\r\n\r\n colorStyle(hexColor: string): string {\r\n const EETBlack = tailwind.theme.colors.black;\r\n return hexColor ? this.hexToRgbWithDefault(hexColor) : EETBlack;\r\n // Reuse from ImageTextVideoBlock.vue, but we might not have contentBackgroundColor in this content.\r\n // return this.contentBackgroundColor === 'white' ? EETBlack : hexColor ? this.hexToRgbWithDefault(hexColor) : EETBlack;\r\n }\r\n\r\n hexToRgbWithDefault(hex: string, alpha?: number): string {\r\n if (!isValidHexColor(hex)) return tailwind.theme.colors.black;\r\n return hexToRgb(hex, alpha);\r\n }\r\n\r\n isColorDefined(color: string): boolean {\r\n return color?.length === 7 ?? false; // #233445\r\n }\r\n\r\n get isMobile() {\r\n return breakpointState.isBreakpointActive(MAX_SM);\r\n }\r\n\r\n get uspItems(): { content: SimpleUspBlockItemViewModel }[] {\r\n return this.content.uniqueSellingPointItems || [];\r\n }\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\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!./SimpleUniqueSellingPointsBlock.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!./SimpleUniqueSellingPointsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimpleUniqueSellingPointsBlock.vue?vue&type=template&id=3af9c1a8&\"\nimport script from \"./SimpleUniqueSellingPointsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./SimpleUniqueSellingPointsBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.keepAlive)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}]},[_vm._t(\"default\")],2):(_vm.active)?_c('div',[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport ITab from './ITab';\r\nimport urlHelperService from '@/core/urlHelper.service';\r\n\r\n@Component({\r\n name: 'Tab'\r\n})\r\nexport default class Tab extends Vue implements ITab {\r\n @Prop({ type: String, required: true }) name!: string;\r\n @Prop({ type: String }) hash!: string;\r\n @Prop({ type: Boolean, default: false }) selected!: boolean;\r\n @Prop({ type: Boolean, default: false }) keepAlive!: boolean;\r\n\r\n active: boolean = this.selected;\r\n\r\n toggle(active: boolean) {\r\n this.active = active;\r\n\r\n if (active && this.hash) {\r\n if (urlHelperService.getHash() !== this.hash) {\r\n urlHelperService.setHash(this.hash);\r\n }\r\n }\r\n }\r\n\r\n get isActive() {\r\n return this.active;\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!./Tab.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!./Tab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tab.vue?vue&type=template&id=57332680&\"\nimport script from \"./Tab.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tab.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!./NewsArticleTeaser.vue?vue&type=style&index=0&id=25914ceb&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!./NewsArticleTeaser.vue?vue&type=style&index=0&id=25914ceb&lang=less&scoped=true&\"","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!./SpinnerElement.vue?vue&type=style&index=0&id=db7d78cc&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!./SpinnerElement.vue?vue&type=style&index=0&id=db7d78cc&lang=less&scoped=true&\"","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!./CategoryRecommendationsBlock.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!./CategoryRecommendationsBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isAdUnitContent)?_c('AdnuntiusPixels',{attrs:{\"rendered-url\":_vm.renderedPixelUrl,\"visible-url\":_vm.visiblePixelUrl,\"view-url\":_vm.viewPixelUrl,\"click-url\":_vm.clickPixelUrl,\"tracking-data\":_vm.adnuntiusTrackingData},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar click = ref.click;\nreturn [_c('ImageTextVideoBlock',_vm._b({attrs:{\"content\":_vm.adContentBlockViewModel,\"click-handler\":click,\"content-load-error\":_vm.contentLoadError}},'ImageTextVideoBlock',_vm.$attrs,false))]}}],null,false,3737032441)}):((_vm.isHalfWidthBlock || _vm.isHeroBanner))?_c('ImageTextVideoBlockNew',_vm._b({attrs:{\"content\":_vm.content}},'ImageTextVideoBlockNew',_vm.$attrs,false)):(_vm.isTextBlock)?_c('TextBlock',_vm._b({attrs:{\"content\":_vm.content,\"parent-alias\":_vm.parentAlias}},'TextBlock',_vm.$attrs,false)):(_vm.isJotFormBlock)?_c('JotFormBlock',_vm._b({attrs:{\"content\":_vm.content}},'JotFormBlock',_vm.$attrs,false)):(_vm.isMapBlock)?_c('GoogleMapsBlock',_vm._b({attrs:{\"content\":_vm.content}},'GoogleMapsBlock',_vm.$attrs,false)):(_vm.isCancelNewsletterBlock)?_c('CancelNewsletterBlock',_vm._b({attrs:{\"content\":_vm.content}},'CancelNewsletterBlock',_vm.$attrs,false)):(_vm.isUniqueSellingPointBlock)?_c('UniqueSellingPointBlock',_vm._b({staticClass:\"h-full w-full\",attrs:{\"content\":_vm.content,\"is-in-half-width\":\"\",\"wrapper-class\":\"h-full w-full\",\"points-class\":\"w-full flex flex-wrap\"}},'UniqueSellingPointBlock',_vm.$attrs,false)):(_vm.isSimpleUspBlock)?_c('SimpleUniqueSellingPointsBlock',_vm._b({attrs:{\"content\":_vm.content}},'SimpleUniqueSellingPointsBlock',_vm.$attrs,false)):_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 { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport {\r\n HalfWidthBlockViewModel,\r\n PersonalizedContentBlockViewModel,\r\n TextBlockViewModel\r\n} from '@/types/contentServerContract';\r\nimport AdnuntiusPixels from '@/project/tracking/adnuntius/AdnuntiusPixels.vue';\r\nimport ImageTextVideoBlock from '@/project/app/blocks/ImageTextVideoBlock.vue';\r\nimport ImageTextVideoBlockNew from '@/project/app/blocks/ImageTextVideoBlockNew.vue';\r\nimport adnuntiusService from '@/project/personalization/adnuntius.service';\r\nimport TextBlock from './TextBlock.vue';\r\nimport JotFormBlock from './JotFormBlock.vue';\r\nimport CancelNewsletterBlock from './newsletter/CancelNewsletterBlock.vue';\r\nimport GoogleMapsBlock from './google-maps/GoogleMapsBlock.vue';\r\nimport { AdnuntiusTrackingData } from '@/project/tracking/adnuntius/types';\r\nimport { BlockName } from '@/project/app/blocks/index';\r\nimport SimpleUniqueSellingPointsBlock from '@/project/app/blocks/SimpleUniqueSellingPointsBlock.vue';\r\nimport { ExtendedAdContentBlockViewModel } from '@/project/app/blocks/AdnuntiusViewModel';\r\n\r\nconst UniqueSellingPointBlock = () => import(/* webpackPrefetch: true, webpackChunkName: 'basic-blocks' */ './UniqueSellingPointBlock.vue');\r\n\r\nconst AllowedBlocks: BlockName[] = ['heroBanner', 'personalizedContent', 'halfWidthBlock', 'textBlock', 'jotFormBlock', 'map', 'cancelNewsletterBlock', 'uniqueSellingPointBlock', 'simpleUspBlock'];\r\n\r\n@Component({\r\n components: {\r\n SimpleUniqueSellingPointsBlock,\r\n UniqueSellingPointBlock,\r\n ImageTextVideoBlock,\r\n ImageTextVideoBlockNew,\r\n AdnuntiusPixels,\r\n TextBlock,\r\n JotFormBlock,\r\n GoogleMapsBlock,\r\n CancelNewsletterBlock\r\n }\r\n})\r\nexport default class ContentBlockContainer extends Vue {\r\n contentLoadError = false;\r\n adContentBlockViewModel: ExtendedAdContentBlockViewModel | null = null;\r\n adnuntiusTrackingData: AdnuntiusTrackingData | null = null;\r\n\r\n @Prop({ required: true, type: Object })\r\n content!: HalfWidthBlockViewModel | PersonalizedContentBlockViewModel | TextBlockViewModel;\r\n\r\n @Prop({ required: true, type: String, validator: (value: string) => AllowedBlocks.includes(value as BlockName) })\r\n alias!: BlockName;\r\n\r\n @Prop({ required: true, type: String })\r\n parentAlias!: string;\r\n\r\n @Prop({ required: true, type: Number })\r\n index!: number;\r\n\r\n get isHeroBanner(): boolean {\r\n return this.alias === 'heroBanner';\r\n }\r\n\r\n get isAdUnitContent(): boolean {\r\n return this.alias === 'personalizedContent';\r\n }\r\n\r\n get isHalfWidthBlock(): boolean {\r\n return this.alias === 'halfWidthBlock';\r\n }\r\n\r\n get isTextBlock(): boolean {\r\n return this.alias === 'textBlock';\r\n }\r\n\r\n get isJotFormBlock(): boolean {\r\n return this.alias === 'jotFormBlock';\r\n }\r\n\r\n get isMapBlock(): boolean {\r\n return this.alias === 'map';\r\n }\r\n\r\n get isCancelNewsletterBlock(): boolean {\r\n return this.alias === 'cancelNewsletterBlock';\r\n }\r\n\r\n get isUniqueSellingPointBlock(): boolean {\r\n return this.alias === 'uniqueSellingPointBlock';\r\n }\r\n\r\n get isSimpleUspBlock(): boolean {\r\n return this.alias === 'simpleUspBlock';\r\n }\r\n\r\n get renderedPixelUrl() {\r\n return this.adContentBlockViewModel?.renderedPixelUrl;\r\n }\r\n\r\n get viewPixelUrl() {\r\n return this.adContentBlockViewModel?.viewPixelUrl;\r\n }\r\n\r\n get visiblePixelUrl() {\r\n return this.adContentBlockViewModel?.visiblePixelUrl;\r\n }\r\n\r\n get clickPixelUrl() {\r\n return this.adContentBlockViewModel?.clickPixelUrl;\r\n }\r\n\r\n async getAdContent(adUnitId: string) {\r\n if (!adUnitId) return;\r\n try {\r\n this.adContentBlockViewModel = await adnuntiusService.getBundledPersonalizedContent(\r\n adUnitId,\r\n this.$route.fullPath);\r\n this.adContentBlockViewModel.isBackgroundVideo = true;\r\n\r\n if (this.adContentBlockViewModel.lineItemId && this.adContentBlockViewModel.creativeId) {\r\n this.adnuntiusTrackingData = {\r\n lineItemId: this.adContentBlockViewModel.lineItemId,\r\n creativeId: this.adContentBlockViewModel.creativeId,\r\n parentBlockAlias: this.parentAlias\r\n };\r\n }\r\n } catch {\r\n this.contentLoadError = true;\r\n this.$emit('contentLoadError');\r\n }\r\n }\r\n\r\n created() {\r\n const content = this.content as PersonalizedContentBlockViewModel;\r\n if (this.isAdUnitContent && content.settings && content.settings.selectedAdUnitIdContent) {\r\n this.getAdContent(content.settings.selectedAdUnitIdContent.adUnitId);\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!./ContentBlockContainer.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!./ContentBlockContainer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContentBlockContainer.vue?vue&type=template&id=3e011752&\"\nimport script from \"./ContentBlockContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContentBlockContainer.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.news)?_c('article',{staticClass:\"news-article\"},[_c('div',{staticClass:\"news-article-image\"},[(_vm.news.image)?_c('responsive-image',{attrs:{\"image-url\":_vm.news.image.url,\"mode\":\"crop\",\"format\":_vm.newsImageFormat,\"aspect-ratio\":710 / 400,\"focal-point\":_vm.news.image.focalPoint,\"alt\":_vm.news.image.name}}):_c('div',{staticClass:\"hero-article-logo theme-text-linkcolor\"},[_c('CIcon',{staticClass:\"logo\",attrs:{\"name\":\"logo\",\"original\":_vm.isOprema ? 'true' : undefined}})],1),_c('culture-aware-router-link',{staticClass:\"read-more\",attrs:{\"to\":_vm.news.url.url}},[_c('call-to-action',{staticClass:\"cta--rounded cta--white\",attrs:{\"text\":_vm.$dictionary.get('News.ReadMore'),\"type\":\"button\",\"href\":_vm.news.url.url}})],1)],1),_c('div',{staticClass:\"news-article-text overflow-hidden\"},[_c('p',{staticClass:\"font-bold mb-10\"},[_vm._v(\" \"+_vm._s(_vm.news.date)+\" \")]),_c('p',{staticClass:\"font-bold mb-10\"},[_vm._v(\" \"+_vm._s(_vm.news.header)+\" \")]),_c('smart-paragraph',{attrs:{\"content\":_vm.news.teaser,\"max-characters\":200,\"as-html\":\"\"}})],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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { News } from '@/types/contentServerContract';\r\nimport SmartParagraph from '@/core/ui-components/SmartParagraph.vue';\r\nimport { extensionIsGifOrUndefined } from '@/project/shared/responsive-umbraco-image.service';\r\nimport serverContextService from '@/core/serverContext.service';\r\n\r\n@Component({\r\n components: { SmartParagraph }\r\n})\r\nexport default class NewsArticleTeaser extends Vue {\r\n @Prop({ required: true })\r\n news!: News;\r\n\r\n get newsImageFormat() {\r\n return extensionIsGifOrUndefined(this.news?.image);\r\n }\r\n\r\n get isOprema() {\r\n return serverContextService?.isOprema;\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!./NewsArticleTeaser.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!./NewsArticleTeaser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewsArticleTeaser.vue?vue&type=template&id=25914ceb&scoped=true&\"\nimport script from \"./NewsArticleTeaser.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewsArticleTeaser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewsArticleTeaser.vue?vue&type=style&index=0&id=25914ceb&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 \"25914ceb\",\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 _c('article',{staticClass:\"h-full p-30 md:p-40\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock },style:(_vm.style)},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"flex flex-shrink-0\"},[_c('CIcon',{staticClass:\"hidden md:block\",attrs:{\"name\":\"quote\",\"height\":\"30\",\"width\":\"64\"}}),_c('CIcon',{staticClass:\"md:hidden block\",attrs:{\"name\":\"quote\",\"height\":\"20\",\"width\":\"20\"}})],1),_c('div',{staticClass:\"ml-15 md:ml-20 pt-5\"},[_c('p',{directives:[{name:\"delegate-html-links\",rawName:\"v-delegate-html-links\"},{name:\"delegate-on-img-error\",rawName:\"v-delegate-on-img-error\"}],staticClass:\"wysiwyg text-block break-words overflow-hidden text-14 md:text-20 mb-20\",domProps:{\"innerHTML\":_vm._s(_vm.content.quote)}}),_c('p',{staticClass:\"md:text-15\"},[_vm._v(\" \"+_vm._s(_vm.content.author)+\" \")])])])])}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { QuoteBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport { hexToRgbValues, luma } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class QuoteBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: QuoteBlockViewModel;\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 appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n get backgroundColor() {\r\n return this.content.customBackgroundColor\r\n ? this.content.customBackgroundColor\r\n : this.content.backgroundColor ? '#' + this.content.backgroundColor : undefined;\r\n }\r\n\r\n get textColor() {\r\n if (!this.backgroundColor) return undefined;\r\n const { red, green, blue } = hexToRgbValues(this.backgroundColor);\r\n const isDarkBackground = luma(red, green, blue) <= 0.5;\r\n return isDarkBackground ? tailwind.theme.colors.white : tailwind.theme.colors.black;\r\n }\r\n\r\n get style(): Partial {\r\n return {\r\n backgroundColor: this.backgroundColor,\r\n color: this.textColor\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!./QuoteBlock.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!./QuoteBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuoteBlock.vue?vue&type=template&id=2cf53c24&\"\nimport script from \"./QuoteBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuoteBlock.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","\r\nimport Vue, { CreateElement } from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class SmartHeadline extends Vue {\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n })\r\n styleAsH1!: boolean;\r\n\r\n @Prop({ required: false, type: String, default: 'h2', validator: (value: string) => ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(value) })\r\n level!: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\r\n\r\n render(h: CreateElement) {\r\n const data = {\r\n ...this.$props,\r\n class: {\r\n h1: this.styleAsH1\r\n }\r\n };\r\n return h(this.level, data, this.$slots.default);\r\n }\r\n}\r\n","var render, staticRenderFns\nimport script from \"./SmartHeadline.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmartHeadline.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!./SmartHeadline.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!./SmartHeadline.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'o-container--bleed' : _vm.isFirstBlock}},[_c('ImageTextVideoBlockNew',{attrs:{\"content\":_vm.content,\"width-on-screen\":100,\"aspect-ratio\":1440/480,\"is-hero-banner\":true,\"is-first-block\":_vm.isFirstBlock}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { HeroBannerViewModel } from '@/types/contentServerContract';\r\nimport ImageTextVideoBlock from './ImageTextVideoBlock.vue';\r\nimport ImageTextVideoBlockNew from './ImageTextVideoBlockNew.vue';\r\n@Component({\r\n components: { ImageTextVideoBlock, ImageTextVideoBlockNew }\r\n})\r\nexport default class HeroBannerBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: HeroBannerViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\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!./HeroBannerBlock.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!./HeroBannerBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeroBannerBlock.vue?vue&type=template&id=4c974ff4&\"\nimport script from \"./HeroBannerBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeroBannerBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',[(_vm.content.headline)?_c('smart-headline',{staticClass:\"mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),_c('section',[_c('iframe',{ref:\"jotform\",staticStyle:{\"width\":\"1px\",\"min-width\":\"100%\",\"border\":\"none\"},attrs:{\"title\":_vm.content.headline,\"allowtransparency\":_vm.content.allowTransparency,\"allowfullscreen\":_vm.content.allowFullscreen,\"scrolling\":_vm.content.allowScrolling ? 'yes' : 'no',\"allow\":\"geolocation; microphone; camera\",\"src\":_vm.jotformSrc,\"frameborder\":\"0\"}})])],1)}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { JotFormBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class JotFormBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: JotFormBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n }) isFirstBlock!: boolean;\r\n\r\n get jotformSrc() {\r\n return `https://form.jotform.com/${this.content.jotFormId}`;\r\n }\r\n\r\n $refs!: {\r\n jotform: any\r\n }\r\n\r\n mounted() {\r\n window.addEventListener('message', this.handleIFrameMessage, false);\r\n }\r\n\r\n beforeDestroy() {\r\n window.removeEventListener('message', this.handleIFrameMessage);\r\n }\r\n\r\n handleIFrameMessage(e: any) {\r\n if (typeof e.data === 'object') { return; }\r\n\r\n const iframe = this.$refs.jotform;\r\n if (!iframe) { return; }\r\n\r\n const args = e.data.split(':');\r\n\r\n const _window = window as any;\r\n\r\n switch (args[0]) {\r\n case 'scrollIntoView':\r\n if (this.isFirstBlock) { iframe.scrollIntoView(); }\r\n break;\r\n case 'setHeight':\r\n iframe.style.height = `${args[1]}px`;\r\n break;\r\n case 'collapseErrorPage':\r\n if (iframe.clientHeight > window.innerHeight) {\r\n iframe.style.height = `${window.innerHeight}px`;\r\n }\r\n break;\r\n case 'loadScript':\r\n {\r\n let src = args[1];\r\n if (args.length > 3) {\r\n src = args[1] + ':' + args[2];\r\n }\r\n const script = document.createElement('script');\r\n script.src = src;\r\n script.type = 'text/javascript';\r\n document.body.appendChild(script);\r\n }\r\n break;\r\n case 'exitFullscreen':\r\n if (_window.document.exitFullscreen) _window.document.exitFullscreen();\r\n else if (_window.document.mozCancelFullScreen) _window.document.mozCancelFullScreen();\r\n else if (_window.document.mozCancelFullscreen) _window.document.mozCancelFullScreen();\r\n else if (_window.document.webkitExitFullscreen) _window.document.webkitExitFullscreen();\r\n else if (_window.document.msExitFullscreen) _window.document.msExitFullscreen();\r\n break;\r\n }\r\n const isJotForm = (e.origin.indexOf('jotform') > -1);\r\n if (isJotForm && 'contentWindow' in iframe && 'postMessage' in iframe.contentWindow) {\r\n const urls = { docurl: encodeURIComponent(document.URL), referrer: encodeURIComponent(document.referrer) };\r\n iframe.contentWindow.postMessage(JSON.stringify({ type: 'urls', value: urls }), '*');\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!./JotFormBlock.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!./JotFormBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./JotFormBlock.vue?vue&type=template&id=00fb7228&\"\nimport script from \"./JotFormBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./JotFormBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"tab-header flex-shrink-0\"},[_c('div',{staticClass:\"flex flex-row flex-wrap\",class:_vm.headerClass},_vm._l((_vm.tabs),function(tab){return _c('button',{key:tab.name,staticClass:\"tab-button cursor-pointer\",class:{ 'active': tab.name === _vm.activeTab.name },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.toggle(tab.name)}}},[_vm._t(\"header\",function(){return [_vm._v(\" \"+_vm._s(tab.name)+\" \")]},{\"title\":tab.name,\"active\":tab.name === _vm.activeTab.name})],2)}),0)]),_vm._t(\"sub-content\"),_c('div',{staticClass:\"tab-content\",class:_vm.contentClass},[_vm._t(\"default\")],2)],2)}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport Tab from './Tab.vue';\r\nimport urlHelperService from '@/core/urlHelper.service';\r\nimport bus from '@/core/bus';\r\nimport { ProductTrackerProcessBatchKey } from '@/project/tracking/gtm/ProductListTracker.vue';\r\n\r\n@Component\r\nexport default class TabsContainer extends Vue {\r\n activeTab: Tab | null = null;\r\n\r\n tabs: Tab[] = []\r\n\r\n @Prop(String) headerClass!: string\r\n @Prop(String) contentClass!: string\r\n\r\n toggle(name: string) {\r\n if (this.activeTab && this.activeTab.name !== name) {\r\n this.$emit('changed', name);\r\n }\r\n\r\n for (const tab of this.tabs) {\r\n if (tab.name === name) {\r\n this.activeTab = tab;\r\n tab.toggle(true);\r\n } else {\r\n tab.toggle(false);\r\n }\r\n }\r\n bus.emit(ProductTrackerProcessBatchKey);\r\n }\r\n\r\n setup() {\r\n this.tabs = this.$children.filter(x => x.$options.name === 'Tab') as Tab[];\r\n if (this.tabs.length === 0) {\r\n return;\r\n }\r\n\r\n const hash = urlHelperService.getHash();\r\n if (hash) {\r\n const activeTab = this.tabs.find(x => x.hash === hash);\r\n if (activeTab) {\r\n this.activeTab = activeTab;\r\n activeTab.toggle(true);\r\n }\r\n }\r\n\r\n if (!this.activeTab) {\r\n for (const tab of this.tabs) {\r\n if (tab.isActive) {\r\n this.activeTab = tab;\r\n break;\r\n }\r\n }\r\n\r\n // Always show atleast 1 tab\r\n if (!this.activeTab) {\r\n const activeTab = this.tabs[0];\r\n this.activeTab = activeTab;\r\n activeTab.toggle(true);\r\n }\r\n }\r\n\r\n this.$emit('init', this.activeTab.name);\r\n }\r\n\r\n mounted() {\r\n this.setup();\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!./Tabs.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!./Tabs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tabs.vue?vue&type=template&id=36979eda&\"\nimport script from \"./Tabs.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tabs.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('div',{staticClass:\"o-grid\"},[_c('div',{staticClass:\"o-grid--item w-full md:w-1/2\",class:{ 'order-last': _vm.blockAlignmentRight}},[(_vm.largeBlock)?_c('ContentBlockContainer',{staticClass:\"only-xs:mt-10 sm:h-full\",attrs:{\"alias\":_vm.largeBlock.alias,\"content\":_vm.largeBlock.content,\"width-on-screen\":50,\"aspect-ratio\":1,\"parent-alias\":_vm.alias,\"index\":0}}):_vm._e()],1),_c('div',{staticClass:\"o-grid--item w-full md:w-1/2\"},[_c('section',{staticClass:\"h-full flex flex-col\"},[(_vm.halfWidthBlocksOne)?_c('content-block-container',{staticClass:\"oneplustwo--height-override only-xs:mt-10\",attrs:{\"alias\":_vm.halfWidthBlocksOne.alias,\"content\":_vm.halfWidthBlocksOne.content,\"width-on-screen\":50,\"aspect-ratio\":2,\"parent-alias\":_vm.alias,\"index\":0,\"aspect-ratio-margins\":{ 'only-xs': 5, 'min-sm': 10 }}}):_vm._e(),(_vm.halfWidthBlocksTwo)?_c('content-block-container',{staticClass:\"mt-10 sm:mt-20\",attrs:{\"alias\":_vm.halfWidthBlocksTwo.alias,\"content\":_vm.halfWidthBlocksTwo.content,\"width-on-screen\":50,\"aspect-ratio\":2,\"parent-alias\":_vm.alias,\"index\":1,\"aspect-ratio-margins\":{ 'only-xs': 5, 'min-sm': 10 }}}):_vm._e()],1)])])])}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { HorizontalAlignment, TwoPlusOneBlocksViewModel } from '@/types/contentServerContract';\r\nimport ContentBlockContainer from '@/project/app/blocks/ContentBlockContainer.vue';\r\n\r\n@Component({\r\n components: { ContentBlockContainer }\r\n})\r\nexport default class OnePlusTwoBlocks extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: TwoPlusOneBlocksViewModel;\r\n\r\n @Prop(String) alias!: string;\r\n\r\n @Prop({ required: true, type: Boolean })\r\n isFirstBlock!: boolean;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n get blockAlignmentRight() {\r\n return this.content.largeBlockAlignmentValue !== HorizontalAlignment.Left;\r\n }\r\n\r\n get largeBlock() {\r\n return (this.content?.largeBlock?.length > 0 && this.content.largeBlock[0]) || null;\r\n }\r\n\r\n get halfWidthBlocksOne() {\r\n return (this.content?.halfWidthBlocks?.length > 0 && this.content.halfWidthBlocks[0]) || null;\r\n }\r\n\r\n get halfWidthBlocksTwo() {\r\n return (this.content?.halfWidthBlocks?.length > 1 && this.content.halfWidthBlocks[1]) || null;\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!./OnePlusTwoBlocks.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!./OnePlusTwoBlocks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OnePlusTwoBlocks.vue?vue&type=template&id=799dc4cc&\"\nimport script from \"./OnePlusTwoBlocks.vue?vue&type=script&lang=ts&\"\nexport * from \"./OnePlusTwoBlocks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OnePlusTwoBlocks.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 _c('div',{staticClass:\"ball-pulse pulse-lyn\"},[_c('div',{staticClass:\"spin_lyn1\",attrs:{\"aria-hidden\":\"true\"}},[_c('CIcon',{attrs:{\"name\":\"lyn1\",\"height\":\"22\",\"width\":\"32\",\"alt\":\"\",\"original\":true}})],1),_c('div',{staticClass:\"spin_lyn2\",attrs:{\"aria-hidden\":\"true\"}},[_c('CIcon',{attrs:{\"name\":\"lyn2\",\"height\":\"22\",\"width\":\"32\",\"alt\":\"\",\"original\":true}})],1),_c('div',{staticClass:\"spin_lyn3\",attrs:{\"aria-hidden\":\"true\"}},[_c('CIcon',{attrs:{\"name\":\"lyn3\",\"height\":\"22\",\"width\":\"32\",\"alt\":\"\",\"original\":true}})],1),_c('p',{staticClass:\"sr-only\"},[_vm._v(\" Loading... \")])])}\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\r\nimport Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\n\r\n@Component({\r\n name: 'SpinnerElement'\r\n})\r\nexport default class SpinnerElement extends Vue {\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!./SpinnerElement.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!./SpinnerElement.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpinnerElement.vue?vue&type=template&id=db7d78cc&scoped=true&\"\nimport script from \"./SpinnerElement.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpinnerElement.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SpinnerElement.vue?vue&type=style&index=0&id=db7d78cc&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 \"db7d78cc\",\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!./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('article',{staticClass:\"o-chrome-container flex flex-col bg-white py-40\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[(_vm.headline)?_c('SmartHeadline',{staticClass:\"text-15 md:text-20 text-center mb-30\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.headline)+\" \")]):_vm._e(),_c('div',{staticClass:\"relative\"},[(_vm.rendered && _vm.result)?_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.result.recommendedCategories),function(category,index){return _c('SwiperSlide',{key:index,staticClass:\"c-recommendation-category--item\"},[_c('Interceptor',{staticClass:\"h-full\",attrs:{\"threshold\":0.05},on:{\"visible\":function($event){return _vm.handleSlideVisible(category)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar viewed = ref.viewed;\nreturn [(viewed)?_c('CultureAwareRouterLink',{staticClass:\"bg-gray-300 hover:bg-gray-400 u-trans u-trans-bg h-full flex flex-col pt-25 md:pt-30 pb-20 md:pb-25\",attrs:{\"to\":category.url},nativeOn:{\"click\":function($event){return _vm.handleClickCategory(category)}}},[_c('div',{staticClass:\"w-80 h-80 md:w-100 md:h-100 rounded-full relative overflow-hidden mx-auto mb-15 md:mb-22\"},_vm._l((category.images),function(image,imageIndex){return _c('div',{key:imageIndex,staticClass:\"flex absolute w-40 md:w-50 h-40 md:h-50 min-w-30 c-recommendation-category--item-img bg-white\",class:{\n 'left-0': imageIndex === 0 || imageIndex === 3,\n 'right-0': imageIndex === 1 || imageIndex === 2,\n 'top-0': imageIndex === 0 || imageIndex === 1,\n 'bottom-0': imageIndex === 2 || imageIndex === 3,\n 'c-recommendation-category--item-img--even': imageIndex === 1 || imageIndex === 3,\n }},[_c('img',{directives:[{name:\"on-error\",rawName:\"v-on-error\"}],staticClass:\"responsive-icon m-auto\",attrs:{\"src\":_vm.resizeImageByPath(image.uri).x1,\"srcset\":((_vm.resizeImageByPath(image.uri).x1) + \" 1x, \" + (_vm.resizeImageByPath(image.uri).x2) + \" 2x\"),\"loading\":\"lazy\",\"alt\":category.displayName}})])}),0),_c('div',{staticClass:\"font-bold text-15 text-center px-10 md:px-20 hyphenate\"},[_vm._v(\" \"+_vm._s(category.displayName)+\" \")]),_c('div',{staticClass:\"flex text-9 md:text-12 leading-large mt-auto\"},[_c('div',{staticClass:\"w-1/2 text-center\"},[_c('div',{staticClass:\"font-bold\"},[_vm._v(\" \"+_vm._s(_vm.$localeNumberFilter.get(category.productCount))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Category.Recommendations.ProductsCount'))+\" \")])]),_c('div',{staticClass:\"w-1/2 text-center\"},[_c('div',{staticClass:\"font-bold\"},[_vm._v(\" \"+_vm._s(_vm.$localeNumberFilter.get(category.brandCount))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Category.Recommendations.BrandsCount'))+\" \")])])])]):_vm._e()]}}],null,true)})],1)}),1):_c('div',{staticClass:\"c-recommendation-category--item\"}),_c('button',{staticClass:\"faded-custom-swiper-button-prev hidden md:block theme-text-linkcolor\",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:\"faded-custom-swiper-button-next hidden md:block theme-text-linkcolor\",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)],1)}\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\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 { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { CategoryRecommendationsBlockViewModel } from '@/types/contentServerContract';\r\nimport { RecommendedCategoriesViewModel, RecommendedCategoryViewObject } from '@/types/apiServerContract';\r\nimport loggingService from '@/core/logging.service';\r\nimport Api from '@/project/http/Api.service';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport breakpointService from '@/core/responsive/breakpoints/breakpoints.service';\r\nimport responsiveProductImageService from '@/project/product/image/responsiveProductImage.service';\r\nimport { debounce } from 'lodash';\r\nimport GTMService from '@/project/tracking/gtm/GTM.service';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class CategoryRecommendationsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n })\r\n content!: CategoryRecommendationsBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n })\r\n isFirstBlock!: boolean;\r\n\r\n rendered: boolean = false;\r\n activeBreakpoint: string = '';\r\n result: RecommendedCategoriesViewModel | null = null;\r\n debouncedTrackCategoryViewed = debounce(this.doTrackCategoryViewed, 500);\r\n viewedCategories: { name: string, id: string }[] = [];\r\n\r\n get sliderOptions() {\r\n return {\r\n spaceBetween: 12,\r\n slidesPerView: 'auto',\r\n slidesPerGroup: 1,\r\n slidesPerGroupAuto: true,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: 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 };\r\n }\r\n\r\n get id() {\r\n return 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 handleBreakpointChange() {\r\n const newBreakpoint = breakpointService.getActiveBreakpoint();\r\n if (newBreakpoint !== this.activeBreakpoint) {\r\n this.activeBreakpoint = newBreakpoint;\r\n this.rendered = false;\r\n this.$nextTick(() => this.rendered = true);\r\n }\r\n }\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n async getCategoryData() {\r\n try {\r\n this.result = await Api.recommendations.recommendByCategory({\r\n categoryIdFilterPositiveList: this.content.categoryIdFilterPositiveList,\r\n categoryIdFilterNegativeList: this.content.categoryIdFilterNegativeList,\r\n brandIdFilterList: this.content.brandIdFilterList,\r\n displayedAtLocation: this.content.displayLocation,\r\n periodDays: this.content.interval,\r\n popularityType: this.content.popularity,\r\n categoryCount: this.content.categoryCount\r\n });\r\n } catch (e) {\r\n loggingService.error(e);\r\n }\r\n }\r\n\r\n get headline(): string | undefined {\r\n return this.content?.headline;\r\n }\r\n\r\n resizeImageByPath(path: string): { x1: string, x2: string } {\r\n return {\r\n x1: responsiveProductImageService.formatImageUrl(path, responsiveProductImageService.ImageSizePlaceholderValues.W86),\r\n x2: responsiveProductImageService.formatImageUrl(path, responsiveProductImageService.ImageSizePlaceholderValues.W172)\r\n };\r\n }\r\n\r\n handleClickCategory(category:RecommendedCategoryViewObject) {\r\n GTMService.trackCreativeClick(`recommendedCategory:${category.displayName}`, `recommendedCategory:${category.categoryId}`);\r\n }\r\n\r\n handleSlideVisible(category:RecommendedCategoryViewObject) {\r\n this.viewedCategories.push({ name: `recommendedCategory:${category.displayName}`, id: `recommendedCategory:${category.categoryId}` });\r\n this.debouncedTrackCategoryViewed();\r\n }\r\n\r\n doTrackCategoryViewed() {\r\n const categories = [...this.viewedCategories];\r\n this.viewedCategories = [];\r\n GTMService.trackCreativeView(categories);\r\n }\r\n\r\n created() {\r\n this.getCategoryData();\r\n }\r\n\r\n mounted() {\r\n this.activeBreakpoint = breakpointService.getActiveBreakpoint();\r\n breakpointService.addListener(this.handleBreakpointChange);\r\n this.$nextTick(() => {\r\n this.rendered = true;\r\n });\r\n }\r\n\r\n destroyed() {\r\n breakpointService.removeListener(this.handleBreakpointChange);\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!./CategoryRecommendationsBlock.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!./CategoryRecommendationsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryRecommendationsBlock.vue?vue&type=template&id=0e109f89&\"\nimport script from \"./CategoryRecommendationsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryRecommendationsBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryRecommendationsBlock.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 _c('div',{staticClass:\"h-full\",class:{ 'flex flex-col': _vm.shouldUseFlexBox && _vm.hasTextContent,\n 'flex w-full': _vm.shouldUseFlexBox && !_vm.hasTextContent,\n 'overflow-hidden': !_vm.hasTextContent },style:(_vm.styleForParentContainer)},[(_vm.showCaptionAsContentTitle && _vm.content && _vm.content.caption)?_c('SmartHeadline',{staticClass:\"text-18 md:text-34 mb-10\",attrs:{\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.caption)+\" \")]):_vm._e(),(_vm.content)?_c('section',{ref:\"element\",staticClass:\"relative\",class:_vm.elementClasses,style:(_vm.styleForImageBackground)},[(_vm.content.vimeoVideoId || _vm.content.video)?_c('div',{class:{\n 'absolute inset-0': _vm.hasNoVideoOrVideoHasBeenLoaded,\n 'relative flex flex-col h-full flex-1': !_vm.content.vimeoVideoId\n },style:(_vm.videoContainerStyle)},[(_vm.content.video)?_c('video',{ref:\"videoMount\",staticClass:\"video flex-1\",class:{'video--loaded absolute inset-0': _vm.loadingVideo === false},attrs:{\"controls\":false,\"autoplay\":_vm.content.isBackgroundVideo,\"loop\":_vm.content.isBackgroundVideo,\"height\":\"100%\",\"width\":\"100%\"},domProps:{\"muted\":_vm.content.isBackgroundVideo}},[_c('source',{attrs:{\"src\":_vm.content.video.url,\"type\":'video/' + _vm.content.video.extension}}),_vm._v(\" Your browser does not support the video tag. \")]):(_vm.content.vimeoVideoId)?_c('div',{ref:\"videoMount\",staticClass:\"video\",class:{'video--loaded absolute inset-0': _vm.loadingVideo === false}}):_vm._e()]):_vm._e(),(_vm.hasTextContent || _vm.hasNoVideoOrVideoHasBeenLoaded)?_c('section',{staticClass:\"content-wrapper flex flex-col h-full w-full justify-center\",class:{ 'has-controls': _vm.showHtmlCustomControls,\n 'playing': _vm.isPlaying,\n 'my-auto': _vm.isHeroBanner && _vm.hasTextContent,\n 'wide-banner md:py-20 md:pl-70 md:pr-10': _vm.isWithinWideBannerAspectRatio,\n 'py-60 md:py-20 lg:py-30': (!_vm.isWithinWideBannerAspectRatio && !_vm.isBackgroundImageBehaviorImageDimensions) },style:(_vm.contentWrapperStyle)},[(_vm.showShim)?_c('section',{staticClass:\"absolute inset-0 pointer-events-none\",style:(_vm.shimColor)}):_vm._e(),(_vm.renderContent)?_c('div',{staticClass:\"flex flex-col justify-center\",class:{'items-end': _vm.alignRight },style:(_vm.contentTakeoverTransformStyle)},[_c('div',{staticClass:\"content flex items-center\",class:_vm.contentClass,style:(_vm.backgroundContentColorStyle)},[_c('div',[(_vm.content.caption)?_c('SmartHeadline',{staticClass:\"text-12 font-bold\",class:{\n 'mb-10': _vm.content.header || _vm.content.subheader,\n 'sm:mb-15': (_vm.content.header || _vm.content.subheader) && !_vm.isWithinWideBannerAspectRatio },style:(_vm.colorStyle(_vm.content.captionColor)),attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2'}},[_vm._v(\" \"+_vm._s(_vm.content.caption)+\" \")]):_vm._e(),(_vm.content.header)?_c('SmartHeadline',{directives:[{name:\"font-content-sync\",rawName:\"v-font-content-sync\",value:(_vm.headerFontSyncData),expression:\"headerFontSyncData\"}],staticClass:\"text-wrap-pretty\",class:{ 'mb-10': _vm.content.subheader, 'sm:mb-15': _vm.content.subheader && !_vm.isWithinWideBannerAspectRatio },style:(_vm.colorStyle(_vm.content.headerColor)),attrs:{\"level\":_vm.headerHeadlineLevel,\"style-as-h1\":true}},[_vm._v(\" \"+_vm._s(_vm.content.header)+\" \")]):_vm._e(),(_vm.content.subheader)?_c('p',{staticClass:\"leading-normal whitespace-pre-line\",style:(_vm.colorStyle(_vm.content.subheaderColor))},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.content.subheader)}})]):_vm._e(),(_vm.showCallToActionButton)?_c('CallToAction',{staticClass:\"cta--rounded\",class:{ 'mt-15': _vm.isWithinWideBannerAspectRatio, 'mt-20': !_vm.isWithinWideBannerAspectRatio },attrs:{\"hex-color\":_vm.ctaColor,\"text\":_vm.content.callToAction.name,\"href\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target,\"on-click-event\":_vm.clickHandler}}):(_vm.showCallToActionVideoOverlayButton)?_c('CallToAction',{staticClass:\"cta--rounded\",class:{ 'mt-15': _vm.isWithinWideBannerAspectRatio, 'mt-20': !_vm.isWithinWideBannerAspectRatio },attrs:{\"hex-color\":_vm.ctaColor,\"text\":_vm.content.overlayVimeoCta,\"on-click-event\":_vm.clickHandler},on:{\"click\":_vm.clickOpenVideoOverlay}}):_vm._e()],1)])]):_vm._e(),(_vm.showHtmlCustomControls)?_c('div',{staticClass:\"video-controls flex justify-center z-1\",class:{ 'mt-20': _vm.renderContent }},[_c('button',{staticClass:\"controls\",on:{\"click\":function($event){return _vm.toggleVideoState()}}},[(!_vm.isPlaying)?[_c('CIcon',{staticClass:\"play\",attrs:{\"name\":\"play\",\"width\":\"30\",\"height\":\"30\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Play\")])]:[_c('CIcon',{staticClass:\"pause\",attrs:{\"name\":\"pause\",\"width\":\"30\",\"height\":\"30\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Pause\")])]],2)]):_vm._e(),(_vm.loadingVideo)?_c('div',{staticClass:\"absolute inset-0\"},[_c('SpinnerOverlay',{attrs:{\"show\":\"\"}})],1):_vm._e()]):_vm._e(),(_vm.showCallToActionBlock)?_c('CultureAwareRouterLink',{staticClass:\"absolute inset-0\",attrs:{\"to\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target},nativeOn:{\"click\":function($event){return _vm.clickHandler()}}}):_vm._e()],1):_c('section',{staticClass:\"relative\",style:(_vm.aspectRatioStyling)},[_c('div',{staticClass:\"absolute inset-0\"},[_c('SpinnerOverlay',{attrs:{\"show\":!_vm.contentLoadError}})],1)])],1)}\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\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\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\n\n\n\n\r\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { ContentWidth, HeroBannerViewModel, HorizontalAlignment, SubheaderFontSize, Media } from '@/types/contentServerContract';\r\nimport CallToAction from '@/project/form/CallToAction.vue';\r\nimport VimeoPlayer from '@vimeo/player';\r\nimport breakpointState from '@/core/responsive/breakpoints/breakpointsState.observable';\r\nimport { MAX_MD, MIN_LG, MIN_MD, MAX_SM, MIN_XS } from '@/core/config/breakpointConfig';\r\nimport { hexToRgb, isValidHexColor } from '@/core/color/color.service';\r\nimport { AdContentBlockViewModel, AdImage } from '@/types/apiServerContract';\r\nimport SpinnerOverlay from '@/project/spinners/SpinnerOverlay.vue';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport tailwind from '@/styling/tailwind.config';\r\nimport themeService from '@/project/app/themes/theme.service';\r\nimport loggingService from '@/core/logging.service';\r\nimport SmartParagraph from '@/core/ui-components/SmartParagraph.vue';\r\nimport videoFullscreenOverlayService from '@/project/modals/overlays/VimeoVideoFullscreenOverlay.service';\r\nimport responsiveImageService from '@/core/responsive/image/responsiveImage.service';\r\nimport serverContextService from '@/core/serverContext.service';\r\n\r\nconst mobileAspectRatio = 3 / 2;\r\nconst semiTransparencyPercentage = 0.75;\r\nconst videoAspectRatio = 16 / 9;\r\nconst wideBannerAspectRatio = 5;\r\n\r\ninterface VideoElm {\r\n play: () => void;\r\n pause: () => void;\r\n on: any;\r\n onloadeddata: () => void;\r\n getVideoWidth: () => Promise;\r\n getVideoHeight: () => Promise;\r\n}\r\ninterface CombinedHeroBannerViewModel extends HeroBannerViewModel {\r\n // Mixing HeroBannerViewModel with stuff from AdContentBlockViewModel\r\n overlayVimeoVideoId?:string;\r\n overlayVimeoCta?:string;\r\n}\r\n\r\n@Component({\r\n components: { SmartParagraph, SpinnerOverlay, CallToAction, SmartHeadline }\r\n})\r\nexport default class ImageTextVideoBlockNew extends Vue {\r\n /* Could also be a BaseBlockViewModel - but we handle the missing props:\r\n contentAlignment, contentWidth, subheaderFontSize.\r\n Could also be a AdContentBlockViewModel, but we handle the extra backgroundImages special */\r\n @Prop({\r\n type: Object\r\n }) content!: CombinedHeroBannerViewModel | null;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n }) isFirstBlock!: boolean;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n }) contentLoadError!: boolean;\r\n\r\n @Prop({\r\n type: Function,\r\n default: () => {}\r\n }) clickHandler!: () => void;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n }) isHeroBanner!: boolean;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n }) useFlexBox!: boolean;\r\n\r\n @Prop({\r\n required: true,\r\n type: Number\r\n }) widthOnScreen!: number;\r\n\r\n @Prop({\r\n required: true,\r\n type: Number\r\n }) aspectRatio!: number;\r\n\r\n @Prop()\r\n forceVimeoAspectRatio!: number;\r\n\r\n @Prop({\r\n required: false,\r\n type: Object\r\n }) aspectRatioMargins!: { [bp: string]: number };\r\n\r\n get shouldUseFlexBox() {\r\n return this.useFlexBox && !this.isMobile;\r\n }\r\n\r\n video: VimeoPlayer | VideoElm | null = null;\r\n isPlaying: boolean = false;\r\n loadingVideo: boolean = true;\r\n contentBackgroundColor: string = '';\r\n vimeoVideoAspectRatio: { width: number, height: number } | null = null;\r\n backgroundImageWidth: number | null = null;\r\n rendered: boolean = false;\r\n\r\n get isWithinWideBannerAspectRatio() {\r\n return this.aspectRatio >= wideBannerAspectRatio;\r\n }\r\n\r\n get isMobile() {\r\n return breakpointState.isBreakpointActive(MAX_SM);\r\n }\r\n\r\n get hasTextContent(): boolean {\r\n // By purpose: dont look at callToAction\r\n return !!(this.content?.header || this.content?.subheader || this.content?.caption);\r\n }\r\n\r\n get elementClasses(): string[] {\r\n const classes: string[] = [];\r\n if (this.content?.vimeoVideoId || this.content?.video || this.showBackgroundImage) {\r\n classes.push('has-video-or-image');\r\n }\r\n if (this.shouldUseFlexBox && this.hasTextContent) {\r\n classes.push('flex flex-col flex-1');\r\n }\r\n if (this.isHeroBanner && this.hasTextContent) {\r\n classes.push('flex');\r\n }\r\n if ((this.shouldUseFlexBox && !this.hasTextContent) || (this.hasTextContent && !this.showBackgroundImage)) {\r\n classes.push('h-full');\r\n }\r\n if (this.showBackgroundImage && (!this.isHeroBanner && !this.isBackgroundImageBehaviorImageDimensions)) {\r\n classes.push('min-h-280 md:min-h-350 lg:min-h-400');\r\n }\r\n if (this.showBackgroundImage) {\r\n classes.push('md:h-full');\r\n }\r\n return classes;\r\n }\r\n\r\n get isBackgroundImageBehaviorCover(): boolean {\r\n return this.content?.backgroundImageBehavior === 'cover';\r\n }\r\n\r\n get isBackgroundImageBehaviorImageDimensions(): boolean {\r\n return this.content?.backgroundImageBehavior === 'imageDimensions';\r\n }\r\n\r\n get styleForParentContainer(): Partial {\r\n const styling: Partial = {};\r\n if (this.video) {\r\n styling.backgroundColor = this.backgroundColorStyle.backgroundColor;\r\n const elWidth = this.$el?.clientWidth || 0;\r\n const minHeight = elWidth / ((this.vimeoVideoAspectRatio && this.vimeoVideoAspectRatio.width / this.vimeoVideoAspectRatio.height) || 16 / 9);\r\n styling.minHeight = `${minHeight}px`;\r\n }\r\n return styling;\r\n }\r\n\r\n get styleForImageBackground(): Partial | null {\r\n const styling: Partial = {};\r\n if (this.content?.backgroundImage) {\r\n const backgroundImageBehavior: string = this.content.backgroundImageBehavior;\r\n let backgroundSize: string = 'cover';\r\n let aspectRatio: null | number = this.isMobile ? this.content.backgroundImage.width / this.content.backgroundImage.height : null;\r\n\r\n if (this.isBackgroundImageBehaviorImageDimensions) {\r\n // Set min-height if HalfWidthBlock has very little text next to an image\r\n const elWidth = this.$el?.clientWidth || 0;\r\n const imageAspectRatio = this.content.backgroundImage.width / this.content.backgroundImage.height;\r\n const minHeight = elWidth / imageAspectRatio;\r\n styling.minHeight = `${minHeight}px`;\r\n backgroundSize = 'contain';\r\n } else if (backgroundImageBehavior === 'cover') {\r\n aspectRatio = null;\r\n } else if (backgroundImageBehavior === 'alignTop') {\r\n this.content.backgroundImage.focalPoint.top = 0;\r\n backgroundSize = '100% auto';\r\n } else if (backgroundImageBehavior === 'center') {\r\n backgroundSize = '100% auto';\r\n }\r\n\r\n let newBackgroundWidth = this.content.backgroundImage.width;\r\n let newBackgroundHeight = this.content.backgroundImage.height;\r\n // Upscale image from element width, because we use background-size: cover that \"might\" (most likely will) scale the image a bit.\r\n // Using a low number (e.g. 1.2) makes images look bad in most cases\r\n if (this.backgroundImageWidth !== null) {\r\n const upsizeFactor = 1.5;\r\n const doResize = this.content.backgroundImage.width > this.backgroundImageWidth;\r\n const allowUpscale: boolean = backgroundImageBehavior === 'cover' && this.content.backgroundImage.width > this.backgroundImageWidth * upsizeFactor;\r\n\r\n if (allowUpscale && doResize) {\r\n newBackgroundWidth = Math.round(this.backgroundImageWidth * upsizeFactor);\r\n newBackgroundHeight = Math.round(this.content.backgroundImage.height / this.content.backgroundImage.width * this.backgroundImageWidth * upsizeFactor);\r\n }\r\n }\r\n\r\n const backgroundImageUrl = this.formatImageUrl(this.content.backgroundImage, newBackgroundWidth, newBackgroundHeight, 80);\r\n styling.flex = '1';\r\n styling.backgroundSize = backgroundSize;\r\n styling.backgroundPosition = `${100 * this.content.backgroundImage.focalPoint.left}% ${100 * this.content.backgroundImage.focalPoint.top}%`;\r\n styling.backgroundRepeat = 'no-repeat';\r\n // @ts-ignore\r\n styling.aspectRatio = aspectRatio;\r\n if (this.rendered) {\r\n styling.backgroundImage = `url(${backgroundImageUrl})`;\r\n }\r\n }\r\n styling.backgroundColor = this.backgroundColorStyle.backgroundColor;\r\n if (this.content?.vimeoVideoId && this.vimeoVideoAspectRatio !== null) {\r\n styling.height = '100%';\r\n } else if (this.isHeroBanner && this.content) {\r\n if (!this.hasTextContent && this.content.backgroundImage) {\r\n // Hero banner without text\r\n // @ts-ignore\r\n styling.aspectRatio = this.content.backgroundImage.width / this.content.backgroundImage.height;\r\n } else if (this.content.subheader.length < 80) {\r\n // Force old aspect ratio to Hero Banner if there is only a limited amount of text\r\n const paddingPct = (1 / this.realAspectRatio) * 100;\r\n // @ts-ignore\r\n styling.aspectRatio = `calc(${paddingPct}% - ${this.margin}px)`;\r\n }\r\n }\r\n return styling;\r\n }\r\n\r\n formatImageUrl(image: Media, width: number, height: number, quality?: number): string {\r\n const imageUrl = image.url;\r\n const focalPoint = image.focalPoint;\r\n const firstSeparator = !imageUrl || imageUrl.indexOf('?') === -1 ? '?' : '&';\r\n const focal = focalPoint ? `&rxy=${focalPoint.left},${focalPoint.top}` : '';\r\n const qualityFormatted = quality ? `&quality=${quality}` : '';\r\n const format = image.extension ? `&format=${image.extension}` : '';\r\n return `${this.absoluteImageUrl(imageUrl)}${firstSeparator}width=${width}&height=${height}${format}${focal}${qualityFormatted}`;\r\n }\r\n\r\n absoluteImageUrl(imageUrl: string): string {\r\n return responsiveImageService.getBaseUrl() + imageUrl;\r\n }\r\n\r\n get realAspectRatio(): number {\r\n if (this.shouldUseFlexBox) return 0;\r\n if (this.content?.backgroundImage && this.content.backgroundImageBehavior !== 'cover') {\r\n return this.content.backgroundImage.width / this.content.backgroundImage.height;\r\n }\r\n if (!this.isMobile && this.forceVimeoAspectRatio) return this.forceVimeoAspectRatio;\r\n\r\n // For mobile, aspect-ratio is controlled from within.\r\n return this.isMobile ? mobileAspectRatio : this.vimeoVideoAspectRatio ? (this.vimeoVideoAspectRatio.width / this.vimeoVideoAspectRatio.height) : this.aspectRatio;\r\n }\r\n\r\n get realWidthOnScreen(): number {\r\n // For mobile, width is controlled from within.\r\n return this.isMobile ? 100 : this.widthOnScreen;\r\n }\r\n\r\n get margin() {\r\n if (!this.aspectRatioMargins) return 0;\r\n\r\n const activeBpDef = Object.keys(this.aspectRatioMargins).find(bpDef => breakpointState.isBreakpointActive(bpDef));\r\n const result = activeBpDef ? this.aspectRatioMargins[activeBpDef] : 0;\r\n return result;\r\n }\r\n\r\n get aspectRatioStyling(): Partial {\r\n if (this.shouldUseFlexBox) return {};\r\n\r\n const paddingPct = (1 / this.realAspectRatio) * 100;\r\n return ({\r\n paddingBottom: `calc(${paddingPct}% - ${this.margin}px)`\r\n });\r\n }\r\n\r\n get renderContent() {\r\n return !this.loadingVideo && !this.showCaptionAsContentTitle &&\r\n (this.content?.caption !== '' || this.content?.header !== '' || this.content?.subheader !== '' || this.content?.callToAction !== null);\r\n }\r\n\r\n async mounted() {\r\n this.loadingVideo = !!(this.content?.video || this.content?.vimeoVideoId);\r\n if (!this.content) return; // For normal blocks (not ad) it will always be not null\r\n this.rendered = false;\r\n if (this.content.backgroundImage) {\r\n this.backgroundImageWidth = this.$el.clientWidth;\r\n }\r\n this.initVideo();\r\n this.$nextTick(() => this.rendered = true);\r\n }\r\n\r\n initVideo() {\r\n if (this.content?.video) {\r\n this.loadingVideo = true;\r\n this.video = this.$refs.videoMount as any as VideoElm;\r\n\r\n this.video.onloadeddata = () => {\r\n this.loadingVideo = false;\r\n };\r\n } else if (this.content?.vimeoVideoId) {\r\n this.loadingVideo = true;\r\n this.vimeoVideoAspectRatio = null;\r\n this.video = null;\r\n const options = {\r\n id: ensureId(this.content.vimeoVideoId),\r\n autoplay: this.content.isBackgroundVideo,\r\n loop: this.content.isBackgroundVideo,\r\n muted: this.content.isBackgroundVideo,\r\n controls: this.content.showVideoControls,\r\n title: false,\r\n byline: false,\r\n portrait: false,\r\n color: ((this.isOprema ? tailwind.theme.colors.opremayellow['500'] : tailwind.theme.colors.blue['500']) || '').replace('#', ''),\r\n autopause: !this.content.isBackgroundVideo // Ensure that all videos on a page will autoplay\r\n };\r\n this.$nextTick(() => {\r\n // eslint-disable-next-line no-new\r\n this.video = new VimeoPlayer(this.$refs.videoMount as HTMLElement, options) as VimeoPlayer;\r\n\r\n this.video.on('ended', () => {\r\n this.isPlaying = false;\r\n });\r\n\r\n this.video.on('error', (e) => {\r\n console.log('vimeo video error', e);\r\n });\r\n this.video.on('loaded', () => {\r\n this.getVimeoVideoAspectRatio();\r\n });\r\n });\r\n }\r\n\r\n function ensureId(idOrUrl: string): number {\r\n const idParts = idOrUrl.split(/(\\\\|\\/)/);\r\n let id = idOrUrl;\r\n if (idParts.length > 1) {\r\n id = idParts[idParts.length - 1];\r\n }\r\n return parseInt(id, 10);\r\n }\r\n }\r\n\r\n @Watch('content', {\r\n immediate: true\r\n })\r\n onContentChange(content: HeroBannerViewModel | undefined) {\r\n if (!content) return;\r\n // Set defaults for properties. Width and subheader-font varies depending on whether hero or not\r\n content.contentAligmentValue = content.contentAligmentValue ?? HorizontalAlignment.Left;\r\n content.contentWidthValue = content.contentWidthValue ?? (this.isHeroBanner ? ContentWidth.TwoThird : ContentWidth.FullWidth);\r\n content.subheaderFontSizeValue = content.subheaderFontSizeValue ?? (this.isHeroBanner ? SubheaderFontSize.Large : SubheaderFontSize.Normal);\r\n }\r\n\r\n async getVimeoVideoAspectRatio() {\r\n setTimeout(() => {\r\n this.delayedVideoAspectRatio();\r\n this.loadingVideo = false;\r\n }, 200); // 200 seems to be the magic number after the video is loaded.\r\n }\r\n\r\n async delayedVideoAspectRatio() {\r\n if (this.video) {\r\n const width = await this.video.getVideoWidth();\r\n const height = await this.video.getVideoHeight();\r\n this.vimeoVideoAspectRatio = { width: width, height: height };\r\n }\r\n }\r\n\r\n get isOprema() {\r\n return serverContextService?.isOprema;\r\n }\r\n\r\n get headerFontSyncData(): object {\r\n // Minimum is controlled by current subheader size\r\n const minSize = this.subheaderSize === 'small' ? 15 : 22;\r\n return [\r\n [MIN_LG, { min: minSize, max: 34 }],\r\n [MIN_MD, { min: minSize, max: 22 }],\r\n [MIN_XS, { min: minSize, max: 18 }]\r\n ];\r\n }\r\n\r\n get hasNoVideoOrVideoHasBeenLoaded(): boolean {\r\n if (this.content?.vimeoVideoId || this.content?.video) {\r\n return this.loadingVideo === false && this.vimeoVideoAspectRatio !== null && this.rendered;\r\n }\r\n return true;\r\n }\r\n\r\n toggleVideoState() {\r\n if (!this.video) return;\r\n\r\n if (this.isPlaying) {\r\n try {\r\n this.video.pause();\r\n } catch (e) {\r\n loggingService.error(e);\r\n }\r\n } else {\r\n try {\r\n this.video.play();\r\n } catch (e) {\r\n loggingService.error(e);\r\n }\r\n }\r\n\r\n this.isPlaying = !this.isPlaying;\r\n }\r\n\r\n hexToRgbWithDefault(hex: string, alpha?: number): string {\r\n if (!isValidHexColor(hex)) return tailwind.theme.colors.black;\r\n return hexToRgb(hex, alpha);\r\n }\r\n\r\n get backgroundColorStyle(): { backgroundColor: string } {\r\n let result = 'transparent';\r\n\r\n if (this.content && this.isColorDefined(this.content.backgroundColor)) {\r\n result = this.hexToRgbWithDefault(this.content.backgroundColor);\r\n }\r\n\r\n return ({\r\n backgroundColor: result\r\n });\r\n }\r\n\r\n get contentWrapperStyle(): { backgroundColor: string } {\r\n let result = 'transparent';\r\n\r\n if (this.content && !this.content.backgroundImage && this.isColorDefined(this.content.backgroundColor)) {\r\n result = this.hexToRgbWithDefault(this.content.backgroundColor);\r\n }\r\n\r\n return ({\r\n backgroundColor: result\r\n });\r\n }\r\n\r\n get backgroundContentColorStyle(): Partial {\r\n if (!this.content || this.loadingVideo) return {};\r\n\r\n const backgroundColor = this.content.contentBackgroundColor;\r\n const semiTransparent = this.content.makeContentBackgroundTransparent;\r\n\r\n let result = 'transparent';\r\n\r\n if (this.shouldShowContentBackground && this.isColorDefined(backgroundColor)) {\r\n result = this.hexToRgbWithDefault(backgroundColor, semiTransparent ? semiTransparencyPercentage : undefined);\r\n }\r\n\r\n this.contentBackgroundColor = result;\r\n\r\n return ({\r\n backgroundColor: result\r\n });\r\n }\r\n\r\n // get backgroundImageFormat() {\r\n // return extensionIsGifOrUndefined(this.content?.backgroundImage);\r\n // }\r\n\r\n get contentTakeoverTransformStyle(): Partial {\r\n // Take over banner is 200px taller than normal banners, so we have to push content down by half (100)\r\n // to ensure it is centered correctly\r\n const translateY = this.isTakeOverBanner && !this.isMobile ? 100 : 0;\r\n\r\n return ({\r\n transform: `translateY(${translateY}px)`\r\n });\r\n }\r\n\r\n get ctaColor(): string | null {\r\n return this.content?.callToActionColor || null;\r\n }\r\n\r\n get headerHeadlineLevel(): string {\r\n let level;\r\n\r\n if (this.isFirstBlock && !this.content?.caption && this.content?.header) {\r\n level = 'h1';\r\n } else if ((this.isFirstBlock && this.content?.caption && this.content?.header) || (!this.isFirstBlock && !this.content?.caption && this.content?.header)) {\r\n level = 'h2';\r\n } else {\r\n level = 'h3';\r\n }\r\n\r\n return level;\r\n }\r\n\r\n isColorDefined(color: string): boolean {\r\n return color?.length === 7 ?? false; // #233445\r\n }\r\n\r\n colorStyle(hexColor: string): object {\r\n const EETBlack = tailwind.theme.colors.black;\r\n return ({\r\n color: this.contentBackgroundColor === 'white' ? EETBlack : hexColor ? this.hexToRgbWithDefault(hexColor) : EETBlack\r\n });\r\n }\r\n\r\n get alignRight(): boolean {\r\n return this.content?.contentAligmentValue === HorizontalAlignment.Right; // Left is default\r\n }\r\n\r\n get contentClass(): string {\r\n if (!this.content) return '';\r\n\r\n let widthCls = 'w-full'; // Default for mobile\r\n if (!this.isMobile) {\r\n switch (this.content.contentWidthValue) {\r\n case ContentWidth.OneThird:\r\n widthCls = 'w-1/3';\r\n break;\r\n case ContentWidth.TwoThird:\r\n widthCls = 'w-2/3';\r\n break;\r\n case ContentWidth.FullWidth:\r\n widthCls = 'w-full';\r\n break;\r\n }\r\n }\r\n return `${widthCls}`;\r\n }\r\n\r\n get subheaderSize(): undefined | 'small' | 'large' {\r\n if (!this.content) return undefined;\r\n\r\n if (breakpointState.isBreakpointActive(MAX_MD)) {\r\n return 'small';\r\n }\r\n\r\n return this.content.subheaderFontSizeValue === SubheaderFontSize.Normal ? 'small' : 'large';\r\n }\r\n\r\n get adnuntiusImages() : AdImage[] {\r\n const adImages = (this.content as any as AdContentBlockViewModel).backgroundImages;\r\n if (!adImages || adImages.length === 0) {\r\n return [];\r\n }\r\n\r\n // Take the ones matching aspect-ratio\r\n return adImages\r\n .filter(img => isMatchingImageAspectRatio(img, this.realAspectRatio));\r\n\r\n function isMatchingImageAspectRatio(image: AdImage, aspectRatio: number): boolean {\r\n // Allow for 5 percentage in difference, to be a bit relaxed. Image will overflow correctly\r\n const allowedDelta = aspectRatio * 0.05;\r\n return Math.abs(image.width / image.height - aspectRatio) <= allowedDelta;\r\n }\r\n }\r\n\r\n get adImageProps(): object | null {\r\n if (this.adnuntiusImages.length === 0) {\r\n return null;\r\n }\r\n\r\n // Src-set\r\n const srcset = this.adnuntiusImages\r\n .map(img => `${img.url} ${img.width}w`)\r\n .join(', ');\r\n\r\n // src. Take largest\r\n const src = this.adnuntiusImages\r\n .sort((imageA, imageB) => imageA.width - imageB.width)[this.adnuntiusImages.length - 1].url;\r\n\r\n // Sizes\r\n const sizes = `${this.realWidthOnScreen}vw`;\r\n\r\n return {\r\n srcset,\r\n src,\r\n sizes\r\n };\r\n }\r\n\r\n get shimColor(): Partial {\r\n return { backgroundColor: this.content?.shimColor, opacity: '0.3' };\r\n }\r\n\r\n get videoContainerMoreNarrowThanVideo() {\r\n return this.realAspectRatio < videoAspectRatio;\r\n }\r\n\r\n get videoContainerStyle(): Partial {\r\n if (!this.content) return {};\r\n else if (this.content.vimeoVideoId && !this.isHeroBanner) return {};\r\n else if (this.content.vimeoVideoId && this.isHeroBanner) {\r\n return this.vimeoVideoAspectRatio ? {\r\n // @ts-ignore\r\n aspectRatio: this.vimeoVideoAspectRatio.width / this.vimeoVideoAspectRatio.height\r\n } : {};\r\n }\r\n\r\n return this.videoContainerMoreNarrowThanVideo ? ({\r\n width: 100 + '%',\r\n height: '100%',\r\n left: '50%',\r\n transform: 'translateX(-50%)'\r\n }) : ({\r\n ...(!!(this.content.vimeoVideoId) && { height: 100 * videoAspectRatio + '%' }),\r\n width: '100%',\r\n top: '50%',\r\n transform: 'translateY(-50%)'\r\n });\r\n }\r\n\r\n get shouldShowContentBackground(): boolean {\r\n return this.showBackgroundImage || !!((this.content as any as AdContentBlockViewModel)?.backgroundImages?.length > 0) || !!this.content?.vimeoVideoId;\r\n }\r\n\r\n get showHtmlCustomControls() {\r\n return this.content && this.loadingVideo === false && this.video && this.content.isBackgroundVideo === false && this.content.showVideoControls === false;\r\n }\r\n\r\n get showCaptionAsContentTitle() {\r\n return this.content?.captionLocation === 'Top';\r\n }\r\n\r\n get showBackgroundImage(): boolean {\r\n return !!(this.content?.backgroundImage?.url ?? false);\r\n }\r\n\r\n get showShim(): boolean {\r\n return !!this.content?.shimColor && (!!this.content.vimeoVideoId || !!this.content.video || this.showBackgroundImage || !!this.adImageProps);\r\n }\r\n\r\n get showCallToActionButton(): boolean {\r\n // Show button if there are no overlayVimeoVideoId (then another button should be shown)\r\n return !!(this.content?.callToAction?.name ?? false);\r\n }\r\n\r\n get showCallToActionBlock(): boolean {\r\n return !this.showCallToActionButton && (!!this.content?.callToAction?.url ?? false);\r\n }\r\n\r\n get showCallToActionVideoOverlayButton(): boolean {\r\n return !!(this.content?.overlayVimeoVideoId && this.content?.overlayVimeoCta);\r\n }\r\n\r\n get isTakeOverBanner() {\r\n return this.isFirstBlock && themeService.isTakeOverEnabled;\r\n }\r\n\r\n async clickOpenVideoOverlay() {\r\n if (this.content?.overlayVimeoVideoId) {\r\n if (this.video) {\r\n // Pauses video background while playing overlay video\r\n this.video.pause();\r\n }\r\n await videoFullscreenOverlayService.show(this.content.overlayVimeoVideoId, true);\r\n if (this.video) {\r\n // Starts video background again, after video overlay has been closed\r\n this.video.play();\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!./ImageTextVideoBlockNew.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!./ImageTextVideoBlockNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImageTextVideoBlockNew.vue?vue&type=template&id=3c14d79f&scoped=true&\"\nimport script from \"./ImageTextVideoBlockNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImageTextVideoBlockNew.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ImageTextVideoBlockNew.vue?vue&type=style&index=0&id=3c14d79f&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 \"3c14d79f\",\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 _c('article',{staticClass:\"w-full\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock, 'o-container--bleed': _vm.parentAlias }},[_c('div',{class:{ 'py-35 px-40 has-background': _vm.backgroundColor, 'px-10 sm:px-0': !_vm.backgroundColor },style:(_vm.style)},[_c('div',{staticClass:\"w-full break-words\"},[(_vm.content.headline)?_c('smart-headline',{staticClass:\"mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),_c('section',{directives:[{name:\"delegate-html-links\",rawName:\"v-delegate-html-links\"},{name:\"delegate-on-img-error\",rawName:\"v-delegate-on-img-error\"}],ref:\"htmlContent\",staticClass:\"wysiwyg text-block\",domProps:{\"innerHTML\":_vm._s(_vm.bodyText(_vm.content.bodyText))}}),(_vm.content.callToAction)?_c('call-to-action',{staticClass:\"cta--rounded mt-20\",attrs:{\"hex-color\":_vm.content.callToActionColor,\"text\":_vm.content.callToAction.name,\"href\":_vm.content.callToAction.url,\"target\":_vm.content.callToAction.target}}):_vm._e()],1)])])}\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\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { FullWidthTextBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport tableHtmlService from './tableHtml.service';\r\nimport { hexToRgbValues, luma } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class FullWidthTextBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: FullWidthTextBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n @Prop({\r\n required: false,\r\n type: String\r\n }) parentAlias!: string;\r\n\r\n get backgroundColor() {\r\n return this.content.customBackgroundColor\r\n ? this.content.customBackgroundColor\r\n : this.content.backgroundColor ? '#' + this.content.backgroundColor : undefined;\r\n }\r\n\r\n get textColor() {\r\n if (!this.backgroundColor) return undefined;\r\n const { red, green, blue } = hexToRgbValues(this.backgroundColor);\r\n const isDarkBackground = luma(red, green, blue) <= 0.5;\r\n return isDarkBackground ? tailwind.theme.colors.white : tailwind.theme.colors.black;\r\n }\r\n\r\n get style(): Partial {\r\n return {\r\n backgroundColor: this.backgroundColor,\r\n color: this.textColor\r\n };\r\n }\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n bodyText(html: string): string {\r\n return tableHtmlService.wrapTableInOuterDivs(html);\r\n }\r\n\r\n $refs!: Vue['$refs'] & {\r\n htmlContent: HTMLElement\r\n }\r\n\r\n mounted() {\r\n tableHtmlService.registerTableOverflow(this.$refs.htmlContent);\r\n }\r\n\r\n beforeDestroy() {\r\n tableHtmlService.unregisterTableOverflow(this.$refs.htmlContent);\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!./FullWidthTextBlock.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!./FullWidthTextBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FullWidthTextBlock.vue?vue&type=template&id=4a0341ec&\"\nimport script from \"./FullWidthTextBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./FullWidthTextBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"relative w-full overflow-visible\"},[(_vm.content.headline && _vm.campaigns.length)?_c('SmartHeadline',{staticClass:\"mb-10\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e(),_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.campaigns),function(campaign,index){return _c('SwiperSlide',{key:index,staticClass:\"c-campaigns--wrapper pt-10\"},[_c('CampaignTeaser',{attrs:{\"content\":campaign,\"icon-in-image\":true,\"force-image-thumb\":_vm.anyCampaignWithImageOrIcon}})],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)}\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\r\nimport { CampaignsViewModel } from '@/types/contentServerContract';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport CampaignTeaser from '@/project/app/content-pages/CampaignTeaser.vue';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\n\r\n@Component({\r\n components: { CampaignTeaser, SmartHeadline }\r\n})\r\nexport default class LatestCampaignsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: CampaignsViewModel;\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 campaigns() {\r\n if (!this.content.firstCampaign) {\r\n return [...this.content.campaigns];\r\n }\r\n return [this.content.firstCampaign, ...this.content.campaigns];\r\n }\r\n\r\n get anyCampaignWithImageOrIcon(): boolean {\r\n return !!this.campaigns.find(c => c.image?.url || (c.showIcon && c.iconUrl));\r\n }\r\n\r\n get id() {\r\n return 'latest-campaigns-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: 'auto',\r\n slidesPerGroup: 1,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: false,\r\n autoHeight: false,\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 };\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!./LatestCampaignsBlock.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!./LatestCampaignsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LatestCampaignsBlock.vue?vue&type=template&id=82656472&scoped=true&\"\nimport script from \"./LatestCampaignsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./LatestCampaignsBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LatestCampaignsBlock.vue?vue&type=style&index=0&id=82656472&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 \"82656472\",\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 _c('article',{staticClass:\"tabbed-content\"},[_c('Tabs',{attrs:{\"header-class\":\"mb-15\"}},_vm._l((_vm.content.tabs),function(tab,index){return _c('Tab',{key:index,attrs:{\"name\":tab.content.headline,\"keep-alive\":tab.content.keepAlive}},[_c('block-list',{attrs:{\"blocks\":tab.content.blocks,\"enable-container\":false}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { TabbedContentBlockViewModel } from '@/types/contentServerContract';\r\nimport Tabs from '@/core/ui-components/tabs/Tabs.vue';\r\nimport Tab from '@/core/ui-components/tabs/Tab.vue';\r\n\r\n@Component({\r\n components: { Tabs, Tab }\r\n})\r\nexport default class TabbedContentBlock extends Vue {\r\n @Prop({ required: true, type: Object })\r\n content!: TabbedContentBlockViewModel;\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!./TabbedContentBlock.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!./TabbedContentBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabbedContentBlock.vue?vue&type=template&id=6c83d80c&\"\nimport script from \"./TabbedContentBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./TabbedContentBlock.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!./ImageTextVideoBlockNew.vue?vue&type=style&index=0&id=3c14d79f&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!./ImageTextVideoBlockNew.vue?vue&type=style&index=0&id=3c14d79f&lang=less&scoped=true&\"","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!./BrandRecommendationsBlock.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!./BrandRecommendationsBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.headline)?_c('SmartHeadline',{staticClass:\"mb-10 only-xs:ml-20 only-xs:mb-20\",class:[{ 'mt-20': _vm.isFirstBlock }, _vm.headlineClasses],attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.headline)+\" \")]):_vm._e(),_c('ProductListTracker',{staticClass:\"relative w-full\",attrs:{\"products\":_vm.products,\"list-name\":_vm.trackingListName},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar productImpression = ref.productImpression;\nvar productClick = ref.productClick;\nreturn [(_vm.useSwiper)?[(_vm.rendered)?_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.products),function(product,index){return _c('SwiperSlide',{key:index,staticClass:\"condensed-product-tile-outer\"},[_c('Interceptor',{attrs:{\"threshold\":0.5},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar viewed = ref.viewed;\nreturn [(viewed)?_c('ProductTile',{class:_vm.productColor,attrs:{\"mode\":\"vertical\",\"product\":product,\"number-of-stock-labels\":1,\"product-click\":productClick,\"tracking-list-name\":_vm.trackingListName,\"relation-type\":_vm.relationType},on:{\"productImpression\":productImpression}}):_vm._e()]}}],null,true)})],1)}),1):_vm._e(),_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)]:_c('div',[_vm._l((_vm.listViewProducts),function(product,index){return _c('div',{key:index + ':' + product.itemId,staticClass:\"mb-10\",class:_vm.productColor},[_c('ProductTile',{attrs:{\"product\":product,\"nested\":\"\",\"number-of-stock-labels\":1,\"mode\":\"horizontal-tiny\",\"product-click\":productClick,\"relation-type\":_vm.relationType,\"tracking-list-name\":_vm.trackingListName},on:{\"productImpression\":productImpression}})],1)}),(_vm.listViewPageSize !== undefined && _vm.products.length > _vm.page * _vm.listViewPageSize)?_c('div',{staticClass:\"flex\"},[_c('CallToAction',{staticClass:\"cta--link cta-icon--16 mx-auto\",attrs:{\"text\":_vm.$dictionary.get('Product.Relations.ShowMore'),\"icon\":\"plus-big\"},on:{\"click\":_vm.handleNextPage}})],1):_vm._e()],2)]}}])})],1)}\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Component from 'vue-class-component';\r\nimport { Prop, Vue } from 'vue-property-decorator';\r\nimport ProductListTracker from '@/project/tracking/gtm/ProductListTracker.vue';\r\nimport { ProductTileViewObject } from '@/types/apiServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport { ProductRelationType } from './constants';\r\nimport breakpointState from '@/core/responsive/breakpoints/breakpointsState.observable';\r\nimport { MIN_LG } from '@/core/config/breakpointConfig';\r\nimport breakpointService from '@/core/responsive/breakpoints/breakpoints.service';\r\n\r\n@Component({\r\n components: { ProductListTracker, SmartHeadline }\r\n})\r\nexport default class CondensedProductList extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Array\r\n })\r\n products!: ProductTileViewObject[];\r\n\r\n @Prop({\r\n required: true,\r\n type: String\r\n }) trackingListName!: string;\r\n\r\n @Prop({\r\n required: false,\r\n type: String,\r\n default: null\r\n }) headline!: string | null;\r\n\r\n @Prop({\r\n required: false,\r\n type: String,\r\n default: 'text-18 md:text-36 font-regular'\r\n })\r\n headlineClasses!: string;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n }) isFirstBlock!: boolean;\r\n\r\n @Prop({\r\n required: false,\r\n type: String,\r\n default: null\r\n }) productBgColor!: string | null;\r\n\r\n @Prop({\r\n required: false,\r\n type: String,\r\n default: null\r\n }) relationType!: ProductRelationType | null;\r\n\r\n @Prop({\r\n type: Boolean,\r\n default: false\r\n }) useSwiper!: boolean;\r\n\r\n @Prop({\r\n type: Number\r\n }) listViewPageSize!: number | undefined;\r\n\r\n page: number = 1;\r\n slidesPerView: 6 | 'auto' = 6; // Desktop (LG and XL) 6, else 'auto'\r\n rendered: boolean = false;\r\n activeBreakpoint: string = '';\r\n\r\n get listViewProducts() {\r\n return this.products.filter((p, index) => this.listViewPageSize === undefined || index < this.page * this.listViewPageSize);\r\n }\r\n\r\n handleNextPage() {\r\n this.page++;\r\n }\r\n\r\n get productColor() {\r\n if (!this.productBgColor) return '';\r\n\r\n switch (this.productBgColor.toLowerCase()) {\r\n case 'white':\r\n return 'bg-white';\r\n case 'gray':\r\n return 'bg-gray-300';\r\n }\r\n }\r\n\r\n get id() {\r\n return 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 handleBreakpointChange() {\r\n const newBreakpoint = breakpointService.getActiveBreakpoint();\r\n if (newBreakpoint !== this.activeBreakpoint) {\r\n this.activeBreakpoint = newBreakpoint;\r\n this.rendered = false;\r\n this.setSlidesPerView();\r\n this.$nextTick(() => this.rendered = true);\r\n }\r\n }\r\n\r\n mounted() {\r\n this.activeBreakpoint = breakpointService.getActiveBreakpoint();\r\n breakpointService.addListener(this.handleBreakpointChange);\r\n this.setSlidesPerView();\r\n this.$nextTick(() => {\r\n this.rendered = true;\r\n });\r\n }\r\n\r\n destroyed() {\r\n breakpointService.removeListener(this.handleBreakpointChange);\r\n }\r\n\r\n setSlidesPerView() {\r\n this.slidesPerView = breakpointState.isBreakpointActive(MIN_LG) ? 6 : 'auto';\r\n }\r\n\r\n get sliderOptions() {\r\n return {\r\n spaceBetween: 10,\r\n slidesPerView: this.slidesPerView,\r\n slidesPerGroup: 1,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: 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 };\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!./CondensedProductList.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!./CondensedProductList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CondensedProductList.vue?vue&type=template&id=589c5ca0&scoped=true&\"\nimport script from \"./CondensedProductList.vue?vue&type=script&lang=ts&\"\nexport * from \"./CondensedProductList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CondensedProductList.vue?vue&type=style&index=0&id=589c5ca0&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 \"589c5ca0\",\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.messages.length > 0)?_c('div',[_vm._t(\"default\",function(){return [_c('ul',{staticClass:\"text-red-500 text-12 font-medium list-reset\"},_vm._l((_vm.messages),function(message,ix){return _c('li',{key:ix,staticClass:\"mt-15\"},[_vm._v(\" \"+_vm._s(_vm.getMessage(message.message))+\" \"),(_vm.errorId)?[_vm._v(\" [ \"+_vm._s(_vm.errorId)+\"] \")]:_vm._e()],2)}),0)]},{\"messages\":_vm.messages,\"deleteMessage\":_vm.deleteMessageAtIndex})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nimport Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport bus from '@/core/bus';\r\nimport { ClientMessage, ValidationErrorEvent, ValidationErrorEventKey } from '@/core/messages/types';\r\nimport dictionaryService from '@/core/translation/dictionary.service';\r\n\r\n@Component\r\nexport default class WebApiMessage extends Vue {\r\n messages: ClientMessage[] = [];\r\n errorId: string = '';\r\n @Prop({\r\n required: true\r\n })\r\n id!: string;\r\n\r\n created() {\r\n bus.on(ValidationErrorEventKey, this.onMessages);\r\n }\r\n\r\n deleteMessageAtIndex(index: number) {\r\n this.messages.splice(index, 1);\r\n }\r\n\r\n onMessages(validationErrorEvent: ValidationErrorEvent) {\r\n if (validationErrorEvent.messagesId === this.id) {\r\n this.messages = validationErrorEvent.messages;\r\n this.errorId = validationErrorEvent.errorId;\r\n validationErrorEvent.handled();\r\n }\r\n }\r\n\r\n getMessage(msgOrLabel: string): string {\r\n if (dictionaryService.exists(msgOrLabel)) {\r\n return dictionaryService.get(msgOrLabel);\r\n }\r\n return msgOrLabel;\r\n }\r\n\r\n destroyed() {\r\n bus.off(ValidationErrorEventKey, this.onMessages);\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!./WebApiMessage.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!./WebApiMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WebApiMessage.vue?vue&type=template&id=b56bf54e&\"\nimport script from \"./WebApiMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebApiMessage.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"pt-20\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('div',{staticClass:\"o-grid\",class:{ '-row-gutter': false }},_vm._l((_vm.filteredBlocks),function(block,index){return _c('section',{key:block._uid,staticClass:\"o-grid--item w-full md:w-1/2 mb-20\"},[_c('ContentBlockContainer',{attrs:{\"index\":index,\"alias\":block.alias,\"content\":block.content,\"width-on-screen\":50,\"aspect-ratio\":710/480,\"parent-alias\":_vm.alias,\"is-first-block\":_vm.isFirstBlock,\"use-flex-box\":_vm.isSiblingVimeoVideo(index)},on:{\"contentLoadError\":function($event){return _vm.contentLoadError(block._uid)}}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\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 { HalfWidthBlocksViewModel, HeroBannerViewModel, JsonContent } from '@/types/contentServerContract';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport ContentBlockContainer from '@/project/app/blocks/ContentBlockContainer.vue';\r\n\r\ninterface JsonContentWithUniqueKey extends JsonContent{\r\n _uid: number;\r\n}\r\n\r\n@Component({\r\n components: { ContentBlockContainer }\r\n})\r\nexport default class HalfWidthBlocks extends Vue {\r\n failingBlocks: number[] = [];\r\n\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: HalfWidthBlocksViewModel;\r\n\r\n @Prop(String) alias!: string;\r\n\r\n @Prop({ required: true, type: Boolean })\r\n isFirstBlock!: boolean;\r\n\r\n // Vimeo videos are not allowed to be cropped, therefor we always respect their aspect ratio\r\n // and then the sibling has to use flexbox to align to its height\r\n isSiblingVimeoVideo(index: number) {\r\n const siblingIndex = index % 2 === 0 ? index + 1 : index - 1;\r\n const sibling = this.blocks[siblingIndex]?.content as HeroBannerViewModel;\r\n return sibling && !!sibling.vimeoVideoId;\r\n }\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n get blocks(): JsonContentWithUniqueKey[] {\r\n return this.content?.blocks?.map((b, ix) => {\r\n return ({\r\n ...b,\r\n _uid: ix\r\n });\r\n }) ?? [];\r\n }\r\n\r\n get filteredBlocks(): JsonContentWithUniqueKey[] {\r\n return this.blocks.filter(b => !this.failingBlocks.includes(b._uid));\r\n }\r\n\r\n contentLoadError(uid: number) {\r\n this.failingBlocks.push(uid);\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!./HalfWidthBlocks.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!./HalfWidthBlocks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HalfWidthBlocks.vue?vue&type=template&id=ede80ffa&\"\nimport script from \"./HalfWidthBlocks.vue?vue&type=script&lang=ts&\"\nexport * from \"./HalfWidthBlocks.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!./CondensedProductList.vue?vue&type=style&index=0&id=589c5ca0&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!./CondensedProductList.vue?vue&type=style&index=0&id=589c5ca0&lang=less&scoped=true&\"","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!./LatestCampaignsBlock.vue?vue&type=style&index=0&id=82656472&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!./LatestCampaignsBlock.vue?vue&type=style&index=0&id=82656472&lang=less&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show || _vm.doShow)?_c('div',{staticClass:\"overlay absolute inset-0 z-spinner select-none\"},[_c('transition',{attrs:{\"appear\":\"\",\"enter-active-class\":\"animated fadeIn u-anim-dur-200\",\"leave-active-class\":\"animated fadeOut u-anim-dur-200\"}},[(_vm.doShow)?_c('div',{staticClass:\"overlay h-full flex items-center justify-center\"},[_c('spinner-element')],1):_vm._e()])],1):_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, Watch } from 'vue-property-decorator';\r\nimport SpinnerElement from '@/project/spinners/SpinnerElement.vue';\r\n\r\n@Component({\r\n components: { SpinnerElement }\r\n})\r\nexport default class Spinner extends Vue {\r\n @Prop({\r\n required: false,\r\n type: Boolean\r\n })\r\n show!: boolean;\r\n\r\n @Prop({\r\n required: false,\r\n type: Number,\r\n default: 250\r\n })\r\n delay!: number;\r\n\r\n @Prop({\r\n required: false,\r\n type: Number,\r\n default: 0\r\n })\r\n minDuration!: number;\r\n\r\n doShow = false;\r\n startTime = 0;\r\n\r\n @Watch('show', {\r\n immediate: true\r\n })\r\n onShowChange(value: boolean) {\r\n this.change(value);\r\n }\r\n\r\n change(value: boolean) {\r\n // Only show after delay, and if shown, show for at least minDuration.\r\n if (value) {\r\n setTimeout(() => {\r\n if (this.show) {\r\n this.doShow = true;\r\n this.startTime = performance.now();\r\n }\r\n }, this.delay);\r\n } else {\r\n const timeShown = performance.now() - this.startTime;\r\n const restTime = Math.max(0, this.minDuration - timeShown);\r\n setTimeout(() => {\r\n if (!this.show) {\r\n this.doShow = false;\r\n }\r\n }, restTime);\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!./SpinnerOverlay.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!./SpinnerOverlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpinnerOverlay.vue?vue&type=template&id=3aa49e76&\"\nimport script from \"./SpinnerOverlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpinnerOverlay.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!./BrandsBlock.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!./BrandsBlock.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('div',{staticClass:\"flex flex-col\",class:[{ 'bg-white': !_vm.backgroundColor, 'p-20 md:p-30 lg:p-40': _vm.isInHalfWidth === false && _vm.content.headline, 'p-10 lg:p-20': _vm.isInHalfWidth === true && _vm.content.headline }, _vm.wrapperClass],style:(_vm.style)},[_c('div',[(_vm.content.headline)?_c('SmartHeadline',{staticClass:\"ml-15 md:ml-0 font-regular\",class:{'my-30 text-18 md:text-36': !_vm.isInHalfWidth, 'my-10 text-16 md:text-24': _vm.isInHalfWidth},attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]):_vm._e()],1),_c('div',{staticClass:\"my-auto\"},[_c('div',{staticClass:\"flex flex-wrap justify-center\",class:_vm.pointsClass},_vm._l((_vm.content.uniqueSellingPointItems),function(item,ix){return _c('UniqueSellingPointItem',{key:ix,class:[_vm.itemClasses, {'my-30 px-20 md:px-30': !_vm.isInHalfWidth, 'my-10 px-10': _vm.isInHalfWidth}],attrs:{\"content\":item.content,\"text-style\":_vm.itemTextStyle}})}),1)])])])}\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\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { UniqueSellingPointBlocksViewModel } from '@/types/contentServerContract';\r\nimport UniqueSellingPointItem from './UniqueSellingPointItem.vue';\r\nimport { hexToRgbValues, luma } from '@/core/color/color.service';\r\nimport tailwind from '@/styling/tailwind.config';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\n\r\n@Component({\r\n components: { SmartHeadline, UniqueSellingPointItem }\r\n})\r\nexport default class UniqueSellingPointBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: UniqueSellingPointBlocksViewModel;\r\n\r\n @Prop({ required: true, type: Boolean })\r\n isFirstBlock!: boolean;\r\n\r\n @Prop({ type: Boolean })\r\n isInHalfWidth!: boolean;\r\n\r\n @Prop({ type: String })\r\n wrapperClass!: string;\r\n\r\n @Prop({ type: String })\r\n pointsClass!: string;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n get backgroundColor() {\r\n return this.content.customBackgroundColor\r\n ? this.content.customBackgroundColor\r\n : this.content.backgroundColor ? '#' + this.content.backgroundColor : undefined;\r\n }\r\n\r\n get textColor() {\r\n if (!this.backgroundColor) return undefined;\r\n const { red, green, blue } = hexToRgbValues(this.backgroundColor);\r\n const isDarkBackground = luma(red, green, blue) <= 0.5;\r\n return isDarkBackground ? tailwind.theme.colors.white : tailwind.theme.colors.black;\r\n }\r\n\r\n get itemTextStyle(): Partial | undefined {\r\n return this.textColor ? { color: this.textColor } : undefined;\r\n }\r\n\r\n get style(): Partial {\r\n return {\r\n backgroundColor: this.backgroundColor,\r\n color: this.textColor\r\n };\r\n }\r\n\r\n get itemClasses(): string {\r\n let classes: string = '';\r\n if (this.isInHalfWidth) {\r\n if (this.content.uniqueSellingPointItems.length % 2 === 0) {\r\n classes = 'w-1/2';\r\n } else {\r\n classes = 'w-1/2 xl:w-1/3';\r\n }\r\n } else if (this.content.uniqueSellingPointItems.length % 5 === 0) {\r\n classes = 'sm:w-1/2 md:w-1/3 lg:w-1/5';\r\n } else if (this.content.uniqueSellingPointItems.length % 4 === 0) {\r\n classes = 'sm:w-1/2 md:w-1/4';\r\n } else {\r\n classes = 'sm:w-1/2 md:w-1/3';\r\n }\r\n return classes;\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!./UniqueSellingPointBlock.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!./UniqueSellingPointBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UniqueSellingPointBlock.vue?vue&type=template&id=675fe463&\"\nimport script from \"./UniqueSellingPointBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./UniqueSellingPointBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"mode\":\"out-in\",\"tag\":\"div\",\"enter-active-class\":\"animated fadeIn u-anim-dur-350\",\"leave-active-class\":\"animated fadeOut u-anim-dur-250\"}},[(!_vm.success)?_c('article',{key:\"in-progress\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('smart-headline',{staticClass:\"text-18 md:text-34\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.content.headline)+\" \")]),_c('p',{staticClass:\"my-10\"},[(_vm.content.subtitle)?[_vm._v(\" \"+_vm._s(_vm.content.subtitle)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Information.CancelNewsletter.Subtitle'))+\" \")]],2),_c('ValidationObserver',{attrs:{\"tag\":\"section\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('form',{staticClass:\"bg-white px-20 py-15 mt-15\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.submit)}}},[_c('p',{staticClass:\"font-bold text-15\"},[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Information.CancelNewsletter.Email'))+\" \")]),_c('input-text',{staticClass:\"mt-20\",attrs:{\"name\":\"email\",\"type\":\"text\",\"label\":_vm.$dictionary.get('Information.CancelNewsletter.Email'),\"rules\":\"required|email\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('web-api-message',{attrs:{\"id\":\"sendapplicationform\"}}),_c('call-to-action',{staticClass:\"mt-20\",attrs:{\"disabled\":_vm.loading,\"text\":_vm.$dictionary.get('Information.SendApplication'),\"type\":\"submit\"}})],1)]}}],null,false,3151175511)})],1):_c('article',{key:\"success\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[_c('smart-headline',{staticClass:\"text-18 md:text-34\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Information.CancelNewsletter.SuccesTitle'))+\" \")]),_c('p',{staticClass:\"my-10 whitespace-pre-line bg-white p-20\"},[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Information.CancelNewsletter.SuccesSubtitle'))+\" \")])],1)])}\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\n\n\n\n\n\n\n\n\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { CancelNewsletterBlockViewModel } from '@/types/contentServerContract';\r\n\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport WebApiMessage from '@/core/messages/WebApiMessage.vue';\r\nimport Api from '@/project/http/Api.service';\r\nimport loggingService from '@/core/logging.service';\r\n\r\n@Component({\r\n components: { SmartHeadline, WebApiMessage }\r\n})\r\nexport default class CancelNewsletterBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n }) content!: CancelNewsletterBlockViewModel;\r\n\r\n @Prop({\r\n required: true,\r\n type: Boolean\r\n }) isFirstBlock!: boolean;\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n loading: boolean = false;\r\n success: boolean = false;\r\n email: string = '';\r\n\r\n reset() {\r\n this.email = '';\r\n }\r\n\r\n async submit() {\r\n this.loading = true;\r\n\r\n try {\r\n await Api.newsletter.unsubscribe(this.email, 'sendapplicationform');\r\n this.success = true;\r\n } catch (e) {\r\n loggingService.error(e);\r\n } finally {\r\n this.loading = false;\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!./CancelNewsletterBlock.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!./CancelNewsletterBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CancelNewsletterBlock.vue?vue&type=template&id=bd4bc72c&\"\nimport script from \"./CancelNewsletterBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./CancelNewsletterBlock.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.content)?_c('article',{staticClass:\"c-campaign-list__item\"},[_c('div',{staticClass:\"bg-white h-full pb-20 relative flex flex-col\"},[_c('div',{staticClass:\"mb-20\",class:{ 'border border-white': _vm.forceImageThumb && !(_vm.content.image && _vm.content.image.url) }},[(_vm.forceImageThumb || _vm.content.image && _vm.content.image.url)?_c('ResponsiveImage',{attrs:{\"image-url\":_vm.content.image && _vm.content.image.url || '',\"focal-point\":_vm.content.image && _vm.content.image.focalPoint,\"aspect-ratio\":325/183,\"width-on-screen\":{ xs: 50,md: 33, lg: 25}}}):_vm._e()],1),_c('div',{staticClass:\"absolute w-34 h-34\",class:{'-top-10 -left-10': !_vm.iconInImage, 'top-5 left-5': _vm.iconInImage}},[(_vm.content.showIcon && _vm.content.iconUrl)?_c('div',{staticClass:\"relative select-none\"},[_c('CIcon',{staticClass:\"w-34 h-34\",attrs:{\"name\":_vm.defaultCampaignIcon,\"fill\":true,\"original\":true}}),_c('div',{staticClass:\"campaign-image__icon absolute inset-0 p-5 flex items-center justify-center\"},[(_vm.content.iconUrl)?_c('img',{directives:[{name:\"on-error\",rawName:\"v-on-error\"}],attrs:{\"src\":_vm.content.iconUrl,\"alt\":\"campaign-icon\"}}):_vm._e()])],1):_vm._e()]),_c('CultureAwareRouterLink',{staticClass:\"absolute inset-0 z-0 text-hidden-indent\",attrs:{\"to\":_vm.content.campaignUrl}},[_vm._v(\" \"+_vm._s(_vm.content.campaignName)+\" \")]),(_vm.content.campaignName)?_c('CultureAwareRouterLink',{staticClass:\"px-20\",attrs:{\"to\":_vm.content.campaignUrl}},[_c('SmartHeadline',{attrs:{\"level\":\"h3\"}},[_vm._v(\" \"+_vm._s(_vm.content.campaignName)+\" \")])],1):_vm._e(),_c('p',{staticClass:\"px-20 mb-10\",domProps:{\"innerHTML\":_vm._s(_vm.content.teaser)}}),_c('p',{staticClass:\"mt-auto px-20 mb-10\"},[(_vm.content.endDate)?[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Campaigns.EndDate', [_vm.content.endDate]))+\" \")]:_vm._e()],2),_c('div',{staticClass:\"px-20 relative z-1\"},[_c('CallToAction',{staticClass:\"w-full\",attrs:{\"href\":_vm.content.campaignUrl,\"text\":_vm.buttonText}})],1)],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\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { CampaignBlockViewModel } from '@/types/contentServerContract';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport dictionaryService from '@/core/translation/dictionary.service';\r\n\r\n@Component({\r\n components: { SmartHeadline }\r\n})\r\nexport default class CampaignTeaser extends Vue {\r\n @Prop({ required: true, type: Object }) content!: CampaignBlockViewModel;\r\n @Prop({ type: Boolean, default: false }) iconInImage!: boolean;\r\n @Prop({ type: Boolean, default: false }) forceImageThumb!: boolean;\r\n\r\n get buttonText():string {\r\n return this.content.buttonText || dictionaryService.get('Campaigns.DefaultButtonText');\r\n }\r\n\r\n get defaultCampaignIcon() {\r\n return this.content.iconUrl ? 'splash-campaign-no-icon' : 'splash-campaign';\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!./CampaignTeaser.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!./CampaignTeaser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CampaignTeaser.vue?vue&type=template&id=57ac20d2&scoped=true&\"\nimport script from \"./CampaignTeaser.vue?vue&type=script&lang=ts&\"\nexport * from \"./CampaignTeaser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CampaignTeaser.vue?vue&type=style&index=0&id=57ac20d2&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 \"57ac20d2\",\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 _c('article',{staticClass:\"o-chrome-container flex flex-col bg-white py-40\",class:{ '-is-appended-to-prev-block': _vm.appendToPreviousBlock }},[(_vm.headline)?_c('SmartHeadline',{staticClass:\"text-15 md:text-20 text-center mb-30\",attrs:{\"level\":_vm.isFirstBlock ? 'h1' : 'h2',\"style-as-h1\":_vm.isFirstBlock}},[_vm._v(\" \"+_vm._s(_vm.headline)+\" \")]):_vm._e(),_c('div',{staticClass:\"relative\"},[(_vm.recommendedBrands.length && _vm.rendered)?[(_vm.content.isSimpleView)?[(_vm.content.isSimpleView)?_c('div',{staticClass:\"flex flex-row flex-wrap overflow-hidden justify-between h-25 md:h-35 mb-10\"},_vm._l((_vm.recommendedBrands),function(brand,index){return _c('div',{key:index,staticClass:\"c-recommendation-brand-simple--item h-25 md:h-35 mb-5 mx-3 sm:mx-10 lg:mx-20 first:ml-0 last:mr-0\"},[_c('Interceptor',{staticClass:\"h-full flex\",attrs:{\"threshold\":0.05},on:{\"visible\":function($event){return _vm.handleSlideVisible(brand)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar viewed = ref.viewed;\nreturn [(viewed)?_c('CultureAwareRouterLink',{staticClass:\"flex m-auto\",attrs:{\"to\":_vm.getBrandUrl(brand)},nativeOn:{\"click\":function($event){return _vm.handleClickBrand(brand)}}},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!brand.imageLoadFailed),expression:\"!brand.imageLoadFailed\"}],attrs:{\"src\":brand.brandLogo.uri,\"alt\":brand.brandName,\"loading\":\"lazy\"},on:{\"error\":function($event){return _vm.imageLoadError(brand)}}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(brand.imageLoadFailed),expression:\"brand.imageLoadFailed\"}],staticClass:\"m-auto min-h-15 min-w-15 text-18\"},[_vm._v(\" \"+_vm._s(brand.brandName)+\" \")])]):_vm._e()]}}],null,true)})],1)}),0):_vm._e()]:[_c('Swiper',{class:'swiper-' + _vm.id,attrs:{\"id\":_vm.id,\"instance-name\":_vm.id,\"options\":_vm.sliderOptions}},_vm._l((_vm.recommendedBrands),function(brand,index){return _c('SwiperSlide',{key:index,staticClass:\"c-recommendation-brand--item\"},[_c('Interceptor',{staticClass:\"h-full\",attrs:{\"threshold\":0.05},on:{\"visible\":function($event){return _vm.handleSlideVisible(brand)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar viewed = ref.viewed;\nreturn [(viewed)?_c('CultureAwareRouterLink',{staticClass:\"bg-gray-300 hover:bg-gray-400 u-trans u-trans-bg h-full flex flex-col pt-10 md:pt-10 pb-20 md:pb-25\",attrs:{\"to\":_vm.getBrandUrl(brand)},nativeOn:{\"click\":function($event){return _vm.handleClickBrand(brand)}}},[_c('div',{staticClass:\"flex px-10 md:w-160 h-60 m-auto\"},[_c('img',{directives:[{name:\"on-error\",rawName:\"v-on-error\"}],staticClass:\"m-auto max-w-full max-h-full\",attrs:{\"src\":brand.brandLogo.uri,\"alt\":brand.brandName,\"loading\":\"lazy\"}})]),_c('div',{staticClass:\"hidden\"},[_vm._v(\" \"+_vm._s(brand.brandName)+\" \")]),_c('div',{staticClass:\"flex text-9 md:text-12 leading-large mt-auto\"},[_c('div',{staticClass:\"w-1/2 text-center\"},[_c('div',{staticClass:\"font-bold\"},[_vm._v(\" \"+_vm._s(_vm.$localeNumberFilter.get(brand.productCount))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Brand.Recommendations.ProductCount'))+\" \")])]),_c('div',{staticClass:\"w-1/2 text-center\"},[_c('div',{staticClass:\"font-bold\"},[_vm._v(\" \"+_vm._s(_vm.$localeNumberFilter.get(brand.categoryCount))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$dictionary.get('Brand.Recommendations.CategoryCount'))+\" \")])])])]):_vm._e()]}}],null,true)})],1)}),1),_c('button',{staticClass:\"faded-custom-swiper-button-prev hidden md:block theme-text-linkcolor\",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:\"faded-custom-swiper-button-next hidden md:block theme-text-linkcolor\",class:_vm.nextButtonSelector,attrs:{\"slot\":\"button-next\",\"type\":\"button\"},slot:\"button-next\"},[_c('CIcon',{attrs:{\"name\":\"arrow-thin-right\",\"width\":\"25\",\"height\":\"25\"}})],1)]]:_c('div',{class:{'c-recommendation-brand--item': _vm.content.isSimpleView === false, 'c-recommendation-brand-simple--item h-150': _vm.content.isSimpleView === true}})],2)],1)}\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\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\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { BrandRecommendationsBlockViewModel } from '@/types/contentServerContract';\r\nimport {\r\n RecommendedBrandsViewModel,\r\n RecommendedBrandViewObject\r\n} from '@/types/apiServerContract';\r\nimport loggingService from '@/core/logging.service';\r\nimport Api from '@/project/http/Api.service';\r\nimport SmartHeadline from '@/core/ui-components/SmartHeadline.vue';\r\nimport breakpointService from '@/core/responsive/breakpoints/breakpoints.service';\r\nimport ResponsiveIcon from '@/core/responsive/image/ResponsiveIcon.vue';\r\nimport responsiveProductImageService from '@/project/product/image/responsiveProductImage.service';\r\nimport { debounce } from 'lodash';\r\nimport GTMService from '@/project/tracking/gtm/GTM.service';\r\nexport interface RecommendedBrandViewObjectExtended extends RecommendedBrandViewObject {\r\n imageLoadFailed?:boolean;\r\n}\r\n@Component({\r\n components: { ResponsiveIcon, SmartHeadline }\r\n})\r\nexport default class BrandRecommendationsBlock extends Vue {\r\n @Prop({\r\n required: true,\r\n type: Object\r\n })\r\n content!: BrandRecommendationsBlockViewModel;\r\n\r\n @Prop({\r\n required: false,\r\n type: Boolean,\r\n default: false\r\n })\r\n isFirstBlock!: boolean;\r\n\r\n rendered: boolean = false;\r\n activeBreakpoint: string = '';\r\n result: RecommendedBrandsViewModel | null = null;\r\n debouncedTrackBrandViewed = debounce(this.doTrackBrandViewed, 500);\r\n viewedBrands: { name: string, id: string, creative?: string }[] = [];\r\n\r\n get sliderOptions() {\r\n return {\r\n spaceBetween: 12,\r\n slidesPerView: 'auto',\r\n slidesPerGroup: 1,\r\n slidesPerGroupAuto: true,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: 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 };\r\n }\r\n\r\n get id() {\r\n return 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 handleBreakpointChange() {\r\n const newBreakpoint = breakpointService.getActiveBreakpoint();\r\n if (newBreakpoint !== this.activeBreakpoint) {\r\n this.activeBreakpoint = newBreakpoint;\r\n this.rendered = false;\r\n this.$nextTick(() => this.rendered = true);\r\n }\r\n }\r\n\r\n get appendToPreviousBlock() {\r\n return this.content.appendToPreviousBlock && !this.isFirstBlock;\r\n }\r\n\r\n async getBrandData() {\r\n try {\r\n this.result = await Api.recommendations.recommendPopularBrands({\r\n categoryIdFilterPositiveList: this.content.categoryIdFilterPositiveList,\r\n categoryIdFilterNegativeList: this.content.categoryIdFilterNegativeList,\r\n brandIdFilterList: this.content.brandIdFilterList,\r\n displayedAtLocation: this.content.displayLocation,\r\n periodDays: this.content.interval,\r\n popularityType: this.content.popularity,\r\n brandCount: this.content.brandCount,\r\n useDiverseRecommendations: this.content.useDiverseRecommendations\r\n });\r\n } catch (e) {\r\n loggingService.error(e);\r\n }\r\n }\r\n\r\n getBrandUrl(brand: RecommendedBrandViewObject): string {\r\n return `/brands/${brand.brandName.toLowerCase()}`;\r\n }\r\n\r\n get headline(): string | undefined {\r\n return this.content?.headline;\r\n }\r\n\r\n get recommendedBrands(): RecommendedBrandViewObjectExtended[] {\r\n return this.result?.recommendedBrands || [];\r\n }\r\n\r\n resizeImageByPath(path: string): string {\r\n return responsiveProductImageService.formatImageUrl(path, responsiveProductImageService.ImageSizePlaceholderValues.W86);\r\n }\r\n\r\n handleClickBrand(brand:RecommendedBrandViewObject) {\r\n GTMService.trackCreativeClick(brand.brandName, brand.brandName, undefined);\r\n }\r\n\r\n handleSlideVisible(brand:RecommendedBrandViewObject) {\r\n this.viewedBrands.push({ name: brand.brandName, id: brand.brandName, creative: undefined });\r\n this.debouncedTrackBrandViewed();\r\n }\r\n\r\n doTrackBrandViewed() {\r\n const brands = [...this.viewedBrands];\r\n this.viewedBrands = [];\r\n GTMService.trackCreativeView(brands);\r\n }\r\n\r\n imageLoadError(brand) {\r\n brand.imageLoadFailed = true;\r\n this.$forceUpdate();\r\n }\r\n\r\n mounted() {\r\n this.getBrandData();\r\n this.activeBreakpoint = breakpointService.getActiveBreakpoint();\r\n breakpointService.addListener(this.handleBreakpointChange);\r\n this.$nextTick(() => {\r\n this.rendered = true;\r\n });\r\n }\r\n\r\n destroyed() {\r\n breakpointService.removeListener(this.handleBreakpointChange);\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!./BrandRecommendationsBlock.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!./BrandRecommendationsBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrandRecommendationsBlock.vue?vue&type=template&id=0b99be1a&\"\nimport script from \"./BrandRecommendationsBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrandRecommendationsBlock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrandRecommendationsBlock.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"],"sourceRoot":""}