{"version":3,"sources":["pagetypes/ProductFront/ProductFront.tsx","pagetypes/Product/components/SectionWrapper.tsx","pagetypes/Product/helpers.ts","pagetypes/Product/components/ProducerDetails.ts","pagetypes/Product/layouts/ProductDetailsDefault.tsx","pagetypes/Product/layouts/ProductDetailsSweden.tsx","pagetypes/Product/components/FeaturesList.tsx","pagetypes/Product/layouts/ProductDetailsOddlygood.tsx","pagetypes/Product/layouts/ProductDetailsFinlandiaCheese.tsx","pagetypes/Product/layouts/ProductDetailsBaltic.tsx","pagetypes/Product/components/ProductDetails.tsx","pagetypes/Product/utils.ts","pagetypes/Product/components/NutritionDataList.tsx","pagetypes/Product/components/GDAGuide.tsx","pagetypes/Product/layouts/NutritionalInformationDefault.tsx","pagetypes/Product/layouts/NutritionalInformationSweden.tsx","pagetypes/Product/layouts/NutritionalInformationOddlygood.tsx","pagetypes/Product/components/NutritionalInformation.tsx","styleguide/components/Cards/CategoryCard/CategoryCard.tsx","pagetypes/Product/components/ProductCategories.tsx","pagetypes/Product/components/RelatedRecipes.tsx","pagetypes/Product/components/ProductClassificationSection.tsx","styleguide/components/PicturesAndVideos/Picture/index.ts","styleguide/components/PicturesAndVideos/Picture/Picture.tsx","pagetypes/Product/components/ProductTitleBlock.tsx","pagetypes/Product/components/ProductHeader.tsx","pagetypes/Product/layouts/ProductInfoDefault.tsx","pagetypes/Product/layouts/ProductInfoFinlandiaCheese.tsx","pagetypes/Product/components/ProductTitleBlockOddlygood.tsx","pagetypes/Product/components/ProductHeaderOddlygood.tsx","pagetypes/Product/layouts/ProductInfoOddlygood.tsx","pagetypes/Product/components/ProductInfo.tsx","pagetypes/Product/Product.tsx","common/components/ContentColumn/ContentColumn.tsx","styleguide/components/Typography/Ingress/Ingress.tsx","common/hooks/useHeroMedia.ts","pagetypes/Recipe/components/FindMoreSection.tsx","styleguide/components/Typography/BodyText/index.ts","common/components/RelatedProducts/RelatedProducts.tsx","styleguide/components/Typography/Ingress/index.ts"],"names":["ProductFrontWrapper","styled_components__WEBPACK_IMPORTED_MODULE_4__","div","withConfig","displayName","componentId","templateObject_1","Object","tslib__WEBPACK_IMPORTED_MODULE_0__","ProductFrontHeader","common_components_General__WEBPACK_IMPORTED_MODULE_10__","templateObject_3","styleguide_helpers_media__WEBPACK_IMPORTED_MODULE_6__","tablet","templateObject_2","MobileSearchWrapper","templateObject_5","_a","theme","colors","white","grid","gutterInPx","templateObject_4","LinkToAllProductsWrapper","templateObject_7","templateObject_6","__webpack_exports__","react_redux__WEBPACK_IMPORTED_MODULE_2__","state","resource","routing","app","productFront","content","searchResult","sites","settings","siteUrlPrefix","common_components_App_services__WEBPACK_IMPORTED_MODULE_17__","baseSearchUrl","searchUrl","title","titleHtml","isLoading","isSearching","error","heroImageDesktop","heroImageMobile","heroImageOffsetY","heroMediaType","aspects","totalProductCount","siteUrlId","searchQuery","fetchResource","common_components_Resource_reducers_actions__WEBPACK_IMPORTED_MODULE_14__","searchProducts","_reducers_product_search_actions__WEBPACK_IMPORTED_MODULE_15__","search","common_components_Routing_Routable__WEBPACK_IMPORTED_MODULE_16__","onLinkClick","intl","react_intl__WEBPACK_IMPORTED_MODULE_7__","react__WEBPACK_IMPORTED_MODULE_1__","utils_dataLayer__WEBPACK_IMPORTED_MODULE_18__","searchInputChanged","input","heroMedia","utils_media__WEBPACK_IMPORTED_MODULE_9__","styleguide_components_HeroBanners_Hero__WEBPACK_IMPORTED_MODULE_3__","size","src","mediaSrc","mediaType","offsetY","common_components_Navigation_components_SearchResults_SearchResults__WEBPACK_IMPORTED_MODULE_11__","placeholder","formatMessage","id","showMostPopularKeywords","mostPopularKeywords","onSetSearchText","inputSize","styleguide_types_inputTypes__WEBPACK_IMPORTED_MODULE_5__","large","productResults","loading","className","autoSearchUrl","autoSearchUrlQuery","common_components_General_ContentCard__WEBPACK_IMPORTED_MODULE_12__","medium","react_intl__WEBPACK_IMPORTED_MODULE_8__","styleguide_components_Buttons_Button__WEBPACK_IMPORTED_MODULE_19__","href","onClick","undefined","values","common_components_Widgets_WidgetZone__WEBPACK_IMPORTED_MODULE_13__","name","components_SectionWrapper","styled_components_browser_esm","tslib_es6","parseIngredients","ingredients","allergens","emphasizedIngredients","split","map","a","toLowerCase","trim","forEach","length","replace","RegExp","emphasizeIngredients","text","e","ProducerDetails","dl","ProducerDetails_templateObject_1","ProducerDetailTitle","dt","General","ProducerDetailData","dd","PackageSymbolWrapper","ProductDetailsDefault_templateObject_1","PreFormattedBodyText","BodyText","ProductDetailsDefault_templateObject_2","ProductDetailsDefault","keyIngredients","storageDescription","usageDescription","additionalInformation","countryOfOrigin","countryOfProduction","producer","domesticValueInfo","packageSymbols","packageTitle","eanCode","perusId","salesLot","recyclingInstructions","react","ContentColumn","MediumHeader","message","SmallHeader","dangerouslySetInnerHTML","__html","strings","s","i","PackageMark","key","type","technicalName","ProductDetailsSweden","FeaturesListWrapper","ul","FeaturesList_templateObject_1","props","hideBullets","FeaturesListItem","li","FeaturesList_templateObject_2","components_FeaturesList","features","OddlySmallHeader","ProductDetailsOddlygood_templateObject_1","ProductDetailsOddlygood_PackageSymbolWrapper","ProductDetailsOddlygood_templateObject_2","IngredientsBodyText","ProductDetailsOddlygood_templateObject_3","ProductDetailsOddlygood","additionalFeatures","filter","p","disclaimer","f","ProductDetailsFinlandiaCheese_PackageSymbolWrapper","ProductDetailsFinlandiaCheese_templateObject_1","ProductDetailsFinlandiaCheese_IngredientsBodyText","ProductDetailsFinlandiaCheese_templateObject_2","ProductDetailsFinlandiaCheese","ProductDetailsBaltic_PackageSymbolWrapper","ProductDetailsBaltic_templateObject_1","ProductImageDownloadLink","ProductDetailsBaltic_templateObject_2","fonts","secondary","color","brandPrimary","ProductDetailsBaltic","packageWeight","productImageUrl","target","layouts","ProductDetails_a","components_ProductDetails","layout","rest","Layout","Default","hasGda","nutrients","some","nutrient","gda","NutrientList","NutritionDataList_templateObject_2","helpers","NutritionDataList_templateObject_1","NutrientTitle","isFraction","NutritionDataList_templateObject_3","NutrientData","GDA","span","primary","isGdaValueGiven","components_NutritionDataList","items","showGda","amount","unit","GDAGuide","GDAGuide_templateObject_1","typography","heading","components_GDAGuide","MightContainHeader","NutritionalInformationDefault_templateObject_1","HeaderDVContainer","NutritionalInformationDefault_templateObject_2","HeaderDV","NutritionalInformationDefault_templateObject_3","NutritionalInformationDefault","_b","nutritionData","_c","packageContainsFeatures","_d","packageMightContainFeatures","nutritionalInformationReferenceSize","nutritionalInformationReferenceUnit","additionalNutrientInformation","showDailyPercentageTitle","specialNutrients","vitamins","minerals","composition","referenceSize","Typography_BodyText","NutritionalInformationSweden_MightContainHeader","NutritionalInformationSweden_templateObject_1","NutritionalInformationSweden","NutritionalInformationOddlygood_OddlySmallHeader","NutritionalInformationOddlygood_templateObject_1","NutritionalInformationOddlygood_MightContainHeader","NutritionalInformationOddlygood_templateObject_2","NutritionalInformationOddlygood_HeaderDVContainer","NutritionalInformationOddlygood_templateObject_3","NutritionalInformationOddlygood_HeaderDV","NutritionalInformationOddlygood_templateObject_4","NutritionalInformationOddlygood","fdaCompliant","NutritionalInformation_layouts","NutritionalInformation_a","components_NutritionalInformation","CategoryCardWrapper","CategoryCard_templateObject_1","CategoryCardImage","CategoryCard_templateObject_2","CategoryCardTitle","CategoryCard_templateObject_3","CategoryTitle","h3","CategoryCard_templateObject_4","Cards_CategoryCard_CategoryCard","url","categoryTitle","cardTitle","imageUrl","highlightIcon","icon","utils_import","iconName","showImage","alt","ProductCategoriesWrapper","ProductCategories_templateObject_4","helpers_media","ProductCategories_templateObject_1","ProductCategories_templateObject_2","desktop","ProductCategories_templateObject_3","components_ProductCategories","brands","groups","useIntl","RelatedRecipesContentWrapper","RelatedRecipes_templateObject_1","RecipeCardGridContainer","RelatedRecipes_templateObject_2","components_RelatedRecipes","Routable","recipes","findMoreUrl","tagName","greyed","RecipeCardGrid","recipe","RecipeCard","FindMoreSection","buttonLabel","ClassificationSectionWrapper","section","ProductClassificationSection_templateObject_2","ProductClassificationSection_templateObject_1","ClassificationSection","ProductClassificationSection_templateObject_3","components_ProductClassificationSection","productGroups","mainFeatures","isPrintHidden","HighlightedLink","shortid","intense","PicturesAndVideos_Picture","sources","fallbackUrl","fallbackPreset","source","index","srcSet","displayWidth","pixelDensity","media","mimeType","mediaDefinition","renderSource","LazyImage","TitleBlockWrapper","ProductTitleBlock_templateObject_1","TitleWrapper","ProductTitleBlock_templateObject_3","zIndices","titleBlockTitle","ProductTitleBlock_templateObject_2","ProductImageWrapper","ProductTitleBlock_templateObject_7","useSmallImage","styledVariations","productTitleImage","ProductTitleBlock_templateObject_4","ProductTitleBlock_templateObject_5","ProductTitleBlock_templateObject_6","components_ProductTitleBlock","es","siteTheme","services","children","productName","isNovelty","sizeMultiplier","language","multiplier","Icons","forProduct","ProductHeaderWrapper","ProductHeader_templateObject_3","ProductHeader_templateObject_1","ProductHeader_templateObject_2","PackageTabsWrapper","ProductHeader_templateObject_5","border","ProductHeader_templateObject_4","MobileTabsWrapper","ProductHeader_templateObject_6","MobileHeader","h1","templateObject_8","ProductHeader_templateObject_7","LeadTextWrapper","templateObject_9","LeadText","Ingress","templateObject_10","PrintImage","img","templateObject_11","components_ProductHeader","description","packageImageUrl","packageIsNovelty","onPackageChange","packages","currentPackageSlug","productSearchUrl","packageParameterName","productFeaturesParameterName","productAdditionalInformation","renderTabs","showAll","activeSlug","slug","renderAnchorTags","tabs","label","pathname","query_string","isActive","noFollow","Tabs","useExternalProps","isLowerCase","onTabClick","header","Button","linkUrl","linkText","ProductTitleWrapper","ProductInfoDefault_templateObject_2","ProductInfoDefault_templateObject_1","ProductTitle","ProductInfoDefault_templateObject_7","ProductInfoDefault_templateObject_5","ProductInfoDefault_templateObject_3","desktop1440","ProductInfoDefault_templateObject_4","ProductInfoDefault_templateObject_6","PrintTitle","ProductInfoDefault_templateObject_8","ProductInfoDefault","heroOverlayColor","useHeroMedia","Hero","overlayColor","Logo","ContentCard","Divider","default","full","desktopIngress","direction","horizontal","ProductInfoFinlandiaCheese_ProductTitleWrapper","ProductInfoFinlandiaCheese_templateObject_2","ProductInfoFinlandiaCheese_templateObject_1","ProductInfoFinlandiaCheese_ProductTitle","ProductInfoFinlandiaCheese_templateObject_3","ActionButtonWrapper","ProductInfoFinlandiaCheese_templateObject_4","ProductInfoFinlandiaCheese_PrintTitle","ProductInfoFinlandiaCheese_templateObject_5","ProductInfoFinlandiaCheese_LeadTextWrapper","ProductInfoFinlandiaCheese_templateObject_6","ProductInfoFinlandiaCheese_LeadText","Typography_Ingress","ProductInfoFinlandiaCheese_templateObject_7","ProductInfoFinlandiaCheese_MobileHeader","ProductInfoFinlandiaCheese_templateObject_9","ProductInfoFinlandiaCheese_templateObject_8","MobileActionButtonWrapper","ProductInfoFinlandiaCheese_templateObject_11","ProductInfoFinlandiaCheese_templateObject_10","ProductInfoFinlandiaCheese_PrintImage","templateObject_12","ProductInfoFinlandiaCheese_ProductHeaderWrapper","templateObject_15","templateObject_13","templateObject_14","ProductInfoFinlandiaCheese","externalShopUrl","productLocatorUrl","OutlinedButton","LabeledIconButton","isFilled","iconPlacement","rel","logo","ProductTitleBlockOddlygood_TitleBlockWrapper","ProductTitleBlockOddlygood_templateObject_1","ProductTitleBlockOddlygood_TitleWrapper","ProductTitleBlockOddlygood_templateObject_5","ProductTitleBlockOddlygood_templateObject_2","ProductTitleBlockOddlygood_templateObject_3","ProductTitleBlockOddlygood_templateObject_4","ProductTitleBlockOddlygood_ProductImageWrapper","ProductTitleBlockOddlygood_templateObject_10","ProductTitleBlockOddlygood_templateObject_6","ProductTitleBlockOddlygood_templateObject_7","ProductTitleBlockOddlygood_templateObject_8","ProductTitleBlockOddlygood_templateObject_9","ProductTitleBlockOddlygood","ProductHeaderOddlygood_ProductHeaderWrapper","ProductHeaderOddlygood_templateObject_3","ProductHeaderOddlygood_templateObject_1","ProductHeaderOddlygood_templateObject_2","ProductHeaderOddlygood_PackageTabsWrapper","ProductHeaderOddlygood_templateObject_5","ProductHeaderOddlygood_templateObject_4","ProductHeaderOddlygood_MobileTabsWrapper","ProductHeaderOddlygood_templateObject_6","OddlyProductHeader","ProductHeaderOddlygood_templateObject_9","ProductHeaderOddlygood_templateObject_7","ProductHeaderOddlygood_templateObject_8","ProductHeaderOddlygood_LeadTextWrapper","ProductHeaderOddlygood_templateObject_10","ProductHeaderOddlygood_LeadText","ProductHeaderOddlygood_templateObject_11","ProductHeaderOddlygood_PrintImage","ProductHeaderOddlygood_templateObject_12","ProductHeaderOddlygood","ProductInfoOddlygood_PrintTitle","ProductInfoOddlygood_templateObject_1","ProductInfoOddlygood","ProductInfo_layouts","ProductInfo_a","components_ProductInfo","ProductDetailsWrapper","Product_templateObject_2","Product_templateObject_1","OddlygoodProductDetailsWrapper","Product_templateObject_4","Product_templateObject_3","ProductDetailsDividerWrapper","Product_templateObject_6","Product_templateObject_5","ProductSocialAndCartWrapper","Product_templateObject_8","Product_templateObject_7","SocialSectionWrapper","Product_templateObject_10","Product_templateObject_9","AddToShoppingListButtonWrapper","Product_templateObject_13","Product_templateObject_11","Product_templateObject_12","BlockSectionWrapper","Product_templateObject_15","Product_templateObject_14","BlockSectionDivider","templateObject_17","templateObject_16","Product_Product","_super","Product","_this","call","this","onSaveToShoppingList","pkg","getPackage","addToShoppingList","packageSlug","Array","isArray","newSearch","navigateTo","prototype","componentDidMount","getCurrentPackage","ean","productDetails","data","productEAN","productCategory","g","join","event","pageType","pageCategory","dataLayerCategory","dataLayer","setDataLayer","render","relatedProducts","canonicalUrl","facebookAppId","twitterUserName","findMoreRecipesUrl","ownPagesEnabled","packagingSymbolFeatures","allergenicIngredientFeatures","nutritionalFeatures","packageWasteFeatures","packageDepth","packageWidth","packageHeight","defaultImageUrl","getPackageImageUrl","isOddlygood","Helmet","property","getPackageIsNovelty","getPackageSlug","SocialLinks","renderShoppingListButton","isVisible","vertical","titleAsSlug","OddlyWrapper","background","Tertiary","width","OddlyWrapperInner","desktopPadding","stroke","WidgetZone","isFullWidth","isHighlighted","RelatedProducts","listTitle","products","StaticContentHighlight","useDefaultPackage","defaultPackageId","defaultPackage","find","result","AnimatedFlyIconButton","shouldFly","animationIcon","PlusOneIcon","details","x","product","baseState","structuredData","context","productState","endsWith","relatedRecipes","recipeSearchUrl","ingredientsParameter","types","site","_e","_f","_g","_h","themes_theme","shopping_list","injectIntl","styled_components__WEBPACK_IMPORTED_MODULE_1__","styleguide_helpers_media__WEBPACK_IMPORTED_MODULE_2__","StyledIngress","styled_components__WEBPACK_IMPORTED_MODULE_2__","bodyText","_helpers__WEBPACK_IMPORTED_MODULE_3__","__webpack_require__","d","react_redux__WEBPACK_IMPORTED_MODULE_0__","utils_media__WEBPACK_IMPORTED_MODULE_1__","presetSuffix","SectionWrapper","contentSectionHiglighted","SectionWidth","common_components_General__WEBPACK_IMPORTED_MODULE_7__","ImageWrapper","Content","LinkWrapper","FindMoreLink","styleguide_components_Buttons_Button_ButtonLink__WEBPACK_IMPORTED_MODULE_3__","styleguide_components_Typography_MediumHeader_MediumHeader__WEBPACK_IMPORTED_MODULE_4__","styleguide_components_Typography_BodyText_BodyText__WEBPACK_IMPORTED_MODULE_5__","_BodyText__WEBPACK_IMPORTED_MODULE_0__","ProductCardGridContentWrapper","_General__WEBPACK_IMPORTED_MODULE_3__","styleguide_helpers_media__WEBPACK_IMPORTED_MODULE_5__","phone","layoutName","useLazyImages","resourceItems","_Widgets_ProductHighlight__WEBPACK_IMPORTED_MODULE_4__","widgetId","zone","headerTagName","_Ingress__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"static/js/product.5d6c3012.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { connect, MapStateToProps } from 'react-redux';\r\nimport Hero from 'styleguide/components/HeroBanners/Hero';\r\nimport styled from 'styled-components';\r\nimport { InputSize } from 'styleguide/types/inputTypes';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { getHeroMediaSource } from 'utils/media';\r\nimport { ContentWrapper, FrontHeader, FrontTitle } from 'common/components/General';\r\nimport SearchResults from 'common/components/Navigation/components/SearchResults/SearchResults';\r\nimport ContentCard from 'common/components/General/ContentCard';\r\nimport WidgetZone from 'common/components/Widgets/WidgetZone';\r\nimport { ProductSearchResult } from 'common/components/GlobalSearch/services/product-search';\r\nimport { ProductFrontState } from './reducers/reducers';\r\nimport { State } from 'common/reducers';\r\nimport { resourceActions } from 'common/components/Resource/reducers/actions';\r\nimport { productSearchActions } from './reducers/product-search-actions';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport {\r\n\tgetSiteUrlPrefixOrDefault,\r\n\tgetSiteUrlId,\r\n\tgetSettingValue,\r\n\taddSiteUrlPrefix,\r\n} from 'common/components/App/services';\r\nimport { pushOtherPageLoad } from 'utils/dataLayer';\r\nimport { ButtonLink } from 'styleguide/components/Buttons/Button';\r\nimport { ProductFeatures } from 'common/components/Applets/ProductFeatureBrowser/interfaces';\r\n\r\nconst ProductFrontWrapper = styled.div`\r\n\twidth: 100%;\r\n\r\n\t.widget-zone {\r\n\t\twidth: 100%;\r\n\t}\r\n`;\r\n\r\nconst ProductFrontHeader = styled(FrontHeader)`\r\n\t.search-results {\r\n\t\tdisplay: none;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: block;\r\n\t\t`};\r\n\t}\r\n`;\r\n\r\nconst MobileSearchWrapper = styled.div`\r\n\twidth: 100%;\r\n\tbackground: ${({ theme }) => theme.colors.white};\r\n\tpadding: ${({ theme }) => theme.grid.gutterInPx(2)} ${({ theme }) => theme.grid.gutterInPx(2)} 0;\r\n\tborder-radius: 2px;\r\n\ttransform: translateY(${({ theme }) => theme.grid.gutterInPx(-4)});\r\n\tz-index: 1;\r\n\r\n\t${media.tablet`\r\n\t\tdisplay: none;\r\n\t`};\r\n\r\n\tp {\r\n\t\tfont-size: 12px;\r\n\t\tline-height: 16px;\r\n\t\tmargin: ${({ theme }) => theme.grid.gutterInPx(2)} 0 0;\r\n\t}\r\n`;\r\n\r\nconst LinkToAllProductsWrapper = styled.div`\r\n\t${media.tablet`\r\n\t\tdisplay: none;\r\n\t`};\r\n`;\r\n\r\nconst ProductFront: React.FC = ({\r\n\ttitle,\r\n\ttitleHtml,\r\n\tsearchResult,\r\n\tisSearching,\r\n\theroImageDesktop,\r\n\theroImageOffsetY,\r\n\theroMediaType,\r\n\taspects,\r\n\ttotalProductCount,\r\n\theroImageMobile,\r\n\tsearchProducts,\r\n\tsiteUrlPrefix,\r\n\tsiteUrlId,\r\n\tonLinkClick,\r\n\tsearchUrl,\r\n\tsearchQuery,\r\n}) => {\r\n\tconst intl = useIntl();\r\n\r\n\tReact.useEffect(pushOtherPageLoad, []);\r\n\r\n\tconst searchInputChanged = (input: string) => {\r\n\t\tsearchProducts(siteUrlId, input, 5);\r\n\t};\r\n\r\n\tconst heroMedia = getHeroMediaSource(heroMediaType, heroImageDesktop, heroImageMobile, 'product-front-hero');\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{titleHtml || title}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{totalProductCount !== undefined ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\ninterface ProductFrontStateProps {\r\n\tsearchResult?: ProductSearchResult;\r\n\tisLoading?: boolean;\r\n\tisSearching?: boolean;\r\n\terror?: string | null;\r\n\ttitle?: string;\r\n\ttitleHtml?: string;\r\n\theroImageDesktop?: string;\r\n\theroImageMobile?: string;\r\n\theroImageOffsetY: number;\r\n\theroMediaType?: string;\r\n\taspects: ProductFeatures;\r\n\ttotalProductCount?: number;\r\n\tsiteUrlPrefix: string;\r\n\tsiteUrlId: string;\r\n\tsearchUrl: string;\r\n\tsearchQuery: string;\r\n}\r\n\r\nconst mapStateToProps: MapStateToProps = (state): ProductFrontStateProps => {\r\n\tconst resource = state.resource;\r\n\tconst routing = state.routing;\r\n\tconst app = state.app;\r\n\tconst productFront = resource.content as ProductFrontState;\r\n\tconst searchResult = productFront && productFront.searchResult;\r\n\tconst sites = (app.settings && app.settings.sites) || [];\r\n\r\n\tconst siteUrlPrefix = getSiteUrlPrefixOrDefault(routing, sites, '/');\r\n\tconst baseSearchUrl = getSettingValue(state, 'ProductSearch', 'Url') || '/tuotteet/haku/';\r\n\tconst searchUrl = addSiteUrlPrefix(siteUrlPrefix, baseSearchUrl);\r\n\r\n\treturn {\r\n\t\ttitle: resource.title,\r\n\t\ttitleHtml: resource.titleHtml,\r\n\t\tsearchResult,\r\n\t\tisLoading: resource.isLoading,\r\n\t\tisSearching: productFront && productFront.isSearching,\r\n\t\terror: resource.error,\r\n\t\theroImageDesktop: resource.heroImageDesktop,\r\n\t\theroImageMobile: resource.heroImageMobile,\r\n\t\theroImageOffsetY: resource.heroImageOffsetY,\r\n\t\theroMediaType: resource.heroMediaType,\r\n\t\taspects: productFront && productFront.aspects,\r\n\t\ttotalProductCount: productFront && productFront.totalProductCount,\r\n\t\tsiteUrlPrefix,\r\n\t\tsiteUrlId: getSiteUrlId(routing, sites) || '',\r\n\t\tsearchUrl,\r\n\t\tsearchQuery: getSettingValue(state, 'Search', 'SearchQuery') || 'haku',\r\n\t};\r\n};\r\n\r\ninterface ProductFrontDispatchProps {\r\n\tfetchResource: typeof resourceActions.fetchResource;\r\n\tsearchProducts: typeof productSearchActions.search;\r\n}\r\n\r\nexport default connect(mapStateToProps, {\r\n\tfetchResource: resourceActions.fetchResource,\r\n\tsearchProducts: productSearchActions.search,\r\n})(injectRoutable(ProductFront));\r\n","import styled from 'styled-components';\r\n\r\nconst SectionWrapper = styled.div`\r\n\tdisplay: block;\r\n\r\n\t& + & {\r\n\t\tmargin-top: 20px;\r\n\t}\r\n\r\n\t& > p {\r\n\t\tmargin-top: 0;\r\n\t}\r\n\r\n\t& > h4 {\r\n\t\tmargin-bottom: 10px;\r\n\t}\r\n\r\n\t& + & > h4 {\r\n\t\tmargin: 10px 0;\r\n\t}\r\n`;\r\n\r\nexport default SectionWrapper;\r\n","export const parseIngredients = (ingredients: string, allergens: string, emphasizedIngredients: string[]): string => {\r\n\tif (allergens) {\r\n\t\tconst allergensList = allergens.split(';').map(a => a.toLowerCase().trim());\r\n\t\tallergensList.forEach(a => {\r\n\t\t\tif (a.length) {\r\n\t\t\t\tingredients = ingredients.replace(\r\n\t\t\t\t\tnew RegExp(`([\\\\s,(]+|^)(${a})([\\\\s,)]+|$)`, 'gi'),\r\n\t\t\t\t\t`$1$2*$3`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tif (emphasizedIngredients) {\r\n\t\tingredients = emphasizeIngredients(ingredients, emphasizedIngredients);\r\n\t}\r\n\r\n\treturn ingredients;\r\n};\r\n\r\nexport const emphasizeIngredients = (text: string, emphasizedIngredients: string[]) => {\r\n\temphasizedIngredients.forEach(e => {\r\n\t\tif (e.length) {\r\n\t\t\ttext = text.replace(new RegExp(`([\\\\s,(]+|^)(${e})([\\\\s,)]+|$)`, 'gi'), `$1$2$3`);\r\n\t\t}\r\n\t});\r\n\r\n\treturn text;\r\n};\r\n","import styled from 'styled-components';\r\nimport { bodyTextFont } from 'common/components/General';\r\n\r\nexport const ProducerDetails = styled.dl`\r\n\tdisplay: grid;\r\n\tgrid-gap: 15px 30px;\r\n\tgrid-template-columns: auto 2fr;\r\n\talign-content: center;\r\n\tmargin: 40px 0;\r\n`;\r\n\r\nexport const ProducerDetailTitle = styled.dt`\r\n\t${({ theme }) => bodyTextFont(theme)};\r\n\r\n\tfont-size: 15px;\r\n\tfont-weight: 600;\r\n\tline-height: 18px;\r\n`;\r\n\r\nexport const ProducerDetailData = styled.dd`\r\n\t${({ theme }) => bodyTextFont(theme)};\r\n\r\n\tline-height: 1;\r\n\tmargin: 0;\r\n`;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled from 'styled-components';\r\nimport PackageMark from 'styleguide/components/Icons/PackageMark/PackageMark';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport { parseIngredients, emphasizeIngredients } from '../helpers';\r\nimport { convertLineBreaks } from 'utils/strings';\r\nimport { ProducerDetails, ProducerDetailTitle, ProducerDetailData } from '../components/ProducerDetails';\r\nimport { ProductDetailsProps } from '../components/ProductDetails';\r\n\r\nconst PackageSymbolWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\tmargin: -10px;\r\n\r\n\t& > div {\r\n\t\tmargin: 10px;\r\n\t}\r\n`;\r\n\r\nconst PreFormattedBodyText = styled(BodyText)`\r\n\twhite-space: pre-wrap;\r\n`;\r\n\r\nconst ProductDetails: React.FC = ({\r\n\tkeyIngredients,\r\n\tallergens,\r\n\tstorageDescription,\r\n\tusageDescription,\r\n\tadditionalInformation,\r\n\tcountryOfOrigin,\r\n\tcountryOfProduction,\r\n\tproducer,\r\n\tdomesticValueInfo,\r\n\tpackageSymbols,\r\n\tpackageTitle,\r\n\teanCode,\r\n\tperusId,\r\n\tsalesLot,\r\n\trecyclingInstructions,\r\n\temphasizedIngredients,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{allergens && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{storageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{storageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(countryOfOrigin || countryOfProduction || producer || domesticValueInfo) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOfOrigin && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfOrigin}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{countryOfProduction && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfProduction}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{producer && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{domesticValueInfo && domesticValueInfo.length && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{domesticValueInfo}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{perusId && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{packageTitle && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{packageTitle}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t

{perusId}

\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{eanCode && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{eanCode}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{salesLot && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{salesLot ? salesLot.toLowerCase() : ''}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{packageSymbols.map((s, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{usageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{usageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{additionalInformation && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{recyclingInstructions && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{recyclingInstructions}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ProductDetails;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\n\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport { parseIngredients } from '../helpers';\r\nimport { ProducerDetails, ProducerDetailTitle, ProducerDetailData } from '../components/ProducerDetails';\r\nimport { ProductDetailsProps } from '../components/ProductDetails';\r\n\r\nconst ProductDetails: React.FC = ({\r\n\tkeyIngredients,\r\n\tallergens,\r\n\tusageDescription,\r\n\tcountryOfOrigin,\r\n\tcountryOfProduction,\r\n\tpackageTitle,\r\n\teanCode,\r\n\temphasizedIngredients,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{allergens && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\r\n\t\t\t{(packageTitle || eanCode) && (\r\n\t\t\t\t\r\n\t\t\t\t\t{packageTitle && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{packageTitle}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{eanCode && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{eanCode}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\r\n\t\t\t{countryOfProduction && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOfProduction}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ProductDetails;\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { bodyTextFont } from 'common/components/General';\r\nimport { Feature } from '../interfaces';\r\n\r\ninterface StyledProps {\r\n\thideBullets?: boolean;\r\n}\r\n\r\nexport const FeaturesListWrapper = styled.ul`\r\n\tmargin: 0;\r\n\tpadding-left: 1rem;\r\n\r\n\t${props =>\r\n\t\tprops.hideBullets\r\n\t\t\t? `\r\n\t\tlist-style: none;\r\n\t\tpadding: 0;\r\n\t`\r\n\t\t\t: ''};\r\n`;\r\n\r\nexport const FeaturesListItem = styled.li`\r\n\t${({ theme }) => bodyTextFont(theme)};\r\n\r\n\tfont-size: ${props => (props.hideBullets ? '18px' : '13px')};\r\n\tline-height: 20px;\r\n\tpadding: 0;\r\n\r\n\t& + & {\r\n\t\tmargin-top: 5px;\r\n\t}\r\n\r\n\t${props =>\r\n\t\t!props.hideBullets\r\n\t\t\t? `\r\n\t\t\t\tspan {\r\n\t\t\t\t\tfont-size: 18px;\r\n\t\t\t\t}\r\n\t\t\t`\r\n\t\t\t: ''};\r\n`;\r\n\r\nexport interface FeaturesListProps extends StyledProps {\r\n\tfeatures: Feature[];\r\n}\r\n\r\nconst FeaturesList: React.FC = ({ features, hideBullets }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{features.map(({ title }, i) => (\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default FeaturesList;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled from 'styled-components';\r\nimport PackageMark from 'styleguide/components/Icons/PackageMark/PackageMark';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport { parseIngredients } from '../helpers';\r\nimport { convertLineBreaks } from 'utils/strings';\r\nimport { ProducerDetails, ProducerDetailTitle, ProducerDetailData } from '../components/ProducerDetails';\r\nimport FeaturesList from '../components/FeaturesList';\r\nimport { ProductDetailsProps } from '../components/ProductDetails';\r\n\r\nconst OddlySmallHeader = styled(SmallHeader)`\r\n\tfont-size: 16px;\r\n`;\r\n\r\nconst PackageSymbolWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\tmargin: -10px;\r\n\r\n\t& > div {\r\n\t\tmargin: 10px;\r\n\t}\r\n\r\n\tmargin-bottom: 1em;\r\n`;\r\n\r\nconst IngredientsBodyText = styled(BodyText)`\r\n\twhite-space: pre-wrap;\r\n`;\r\n\r\nconst ProductDetails: React.FC = ({\r\n\tkeyIngredients,\r\n\tallergens,\r\n\tstorageDescription,\r\n\tusageDescription,\r\n\tadditionalInformation,\r\n\tcountryOfOrigin,\r\n\tcountryOfProduction,\r\n\tproducer,\r\n\tdomesticValueInfo,\r\n\tpackageSymbols,\r\n\tpackageTitle,\r\n\teanCode,\r\n\tperusId,\r\n\tsalesLot,\r\n\trecyclingInstructions,\r\n\tadditionalFeatures,\r\n\temphasizedIngredients,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{allergens && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{storageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{storageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(countryOfOrigin || countryOfProduction || producer || domesticValueInfo) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOfOrigin && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfOrigin}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{countryOfProduction && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfProduction}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{producer && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{domesticValueInfo && domesticValueInfo.length && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{domesticValueInfo}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{perusId && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{packageTitle && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{packageTitle}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t

{perusId}

\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{eanCode && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{eanCode}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{salesLot && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{salesLot ? salesLot.toLowerCase() : ''}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{packageSymbols.map((s, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\t{packageSymbols\r\n\t\t\t\t\t.filter(p => p.disclaimer)\r\n\t\t\t\t\t.map((f, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t* {f.disclaimer}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\r\n\r\n\t\t\t{usageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{usageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{additionalInformation && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{additionalInformation}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{recyclingInstructions && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{recyclingInstructions}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{additionalFeatures && additionalFeatures.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ProductDetails;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled from 'styled-components';\r\nimport PackageMark from 'styleguide/components/Icons/PackageMark/PackageMark';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport { parseIngredients } from '../helpers';\r\nimport { convertLineBreaks } from 'utils/strings';\r\nimport { ProducerDetails, ProducerDetailTitle, ProducerDetailData } from '../components/ProducerDetails';\r\nimport FeaturesList from '../components/FeaturesList';\r\nimport { ProductDetailsProps } from '../components/ProductDetails';\r\n\r\nconst PackageSymbolWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\tmargin: -10px;\r\n\r\n\t& > div {\r\n\t\tmargin: 10px;\r\n\t}\r\n\r\n\tmargin-bottom: 1em;\r\n`;\r\n\r\nconst IngredientsBodyText = styled(BodyText)`\r\n\twhite-space: pre-wrap;\r\n`;\r\n\r\nconst ProductDetails: React.FC = ({\r\n\tkeyIngredients,\r\n\tallergens,\r\n\tstorageDescription,\r\n\tusageDescription,\r\n\tadditionalInformation,\r\n\tcountryOfOrigin,\r\n\tcountryOfProduction,\r\n\tproducer,\r\n\tdomesticValueInfo,\r\n\tpackageSymbols,\r\n\tpackageTitle,\r\n\teanCode,\r\n\tperusId,\r\n\tsalesLot,\r\n\trecyclingInstructions,\r\n\tadditionalFeatures,\r\n\temphasizedIngredients,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{allergens && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{storageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{storageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(countryOfOrigin || countryOfProduction || producer || domesticValueInfo) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOfOrigin && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfOrigin}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{countryOfProduction && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfProduction}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{producer && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{domesticValueInfo && domesticValueInfo.length && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{domesticValueInfo}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{perusId && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{packageTitle && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{packageTitle}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t

{perusId}

\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{eanCode && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{eanCode}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{salesLot && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{salesLot ? salesLot.toLowerCase() : ''}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{packageSymbols.map((s, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\t{packageSymbols\r\n\t\t\t\t\t.filter(p => p.disclaimer)\r\n\t\t\t\t\t.map((f, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t* {f.disclaimer}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\r\n\r\n\t\t\t{usageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{usageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{additionalInformation && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{additionalInformation}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{recyclingInstructions && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{recyclingInstructions}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{additionalFeatures && additionalFeatures.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ProductDetails;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled from 'styled-components';\r\nimport PackageMark from 'styleguide/components/Icons/PackageMark/PackageMark';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport { parseIngredients } from '../helpers';\r\nimport { convertLineBreaks } from 'utils/strings';\r\nimport { ProducerDetails, ProducerDetailTitle, ProducerDetailData } from '../components/ProducerDetails';\r\nimport { ProductDetailsProps } from '../components/ProductDetails';\r\n\r\nconst PackageSymbolWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\tmargin: -10px;\r\n\r\n\t& > div {\r\n\t\tmargin: 10px;\r\n\t}\r\n`;\r\n\r\nconst ProductImageDownloadLink = styled.div`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tcolor: ${({ theme, color }) => color || theme.colors.brandPrimary};\r\n\tfont-size: 17px;\r\n\tfont-weight: 600;\r\n\tline-height: 1.07;\r\n\ttext-align: left;\r\n\tmargin-top: 2em;\r\n\tmargin-bottom: 1em;\r\n\t& > a {\r\n\t\tcolor: ${({ theme, color }) => color || theme.colors.brandPrimary};\r\n\t}\r\n`;\r\n\r\nconst ProductDetails: React.FC = ({\r\n\tkeyIngredients,\r\n\tallergens,\r\n\tstorageDescription,\r\n\tusageDescription,\r\n\tadditionalInformation,\r\n\tcountryOfOrigin,\r\n\tcountryOfProduction,\r\n\tproducer,\r\n\tdomesticValueInfo,\r\n\tpackageSymbols,\r\n\tpackageTitle,\r\n\teanCode,\r\n\tperusId,\r\n\tpackageWeight,\r\n\tsalesLot,\r\n\trecyclingInstructions,\r\n\tproductImageUrl,\r\n\temphasizedIngredients,\r\n}) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{allergens && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{storageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{storageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(countryOfOrigin || countryOfProduction || producer || domesticValueInfo) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOfOrigin && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfOrigin}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{countryOfProduction && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{countryOfProduction}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{producer && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{domesticValueInfo && domesticValueInfo.length && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{domesticValueInfo}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{perusId && (\r\n\t\t\t\t\r\n\t\t\t\t\t{packageTitle && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{packageTitle}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t

{perusId}

\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{eanCode && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{eanCode}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{packageWeight && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t{packageWeight} {}\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{salesLot && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t

{salesLot ? salesLot.toLowerCase() : ''}

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{packageSymbols.map((s, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{usageDescription && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{usageDescription}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{additionalInformation && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{additionalInformation}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{recyclingInstructions && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{recyclingInstructions}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ProductDetails;\r\n","import * as React from 'react';\r\nimport { Feature } from '../interfaces';\r\nimport { Layouts } from 'common/layouts/types';\r\nimport { SupportedLayouts } from '../interfaces';\r\nimport ProductDetailsDefault from '../layouts/ProductDetailsDefault';\r\nimport ProductDetailsSweden from '../layouts/ProductDetailsSweden';\r\nimport ProductDetailsOddlygood from '../layouts/ProductDetailsOddlygood';\r\nimport ProductDetailsFinlandiaCheese from '../layouts/ProductDetailsFinlandiaCheese';\r\nimport ProductDetailsBaltic from '../layouts/ProductDetailsBaltic';\r\n\r\nconst layouts: Layouts = {\r\n\t['Sweden']: ProductDetailsSweden,\r\n\t['Oddlygood']: ProductDetailsOddlygood,\r\n\t['FinlandiaCheese']: ProductDetailsFinlandiaCheese,\r\n\t['Baltic']: ProductDetailsBaltic,\r\n\t['Default']: ProductDetailsDefault,\r\n};\r\n\r\nexport interface ProductDetailsProps {\r\n\tpackageSymbols: Feature[];\r\n\tkeyIngredients: string;\r\n\tallergens: string;\r\n\temphasizedIngredients: string[];\r\n\tstorageDescription: string;\r\n\tusageDescription: string;\r\n\tadditionalInformation: string;\r\n\tcountryOfOrigin: string;\r\n\tcountryOfProduction: string;\r\n\tproducer: string | null;\r\n\tdomesticValueInfo: string;\r\n\tpackageDepth: number;\r\n\tpackageWidth: number;\r\n\tpackageHeight: number;\r\n\tpackageWeight: number;\r\n\tpackageTitle: string;\r\n\teanCode: string;\r\n\tperusId: number | null;\r\n\tsalesLot: string;\r\n\trecyclingInstructions: string;\r\n\tpackageWasteFeatures: Feature[];\r\n\tadditionalFeatures: Feature[];\r\n\tlayout?: string;\r\n\tproductImageUrl?: string;\r\n}\r\n\r\nconst ProductDetails: React.FC = ({ layout, ...rest }) => {\r\n\tconst Layout = layout ? layouts[layout] : layouts.Default;\r\n\r\n\treturn ;\r\n};\r\n\r\nexport default ProductDetails;\r\n","import { Nutrient } from './interfaces';\r\n\r\nexport function hasGda(nutrients: Nutrient[]) {\r\n\treturn nutrients.some(nutrient => nutrient.gda !== undefined && nutrient.gda !== null);\r\n}\r\n","import * as React from 'react';\r\nimport { Fragment } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { bodyTextFont } from 'common/components/General';\r\nimport { Nutrient } from '../interfaces';\r\nimport { media } from 'styleguide/helpers';\r\nimport { hasGda } from '../utils';\r\n\r\nconst NutrientList = styled.dl`\r\n\t${({ theme }) => bodyTextFont(theme)};\r\n\tfont-size: 16px;\r\n\toverflow: hidden;\r\n\tmargin-top: 0;\r\n\r\n\t${media.tablet`\r\n\t\tfont-size: 18px;\r\n\t`};\r\n`;\r\n\r\nconst NutrientTitle = styled.dt<{ isFraction: boolean }>`\r\n\tclear: both;\r\n\tfloat: left;\r\n\tmax-width: 80%;\r\n\r\n\t${({ isFraction }) => {\r\n\t\tif (isFraction) {\r\n\t\t\treturn css`\r\n\t\t\t\tpadding-left: 20px;\r\n\r\n\t\t\t\t&:before {\r\n\t\t\t\t\tcontent: '•';\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t\twidth: 20px;\r\n\t\t\t\t\tfloat: left;\r\n\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\tmargin-left: -20px;\r\n\t\t\t\t\tfont-size: 21px;\r\n\t\t\t\t\tline-height: 22px;\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t}\r\n\t\treturn null;\r\n\t}};\r\n`;\r\n\r\nconst NutrientData = styled.dd`\r\n\tfloat: right;\r\n\tmargin: 0;\r\n\tmin-width: 20%;\r\n\ttext-align: right;\r\n\twhite-space: nowrap;\r\n`;\r\n\r\nexport const GDA = styled.span`\r\n\tmargin-left: ${({ theme }) => theme.grid.gutterInPx()};\r\n\twidth: 60px;\r\n\tdisplay: inline-block;\r\n\twhite-space: nowrap;\r\n\r\n\t${media.tablet`\r\n\t\twidth: 66px;\r\n\t\tmargin-left: ${({ theme }) => theme.grid.gutterInPx(2)};\r\n\t`};\r\n\r\n\tspan {\r\n\t\tfont-family: ${({ theme }) => theme.fonts.primary};\r\n\t}\r\n`;\r\n\r\nexport interface NutritionDataProps {\r\n\titems: Nutrient[];\r\n}\r\n\r\nconst isGdaValueGiven = (gda?: number) => {\r\n\tif (gda === null || gda === undefined) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n};\r\n\r\nconst NutritionDataList: React.FC = ({ items }) => {\r\n\tconst showGda = hasGda(items);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{items.map(({ isFraction, nutrient, amount, gda, unit }, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{nutrient}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{amount} {unit}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{!isGdaValueGiven(gda) && showGda && }\r\n\t\t\t\t\t\t\t{isGdaValueGiven(gda) && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t({gda} %*)\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default NutritionDataList;\r\n","import styled from 'styled-components';\r\n\r\nconst GDAGuide = styled.p`\r\n\tmargin-top: ${({ theme }) => theme.grid.gutterInPx(4)};\r\n\r\n\tspan {\r\n\t\t${({ theme }) => theme.typography.heading};\r\n\t\tcolor: ${({ theme }) => theme.colors.heading};\r\n\t\tdisplay: inline-block;\r\n\t\tmargin-right: ${({ theme }) => theme.grid.gutterInPx()};\r\n\t}\r\n`;\r\n\r\nexport default GDAGuide;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport NutritionDataList, { GDA } from '../components/NutritionDataList';\r\nimport { NutritionalInformationProps } from '../components/NutritionalInformation';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport FeaturesList from '../components/FeaturesList';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport styled from 'styled-components';\r\nimport { hasGda } from '../utils';\r\nimport GDAGuide from '../components/GDAGuide';\r\nimport BodyText from 'styleguide/components/Typography/BodyText';\r\n\r\nconst NutritionalInformation: React.FC = ({\r\n\tallergens = [],\r\n\tnutritionData,\r\n\tpackageContainsFeatures = [],\r\n\tpackageMightContainFeatures = [],\r\n\tnutritionalInformationReferenceSize,\r\n\tnutritionalInformationReferenceUnit,\r\n\tadditionalNutrientInformation,\r\n\tshowDailyPercentageTitle,\r\n}) => {\r\n\tconst { nutrients, specialNutrients, vitamins, minerals, composition } = nutritionData;\r\n\tconst referenceSizeDisplay = nutritionalInformationReferenceSize ?? 100;\r\n\tconst referenceUnitDisplay = nutritionalInformationReferenceUnit ?? 'g';\r\n\tconst referenceSize = `${referenceSizeDisplay} ${referenceUnitDisplay}`;\r\n\treturn (\r\n\t\t\r\n\t\t\t{nutrients && nutrients.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{showDailyPercentageTitle && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{additionalNutrientInformation && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{additionalNutrientInformation}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{specialNutrients && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{composition && composition.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{vitamins && vitamins.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{minerals && minerals.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(allergens.length !== 0 || packageMightContainFeatures.length !== 0) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{allergens.length !== 0 && }\r\n\t\t\t\t\t{packageMightContainFeatures.length !== 0 && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{packageContainsFeatures && packageContainsFeatures.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{hasGda([...nutrients, ...specialNutrients, ...vitamins, ...minerals, ...composition]) && (\r\n\t\t\t\t\r\n\t\t\t\t\t*\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst MightContainHeader = styled.p`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tfont-size: 18px;\r\n\tline-height: 1.11;\r\n\tpadding-top: 1em;\r\n\tpadding-bottom: 0;\r\n`;\r\n\r\nconst HeaderDVContainer = styled.div`\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n`;\r\n\r\nconst HeaderDV = styled(GDA)`\r\n\ttext-align: right;\r\n\tposition: relative;\r\n\ttop: 8px;\r\n`;\r\n\r\nexport default NutritionalInformation;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport NutritionDataList from '../components/NutritionDataList';\r\nimport { NutritionalInformationProps } from '../components/NutritionalInformation';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport FeaturesList from '../components/FeaturesList';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport styled from 'styled-components';\r\nimport GDAGuide from '../components/GDAGuide';\r\nimport { hasGda } from '../utils';\r\n\r\nconst MightContainHeader = styled.p`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tfont-size: 18px;\r\n\tline-height: 1.11;\r\n\tpadding-top: 1em;\r\n\tpadding-bottom: 0;\r\n`;\r\n\r\nconst NutritionalInformation: React.FC = ({\r\n\tnutritionData,\r\n\tpackageMightContainFeatures = [],\r\n\tnutritionalInformationReferenceSize,\r\n\tnutritionalInformationReferenceUnit,\r\n}) => {\r\n\tconst { nutrients, specialNutrients, vitamins, minerals } = nutritionData;\r\n\tconst referenceSizeDisplay = nutritionalInformationReferenceSize ?? 100;\r\n\tconst referenceUnitDisplay = nutritionalInformationReferenceUnit ?? 'g';\r\n\tconst referenceSize = `${referenceSizeDisplay} ${referenceUnitDisplay}`;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{nutrients && nutrients.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{specialNutrients && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{vitamins && vitamins.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{minerals && minerals.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{packageMightContainFeatures.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{hasGda([...nutrients, ...specialNutrients, ...vitamins, ...minerals]) && (\r\n\t\t\t\t\r\n\t\t\t\t\t*\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default NutritionalInformation;\r\n","import * as React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport SmallHeader from 'styleguide/components/Typography/SmallHeader/SmallHeader';\r\nimport NutritionDataList, { GDA } from '../components/NutritionDataList';\r\nimport { NutritionalInformationProps } from '../components/NutritionalInformation';\r\nimport { ContentColumn } from 'common/components/ContentColumn/ContentColumn';\r\nimport FeaturesList from '../components/FeaturesList';\r\nimport SectionWrapper from '../components/SectionWrapper';\r\nimport styled from 'styled-components';\r\nimport { hasGda } from '../utils';\r\nimport GDAGuide from '../components/GDAGuide';\r\nimport BodyText from 'styleguide/components/Typography/BodyText';\r\n\r\nconst OddlySmallHeader = styled(SmallHeader)`\r\n\tfont-size: 16px;\r\n`;\r\n\r\nconst NutritionalInformation: React.FC = ({\r\n\tallergens = [],\r\n\tnutritionData,\r\n\tpackageContainsFeatures = [],\r\n\tpackageMightContainFeatures = [],\r\n\tnutritionalInformationReferenceSize,\r\n\tnutritionalInformationReferenceUnit,\r\n\tadditionalNutrientInformation,\r\n\tshowDailyPercentageTitle,\r\n\tfdaCompliant,\r\n}) => {\r\n\tconst { nutrients, specialNutrients, vitamins, minerals, composition } = nutritionData;\r\n\tconst referenceSizeDisplay = nutritionalInformationReferenceSize ?? 100;\r\n\tconst referenceUnitDisplay = nutritionalInformationReferenceUnit ?? 'g';\r\n\tconst referenceSize = `${referenceSizeDisplay} ${referenceUnitDisplay}`;\r\n\treturn (\r\n\t\t\r\n\t\t\t{nutrients && nutrients.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{showDailyPercentageTitle && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{additionalNutrientInformation && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{additionalNutrientInformation}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{specialNutrients && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{composition && composition.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{vitamins && vitamins.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{minerals && minerals.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(allergens.length !== 0 || packageMightContainFeatures.length !== 0) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{allergens.length !== 0 && }\r\n\t\t\t\t\t{packageMightContainFeatures.length !== 0 && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{packageContainsFeatures && packageContainsFeatures.length !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{hasGda([...nutrients, ...specialNutrients, ...vitamins, ...minerals, ...composition]) && (\r\n\t\t\t\t\r\n\t\t\t\t\t*\r\n\t\t\t\t\t{fdaCompliant ? : }\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst MightContainHeader = styled.p`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tfont-size: 18px;\r\n\tline-height: 1.11;\r\n\tpadding-top: 1em;\r\n\tpadding-bottom: 0;\r\n`;\r\n\r\nconst HeaderDVContainer = styled.div`\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n`;\r\n\r\nconst HeaderDV = styled(GDA)`\r\n\ttext-align: right;\r\n\tposition: relative;\r\n\ttop: 8px;\r\n`;\r\n\r\nexport default NutritionalInformation;\r\n","import * as React from 'react';\r\nimport { NutritionData, Feature, SupportedLayouts } from '../interfaces';\r\nimport { Layouts } from 'common/layouts/types';\r\nimport NutritionalInformationDefault from '../layouts/NutritionalInformationDefault';\r\nimport NutritionalInformationSweden from '../layouts/NutritionalInformationSweden';\r\nimport NutritionalInformationOddlygood from '../layouts/NutritionalInformationOddlygood';\r\n\r\nconst layouts: Layouts = {\r\n\t['Sweden']: NutritionalInformationSweden,\r\n\t['Oddlygood']: NutritionalInformationOddlygood,\r\n\t['FinlandiaCheese']: NutritionalInformationDefault,\r\n\t['Baltic']: NutritionalInformationDefault,\r\n\t['Default']: NutritionalInformationDefault,\r\n};\r\n\r\nexport interface NutritionalInformationProps {\r\n\tnutritionData: NutritionData;\r\n\tallergens: Feature[];\r\n\tadditionalFeatures: Feature[];\r\n\tpackageContainsFeatures: Feature[];\r\n\tpackageMightContainFeatures: Feature[];\r\n\tnutritionalInformationReferenceSize: number;\r\n\tnutritionalInformationReferenceUnit: string;\r\n\tadditionalNutrientInformation?: string;\r\n\tlayout?: string;\r\n\tshowDailyPercentageTitle: boolean;\r\n\tfdaCompliant?: boolean;\r\n}\r\n\r\nconst NutritionalInformation: React.FC = ({ ...props }) => {\r\n\tconst Layout = props.layout ? layouts[props.layout] : layouts.Default;\r\n\r\n\treturn ;\r\n};\r\n\r\nexport default NutritionalInformation;\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Icon } from 'utils/import';\r\n\r\nconst CategoryCardWrapper = styled.a`\r\n\tbackground: ${props => props.theme.colors.white};\r\n\tborder-radius: 3px;\r\n\tpadding: 35px 15px;\r\n\tbox-sizing: border-box;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\ttext-decoration: none;\r\n`;\r\n\r\nconst CategoryCardImage = styled.div`\r\n\twidth: 100px;\r\n\theight: 50px;\r\n\ttext-align: center;\r\n\tmargin-right: 10px;\r\n\r\n\tdisplay: flex;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: flex-start;\r\n\talign-content: center;\r\n\r\n\t& > img {\r\n\t\tmax-width: 100%;\r\n\t\tmax-height: 100%;\r\n\t}\r\n`;\r\n\r\nconst CategoryCardTitle = styled.p`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tfont-size: 18px;\r\n\tfont-weight: 600;\r\n\tline-height: 1.17;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\tmargin: 0;\r\n`;\r\n\r\nconst CategoryTitle = styled.h3`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 24px;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\ttext-transform: uppercase;\r\n\tmargin: 0;\r\n`;\r\n\r\nexport interface CategoryCardProps {\r\n\tcardTitle: string;\r\n\tcategoryTitle: string;\r\n\timageUrl: string;\r\n\turl: string;\r\n\thighlightIcon?: string;\r\n}\r\n\r\nconst CategoryCard: React.FC = ({ url, categoryTitle, cardTitle, imageUrl, highlightIcon }) => {\r\n\tconst icon = ;\r\n\tconst showImage = !!imageUrl;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{icon ? icon : showImage && {categoryTitle}}\r\n\t\t\t
\r\n\t\t\t\t{cardTitle}\r\n\t\t\t\t{categoryTitle}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default CategoryCard;\r\n","import * as React from 'react';\r\nimport CategoryCard from 'styleguide/components/Cards/CategoryCard/CategoryCard';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport styled from 'styled-components';\r\nimport { useIntl } from 'react-intl';\r\nimport { ContentWrapper } from 'common/components/General';\r\nimport { Brand, Group } from '../interfaces';\r\n\r\nconst ProductCategoriesWrapper = styled(ContentWrapper)`\r\n\tpadding: 0 10px;\r\n\r\n\t${media.tablet`\r\n\t\tflex-direction: row;\r\n\t\tflex-wrap: wrap;\r\n\t\talign-items: stretch;\r\n\t\tjustify-content: center;\r\n\t`};\r\n\r\n\t& > a {\r\n\t\tmargin-top: 20px;\r\n\t\twidth: 100%;\r\n\r\n\t\t${media.tablet`\r\n\t\t\t/* IE */\r\n\t\t\twidth: 530px;\r\n\t\t\twidth: calc(50% - 10px);\r\n\t\t\tflex: 1 1 auto;\r\n\r\n\t\t\t&:nth-child(2n) {\r\n\t\t\t\tmargin-left: 20px;\r\n\t\t\t}\r\n\t\t`};\r\n\r\n\t\t${media.desktop`\r\n\t\t\tflex: 0 0 auto;\r\n\t\t\twidth: 530px;\r\n\t\t`};\r\n\t}\r\n`;\r\n\r\ninterface ProductCategoriesProps {\r\n\tbrands: Brand[];\r\n\tgroups: Group[];\r\n}\r\n\r\nconst ProductCategories: React.FC = ({ brands, groups }) => {\r\n\tconst intl = useIntl();\r\n\treturn (\r\n\t\t\r\n\t\t\t{groups.map(({ title, imageUrl, url }, i) => (\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\t{brands.map(({ title, imageUrl, url, highlightIcon }, i) => (\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ProductCategories;\r\n","import * as React from 'react';\r\nimport RecipeCardGrid from 'styleguide/components/Cards/RecipeCardGrid/RecipeCardGrid';\r\nimport RecipeCard from 'styleguide/components/Cards/RecipeCard/RecipeCard';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport { RecipeCardInterface } from 'styleguide/interfaces/cardInterfaces';\r\nimport styled from 'styled-components';\r\nimport { ContentWrapper } from 'common/components/General';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { FindMoreLink } from '../../Recipe/components/FindMoreSection';\r\n\r\nconst RelatedRecipesContentWrapper = styled(ContentWrapper)`\r\n\t.product-recipes-header {\r\n\t\tmargin: 0 auto 30px;\r\n\t}\r\n`;\r\n\r\nconst RecipeCardGridContainer = styled.div`\r\n\twidth: 100%;\r\n`;\r\n\r\nexport interface RelatedRecipesProps {\r\n\trecipes?: RecipeCardInterface[];\r\n\tfindMoreUrl?: string;\r\n}\r\n\r\nconst RelatedRecipes: React.FC = ({\r\n\trecipes,\r\n\tfindMoreUrl,\r\n\tonLinkClick,\r\n}) => {\r\n\tif (!recipes || recipes.length === 0) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{recipes.map(recipe => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{findMoreUrl && (\r\n\t\t\t\t} />\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default injectRoutable(RelatedRecipes);\r\n","import * as React from 'react';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport styled from 'styled-components';\r\nimport HighlightedLink from 'styleguide/components/Links/HighlightedLink/HighlightedLink';\r\nimport { generate } from 'shortid';\r\nimport { Link } from 'common/interfaces/common';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport { ContentWrapper } from 'common/components/General';\r\n\r\nconst ClassificationSectionWrapper = styled.section`\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tflex-wrap: wrap;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\twidth: 80%;\r\n\tmargin: ${({ theme }) => theme.grid.gutterInPx(2)} auto ${({ theme }) => theme.grid.gutterInPx(2)};\r\n\r\n\t${media.desktop`\r\n\t\twidth: 100%;\r\n\t\tbox-sizing: border-box;\r\n\t\tpadding: 0 120px;\r\n\t flex-direction: row;\r\n\r\n > * {\r\n &:first-child {\r\n margin-right: 17px;\r\n }\r\n }\r\n `};\r\n`;\r\n\r\nconst ClassificationSection = styled.div`\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tflex-wrap: wrap;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\t> * {\r\n\t\tmargin: 8px 2px;\r\n\t}\r\n`;\r\n\r\nexport interface ProductClassificationSectionProps {\r\n\tbrands: Link[];\r\n\tproductGroups: Link[];\r\n\tmainFeatures: Link[];\r\n}\r\n\r\nconst ProductClassificationSection: React.FC = ({\r\n\tbrands,\r\n\tproductGroups,\r\n\tmainFeatures,\r\n\tonLinkClick,\r\n}) => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{brands.map(({ url, title }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\t{productGroups.map(({ url, title }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{mainFeatures.map(({ url, title }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default injectRoutable(ProductClassificationSection);\r\n","import Picture from './Picture';\r\nexport default Picture;\r\n","import * as React from 'react';\r\nimport { PictureSource } from 'styleguide/interfaces/imgInterfaces';\r\nimport { mediaBreakpoints } from 'styleguide/helpers';\r\nimport { LazyImage } from 'styleguide/components/LazyImage';\r\n\r\ninterface Props {\r\n\tsources: PictureSource[];\r\n\tfallbackUrl: string;\r\n\tfallbackPreset: string;\r\n\talt?: string;\r\n}\r\n\r\nconst Picture: React.FC> = ({\r\n\tsources,\r\n\talt,\r\n\tfallbackUrl,\r\n\tfallbackPreset,\r\n\t...rest\r\n}) => {\r\n\tif (!sources || sources?.length === 0) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst renderSource = (source: PictureSource, index: number) => {\r\n\t\tconst {\r\n\t\t\tsrcSet: { url, displayWidth, pixelDensity },\r\n\t\t\tmedia,\r\n\t\t\tmimeType,\r\n\t\t} = source;\r\n\t\tconst mediaDefinition = media ? `(min-width: ${mediaBreakpoints[media]}px)` : undefined;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{sources.map((source, index) => renderSource(source, index))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Picture;\r\n","import * as React from 'react';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport styled from 'styled-components';\r\nimport Picture from 'styleguide/components/PicturesAndVideos/Picture';\r\nimport { State } from 'common/reducers';\r\nimport { MapStateToProps, connect, useSelector } from 'react-redux';\r\nimport { getThemeForResource } from 'common/components/App/services';\r\nimport { Theme } from 'styleguide/themes/theme';\r\nimport { NoveltyIcon } from 'styleguide/components/Icons';\r\nimport { PictureSource } from 'styleguide/interfaces/imgInterfaces';\r\n\r\nconst TitleBlockWrapper = styled.div`\r\n\tposition: relative;\r\n\twidth: 100%;\r\n`;\r\n\r\nconst TitleWrapper = styled.div`\r\n\ttext-align: center;\r\n\tposition: relative;\r\n\tz-index: ${props => props.theme.zIndices.titleBlockTitle};\r\n\tpadding: 50px 30px 0;\r\n\twidth: 100%;\r\n\tbox-sizing: border-box;\r\n\r\n\t${media.desktop`\r\n padding: 30px 120px 0;\r\n `};\r\n`;\r\n\r\nconst ProductImageWrapper = styled.div<{ useSmallImage: boolean }>`\r\n\tposition: absolute;\r\n\tleft: 50%;\r\n\ttransform: translateX(-50%);\r\n\tz-index: 10;\r\n\r\n\t${({ useSmallImage, theme }) => theme.styledVariations.productTitleImage(useSmallImage)};\r\n\r\n\t${media.desktop<{ useSmallImage: boolean }>`\r\n left: auto;\r\n right: 0;\r\n transform: none;\r\n `};\r\n\r\n\t& > img {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t> .novelty-icon {\r\n\t\tposition: absolute;\r\n\r\n\t\twidth: 64px;\r\n\t\theight: 64px;\r\n\t\tbottom: 16px;\r\n\t\tleft: 0px;\r\n\r\n\t\t${media.tablet`\r\n\t\t\twidth: 96px;\r\n\t\t\theight: 96px;\r\n\t\t\tbottom: 32px;\r\n\t\t\tleft: 0px;\r\n\t\t`};\r\n\r\n\t\t${media.desktop`\r\n\t\t\twidth: 120px;\r\n\t\t\theight: 120px;\r\n\t\t\tbottom: 32px;\r\n\t\t\tright: 0px;\r\n\t\t\tleft: auto;\r\n\t\t`};\r\n\t}\r\n`;\r\n\r\nexport interface TitleBlockProps {\r\n\tchildren: React.ReactNode;\r\n\tproductImageUrl: string;\r\n\tproductName: string;\r\n\tuseSmallImage: boolean;\r\n\tisNovelty?: boolean;\r\n}\r\n\r\nconst ProductTitleBlock: React.FC = ({\r\n\tchildren,\r\n\tproductImageUrl,\r\n\tproductName,\r\n\tuseSmallImage,\r\n\tsiteTheme,\r\n\tisNovelty,\r\n}) => {\r\n\tconst isOddlygood = siteTheme === 'oddlygood';\r\n\tconst sizeMultiplier = !useSmallImage || isOddlygood ? 1 : 0.6;\r\n\tconst { language } = useSelector(({ resource }: State) => ({ language: resource.language }));\r\n\r\n\tfunction getSources(url: string, multiplier: number): PictureSource[] {\r\n\t\tif (multiplier < 1) {\r\n\t\t\treturn [\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${500 * multiplier}x${500 * multiplier}-product` },\r\n\t\t\t\t\tmedia: 'desktop1440',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${250}x${250}-product` },\r\n\t\t\t\t\tmedia: 'tablet',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${250}x${250}-product` },\r\n\t\t\t\t},\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\treturn [\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${500 * multiplier}x${500 * multiplier}-product` },\r\n\t\t\t\t\tmedia: 'desktop1440',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${400 * multiplier}x${400 * multiplier}-product` },\r\n\t\t\t\t\tmedia: 'tablet',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcSet: { url: `${url}/${250 * multiplier}x${250 * multiplier}-product` },\r\n\t\t\t\t},\r\n\t\t\t];\r\n\t\t}\r\n\t}\r\n\r\n\tconst sources = getSources(productImageUrl, sizeMultiplier);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{productImageUrl && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{!!isNovelty && }\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface ProductTitleBlockStateProps {\r\n\tsiteTheme?: Theme;\r\n}\r\n\r\nconst mapStateToProps: MapStateToProps = ({\r\n\trouting,\r\n\tapp,\r\n\tresource,\r\n}): ProductTitleBlockStateProps => {\r\n\tconst sites = app.settings?.sites || [];\r\n\tconst siteTheme = sites.length > 0 ? getThemeForResource(routing, sites, resource) : undefined;\r\n\r\n\treturn {\r\n\t\tsiteTheme,\r\n\t};\r\n};\r\n\r\nexport default connect(mapStateToProps)(ProductTitleBlock);\r\n","import * as React from 'react';\r\nimport Ingress from 'styleguide/components/Typography/Ingress/Ingress';\r\nimport Tabs from 'styleguide/components/Tabs/Tabs';\r\nimport styled from 'styled-components';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport ProductClassificationSection from './ProductClassificationSection';\r\nimport { useIntl } from 'react-intl';\r\nimport ProductTitleBlock from './ProductTitleBlock';\r\nimport { Link } from 'common/interfaces/common';\r\nimport { Feature, Package, ProductAdditionalInformation } from '../interfaces';\r\nimport { ContentWrapper } from 'common/components/General';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport { replaceToSearch } from 'utils/query-string';\r\nimport { addSiteUrlPrefix } from 'common/components/App/services';\r\nimport { ButtonLink } from 'styleguide/components/Buttons/Button';\r\n\r\nconst ProductHeaderWrapper = styled.div`\r\n\twidth: 100%;\r\n\tposition: relative;\r\n\r\n\t.title-block-tabs {\r\n\t\tdisplay: none;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: block;\r\n\t\t`};\r\n\t}\r\n\r\n\t.content-tabs {\r\n\t\tdisplay: block;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: none;\r\n\t\t`};\r\n\r\n\t\t@media print {\r\n\t\t\tdisplay: none !important;\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nconst PackageTabsWrapper = styled.div`\r\n\tborder-bottom: 1px solid ${props => props.theme.colors.border};\r\n\tpadding-bottom: 3px;\r\n\twidth: 80%;\r\n\tmargin-bottom: 30px;\r\n\r\n\t${media.tablet`\r\n\t\twidth: 100%;\r\n\t\tmargin-bottom: 0;\r\n\t`};\r\n`;\r\n\r\nconst MobileTabsWrapper = styled(PackageTabsWrapper)`\r\n\tdisplay: none;\r\n\tmargin-bottom: 30px;\r\n\r\n\t@media print {\r\n\t\tdisplay: block !important;\r\n\t}\r\n`;\r\n\r\nconst MobileHeader = styled.h1`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 24px;\r\n\tline-height: 1;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\ttext-align: center;\r\n\tmargin: 0;\r\n\r\n\t${media.desktop`\r\n\t\tdisplay: none;\r\n\t`};\r\n`;\r\n\r\nconst LeadTextWrapper = styled(ContentWrapper)`\r\n\t@media print {\r\n\t\tflex-direction: row;\r\n\t\tjustify-content: center;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 3mm;\r\n\t}\r\n`;\r\n\r\nconst LeadText = styled(Ingress)`\r\n\t@media print {\r\n\t\tflex: 1 1 auto;\r\n\t\ttext-align: left;\r\n\t}\r\n`;\r\n\r\nconst PrintImage = styled.img`\r\n\tdisplay: none;\r\n\r\n\t@media print {\r\n\t\tdisplay: block;\r\n\t\tflex: 0 0 40mm;\r\n\t\twidth: 40mm;\r\n\t}\r\n`;\r\n\r\ninterface ProductHeaderProps {\r\n\tdescription: string;\r\n\tbrands: Link[];\r\n\tproductGroups: Link[];\r\n\tmainFeatures: Feature[];\r\n\tproductName: string;\r\n\tpackages: Package[];\r\n\tpackageImageUrl: string;\r\n\tpackageIsNovelty: boolean;\r\n\tcurrentPackageSlug?: string;\r\n\tuseSmallImage: boolean;\r\n\tonPackageChange: (packageId: string) => void;\r\n\tsiteUrlPrefix: string;\r\n\tproductSearchUrl: string;\r\n\tpackageParameterName: string;\r\n\tproductFeaturesParameterName: string;\r\n\tproductAdditionalInformation: ProductAdditionalInformation | undefined;\r\n}\r\n\r\nconst ProductHeader: React.FC = ({\r\n\tbrands,\r\n\tproductGroups,\r\n\tproductName,\r\n\tdescription,\r\n\tpackageImageUrl,\r\n\tpackageIsNovelty,\r\n\tuseSmallImage,\r\n\tonPackageChange,\r\n\tpackages,\r\n\tcurrentPackageSlug,\r\n\tmainFeatures,\r\n\trouting,\r\n\tsiteUrlPrefix,\r\n\tproductSearchUrl,\r\n\tpackageParameterName,\r\n\tproductFeaturesParameterName,\r\n\tproductAdditionalInformation,\r\n}) => {\r\n\tconst intl = useIntl();\r\n\r\n\tconst renderTabs = (heading?: string, showAll: boolean = false) => {\r\n\t\tconst activeSlug = currentPackageSlug || (packages.length >= 1 ? packages[0].slug : '');\r\n\t\tconst renderAnchorTags = packages.length > 1;\r\n\r\n\t\tconst tabs = packages.map(p => ({\r\n\t\t\tlabel: p.title,\r\n\t\t\turl: `${routing.pathname}?${replaceToSearch(routing.search || '', packageParameterName, p.slug)}`,\r\n\t\t\tisActive: p.slug === activeSlug,\r\n\t\t\tnoFollow: true,\r\n\t\t}));\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst getFeaturesAsLinks = (): Link[] => {\r\n\t\treturn mainFeatures.map(f => ({\r\n\t\t\ttitle: f.title,\r\n\t\t\turl: addSiteUrlPrefix(siteUrlPrefix, `${productSearchUrl}?${productFeaturesParameterName}=${f.slug}`),\r\n\t\t}));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{productName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{renderTabs(intl.formatMessage({ id: 'product_package_sizes' }))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{description && {description}}\r\n\t\t\t\t\r\n\t\t\t\t{productAdditionalInformation && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{productAdditionalInformation.linkText}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{renderTabs()}\r\n\t\t\t\t{renderTabs(intl.formatMessage({ id: 'product_package_sizes' }), true)}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default injectRoutable(ProductHeader);\r\n","import { ContentWrapper, PrintHeroWrapper } from 'common/components/General';\r\nimport ContentCard from 'common/components/General/ContentCard';\r\nimport { useHeroMedia } from 'common/hooks/useHeroMedia';\r\nimport * as React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Divider, { DividerDirection, DividerSize } from 'styleguide/components/Divider/Divider';\r\nimport Hero from 'styleguide/components/HeroBanners/Hero';\r\nimport Logo from 'styleguide/components/Logos/Logo';\r\nimport { media } from 'styleguide/helpers';\r\nimport { Theme } from 'styleguide/themes/theme';\r\nimport ProductHeader from '../components/ProductHeader';\r\nimport { ProductInfoProps } from '../components/ProductInfo';\r\n\r\nconst ProductTitleWrapper = styled.div`\r\n\tdisplay: none;\r\n\r\n\t${media.desktop`\r\n\t\tdisplay: block;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tmax-width: 1200px;\r\n\t\tmargin: 0 auto;\r\n\t\tposition: relative;\r\n\t`};\r\n`;\r\n\r\nconst ProductTitle = styled.h1<{ siteTheme: Theme }>`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 56px;\r\n\tcolor: ${props => props.theme.colors.white};\r\n\tmargin: 0;\r\n\tmax-width: 640px;\r\n\tposition: absolute;\r\n\tleft: 45px;\r\n\ttop: 50%;\r\n\ttransform: translateY(-50%);\r\n\r\n\t${({ siteTheme }) => {\r\n\t\tif (siteTheme === 'oddlygood') {\r\n\t\t\treturn css`\r\n\t\t\t\tfont-size: 56px;\r\n\r\n\t\t\t\t${media.desktop`\r\n\t\t\t\t\tfont-size: 76px;\r\n\t\t\t\t\tline-height: 1;\r\n\t\t\t\t\ttext-shadow: 0 1px 5px rgba(0,0,0,.5);\r\n\t\t\t\t`};\r\n\r\n\t\t\t\t${media.desktop1440`\r\n\t\t\t\t\tfont-size: 96px;\r\n\t\t\t\t`};\r\n\t\t\t`;\r\n\t\t}\r\n\t\treturn css`\r\n\t\t\tfont-size: 56px;\r\n\t\t`;\r\n\t}};\r\n`;\r\n\r\nconst PrintTitle = styled.h1`\r\n\t${({ theme }) => theme.typography.heading};\r\n\tfont-size: 20pt;\r\n\tline-height: 1;\r\n\tcolor: ${({ theme }) => theme.colors.brandPrimary};\r\n\tmargin: 0 auto;\r\n\ttext-align: center;\r\n`;\r\n\r\nconst ProductInfo: React.FC = ({\r\n\theroOverlayColor,\r\n\tname,\r\n\tpackages,\r\n\tbrands,\r\n\tgroups,\r\n\tdescription,\r\n\tmainFeatures,\r\n\tuseSmallImage,\r\n\tsiteUrlPrefix,\r\n\tproductSearchUrl,\r\n\tpackageParameterName,\r\n\tproductFeaturesParameterName,\r\n\tpackageImageUrl,\r\n\tpackageIsNovelty,\r\n\tcurrentPackageSlug,\r\n\tonPackageChange,\r\n\tsiteTheme,\r\n\tproductAdditionalInformation,\r\n}) => {\r\n\tconst { heroMedia, heroImageOffsetY } = useHeroMedia('cms-content-default-hero');\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{name}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{name}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ProductInfo;\r\n","import { addSiteUrlPrefix, getSettingValue } from 'common/components/App/services';\r\nimport { ContentWrapper, PrintHeroWrapper } from 'common/components/General';\r\nimport { State } from 'common/reducers';\r\nimport * as React from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { useSelector } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { LabeledIconButtonLink } from 'styleguide/components/Buttons/LabeledIconButton';\r\nimport { OutlinedButtonLink } from 'styleguide/components/Buttons/OutlinedButton';\r\nimport Divider, { DividerDirection, DividerSize } from 'styleguide/components/Divider/Divider';\r\nimport Hero from 'styleguide/components/HeroBanners/Hero';\r\nimport { InstacartIcon } from 'styleguide/components/Icons';\r\nimport Logo from 'styleguide/components/Logos/Logo';\r\nimport Ingress from 'styleguide/components/Typography/Ingress';\r\nimport { media } from 'styleguide/helpers';\r\nimport { ProductInfoProps } from '../components/ProductInfo';\r\nimport ProductTitleBlock from '../components/ProductTitleBlock';\r\n\r\nconst ProductTitleWrapper = styled.div`\r\n\tdisplay: none;\r\n\r\n\t${media.desktop`\r\n\t\tdisplay: flex;\r\n flex-direction: column;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tmax-width: 1200px;\r\n\t\tmargin: 0 auto;\r\n\t\tposition: relative;\r\n\t`};\r\n`;\r\n\r\nconst ProductTitle = styled.h1`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 48px;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\tmargin: 0;\r\n\tmax-width: 640px;\r\n\tpadding: 135px 0 0 45px;\r\n\ttext-transform: uppercase;\r\n`;\r\n\r\nconst ActionButtonWrapper = styled.div`\r\n\twidth: 50%;\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tjustify-content: flex-start;\r\n\tmargin: 28px 0 0 45px;\r\n\r\n\t& a:nth-child(2) {\r\n\t\tmargin: 0 0 0 20px;\r\n\t}\r\n`;\r\n\r\nconst PrintTitle = styled.h1`\r\n\t${({ theme }) => theme.typography.heading};\r\n\tfont-size: 20pt;\r\n\tline-height: 1;\r\n\tcolor: ${({ theme }) => theme.colors.brandPrimary};\r\n\tmargin: 0 auto;\r\n\ttext-align: center;\r\n\ttext-transform: uppercase;\r\n`;\r\n\r\nconst LeadTextWrapper = styled(ContentWrapper)`\r\n\tz-index: 10;\r\n\t@media print {\r\n\t\tflex-direction: row;\r\n\t\tjustify-content: center;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 3mm;\r\n\t}\r\n`;\r\n\r\nconst LeadText = styled(Ingress)`\r\n\t@media print {\r\n\t\tflex: 1 1 auto;\r\n\t\ttext-align: left;\r\n\t}\r\n`;\r\n\r\nconst MobileHeader = styled.h1`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 24px;\r\n\tline-height: 1;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\ttext-align: center;\r\n\tmargin: 0;\r\n\ttext-transform: uppercase;\r\n\r\n\t${media.desktop`\r\n\t\tdisplay: none;\r\n\t`};\r\n`;\r\n\r\nconst MobileActionButtonWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tjustify-content: center;\r\n\tmargin: 28px 0 0 0;\r\n\r\n\t& a:nth-child(2) {\r\n\t\tmargin: 0 0 0 20px;\r\n\t}\r\n\t${media.desktop`\r\n display:none;\r\n `};\r\n`;\r\n\r\nconst PrintImage = styled.img`\r\n\tdisplay: none;\r\n\r\n\t@media print {\r\n\t\tdisplay: block;\r\n\t\tflex: 0 0 40mm;\r\n\t\twidth: 40mm;\r\n\t}\r\n`;\r\n\r\nconst ProductHeaderWrapper = styled.div`\r\n\twidth: 100%;\r\n\tposition: relative;\r\n\r\n\t.title-block-tabs {\r\n\t\tdisplay: none;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: block;\r\n\t\t`};\r\n\t}\r\n\r\n\t.content-tabs {\r\n\t\tdisplay: block;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: none;\r\n\t\t`};\r\n\r\n\t\t@media print {\r\n\t\t\tdisplay: none !important;\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nconst ProductInfo: React.FC = ({\r\n\tname,\r\n\tdescription,\r\n\tuseSmallImage,\r\n\tpackageImageUrl,\r\n\texternalShopUrl,\r\n\tsiteUrlPrefix,\r\n}) => {\r\n\tconst { heroImageOffsetY, productLocatorUrl } = useSelector((state: State) => ({\r\n\t\theroImageOffsetY: state.resource.heroImageOffsetY,\r\n\t\tproductLocatorUrl: getSettingValue(state, 'Product', 'ProductLocatorUrl'),\r\n\t}));\r\n\tconst intl = useIntl();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{name}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{productLocatorUrl && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{intl.formatMessage({ id: 'product_product_locator' })}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{externalShopUrl && (\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tisFilled\r\n\t\t\t\t\t\t\t\ticonPlacement=\"right\"\r\n\t\t\t\t\t\t\t\thref={externalShopUrl}\r\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\r\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\">\r\n\t\t\t\t\t\t\t\t{intl.formatMessage({ id: 'product_shop_at_instacart' })}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{name}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{productLocatorUrl && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{intl.formatMessage({ id: 'product_product_locator' })}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{externalShopUrl && (\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tisFilled\r\n\t\t\t\t\t\t\t\t\ticonPlacement=\"right\"\r\n\t\t\t\t\t\t\t\t\thref={externalShopUrl}\r\n\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\ttarget=\"_\">\r\n\t\t\t\t\t\t\t\t\t{intl.formatMessage({ id: 'product_shop_at_instacart' })}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{description && {description}}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ProductInfo;\r\n","import * as React from 'react';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport styled from 'styled-components';\r\nimport Picture from 'styleguide/components/PicturesAndVideos/Picture';\r\nimport { State } from 'common/reducers';\r\nimport { MapStateToProps, connect, useSelector } from 'react-redux';\r\nimport { getThemeForResource } from 'common/components/App/services';\r\nimport { Theme } from 'styleguide/themes/theme';\r\nimport { NoveltyIcon } from 'styleguide/components/Icons';\r\n\r\nconst TitleBlockWrapper = styled.div`\r\n\tposition: relative;\r\n\twidth: 100%;\r\n`;\r\n\r\nconst TitleWrapper = styled.div`\r\n\ttext-align: center;\r\n\tposition: relative;\r\n\tz-index: ${props => props.theme.zIndices.titleBlockTitle};\r\n\tpadding: 50px 30px 0;\r\n\twidth: 100%;\r\n\tbox-sizing: border-box;\r\n\r\n\tmargin-top: 100px;\r\n\r\n\t${media.tablet`\r\n\t\tmargin-top: 150px;\r\n\t`};\r\n\r\n\t${media.desktop`\r\n padding: 30px 120px 0;\r\n `};\r\n\r\n\t${media.desktop1440`\r\n\t\tmargin-top: 200px;\r\n\t`};\r\n`;\r\n\r\nconst ProductImageWrapper = styled.div<{ useSmallImage: boolean }>`\r\n\tposition: absolute;\r\n\tleft: 50%;\r\n\ttransform: translateX(-50%);\r\n\tz-index: 10;\r\n\r\n\tmargin-top: 100px;\r\n\r\n\t${media.tablet`\r\n\t\tmargin-top: 150px;\r\n\t`};\r\n\r\n\t${media.desktop1440`\r\n\t\tmargin-top: 200px;\r\n\t`};\r\n\r\n\t${({ useSmallImage, theme }) => theme.styledVariations.productTitleImage(useSmallImage)};\r\n\r\n\t& > img {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t> .novelty-icon {\r\n\t\tposition: absolute;\r\n\r\n\t\twidth: 64px;\r\n\t\theight: 64px;\r\n\t\tbottom: 16px;\r\n\t\tleft: 0px;\r\n\r\n\t\t${media.tablet`\r\n\t\t\twidth: 96px;\r\n\t\t\theight: 96px;\r\n\t\t\tbottom: 32px;\r\n\t\t\tleft: 0px;\r\n\t\t`};\r\n\r\n\t\t${media.desktop`\r\n\t\t\twidth: 120px;\r\n\t\t\theight: 120px;\r\n\t\t\tbottom: 32px;\r\n\t\t\tright: 0px;\r\n\t\t\tleft: auto;\r\n\t\t`};\r\n\t}\r\n`;\r\n\r\nexport interface TitleBlockProps {\r\n\tchildren: React.ReactNode;\r\n\tproductImageUrl: string;\r\n\tproductName: string;\r\n\tuseSmallImage: boolean;\r\n\tisNovelty?: boolean;\r\n}\r\n\r\nconst ProductTitleBlock: React.FC = ({\r\n\tchildren,\r\n\tproductImageUrl,\r\n\tproductName,\r\n\tuseSmallImage,\r\n\tsiteTheme,\r\n\tisNovelty,\r\n}) => {\r\n\tconst isOddlygood = siteTheme === 'oddlygood';\r\n\tconst sizeMultiplier = !useSmallImage || isOddlygood ? 1 : 0.6;\r\n\tconst { language } = useSelector(({ resource }: State) => ({ language: resource.language }));\r\n\treturn (\r\n\t\t\r\n\t\t\t{productImageUrl && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{!!isNovelty && }\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\ninterface ProductTitleBlockStateProps {\r\n\tsiteTheme?: Theme;\r\n}\r\n\r\nconst mapStateToProps: MapStateToProps = ({\r\n\trouting,\r\n\tapp,\r\n\tresource,\r\n}): ProductTitleBlockStateProps => {\r\n\tconst sites = app.settings?.sites || [];\r\n\tconst siteTheme = sites.length > 0 ? getThemeForResource(routing, sites, resource) : undefined;\r\n\r\n\treturn {\r\n\t\tsiteTheme,\r\n\t};\r\n};\r\n\r\nexport default connect(mapStateToProps)(ProductTitleBlock);\r\n","import * as React from 'react';\r\nimport Ingress from 'styleguide/components/Typography/Ingress/Ingress';\r\nimport Tabs from 'styleguide/components/Tabs/Tabs';\r\nimport styled from 'styled-components';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport ProductClassificationSection from './ProductClassificationSection';\r\nimport { useIntl } from 'react-intl';\r\nimport ProductTitleBlockOddlygood from './ProductTitleBlockOddlygood';\r\nimport { Link } from 'common/interfaces/common';\r\nimport { Feature, Package, ProductAdditionalInformation } from '../interfaces';\r\nimport { ContentWrapper } from 'common/components/General';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport { replaceToSearch } from 'utils/query-string';\r\nimport { addSiteUrlPrefix } from 'common/components/App/services';\r\nimport { ButtonLink } from 'styleguide/components/Buttons/Button';\r\n\r\nconst ProductHeaderWrapper = styled.div`\r\n\twidth: 100%;\r\n\tposition: relative;\r\n\r\n\t.title-block-tabs {\r\n\t\tdisplay: none;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: block;\r\n\t\t`};\r\n\t}\r\n\r\n\t.content-tabs {\r\n\t\tdisplay: block;\r\n\r\n\t\t${media.tablet`\r\n\t\t\tdisplay: none;\r\n\t\t`};\r\n\r\n\t\t@media print {\r\n\t\t\tdisplay: none !important;\r\n\t\t}\r\n\t}\r\n`;\r\n\r\nconst PackageTabsWrapper = styled.div`\r\n\tborder-bottom: 1px solid ${props => props.theme.colors.border};\r\n\tpadding-bottom: 3px;\r\n\twidth: 80%;\r\n\tmargin-bottom: 30px;\r\n\r\n\t${media.tablet`\r\n\t\twidth: 100%;\r\n\t\tmargin-bottom: 0;\r\n\t`};\r\n`;\r\n\r\nconst MobileTabsWrapper = styled(PackageTabsWrapper)`\r\n\tdisplay: none;\r\n\tmargin-bottom: 30px;\r\n\r\n\t@media print {\r\n\t\tdisplay: block !important;\r\n\t}\r\n`;\r\n\r\nconst OddlyProductHeader = styled.h1`\r\n\t${props => props.theme.typography.heading};\r\n\tfont-size: 24px;\r\n\tline-height: 1;\r\n\tcolor: ${props => props.theme.colors.brandPrimary};\r\n\ttext-align: center;\r\n\tmargin: 0;\r\n\r\n\t${media.tablet`\r\n\t\tfont-size: 40px;\r\n\t`};\r\n\r\n\t${media.desktop`\r\n\t\tfont-size: 54px;\r\n\t`};\r\n`;\r\n\r\nconst LeadTextWrapper = styled(ContentWrapper)`\r\n\t@media print {\r\n\t\tflex-direction: row;\r\n\t\tjustify-content: center;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 3mm;\r\n\t}\r\n`;\r\n\r\nconst LeadText = styled(Ingress)`\r\n\t@media print {\r\n\t\tflex: 1 1 auto;\r\n\t\ttext-align: left;\r\n\t}\r\n`;\r\n\r\nconst PrintImage = styled.img`\r\n\tdisplay: none;\r\n\r\n\t@media print {\r\n\t\tdisplay: block;\r\n\t\tflex: 0 0 40mm;\r\n\t\twidth: 40mm;\r\n\t}\r\n`;\r\n\r\ninterface ProductHeaderProps {\r\n\tdescription: string;\r\n\tbrands: Link[];\r\n\tproductGroups: Link[];\r\n\tmainFeatures: Feature[];\r\n\tproductName: string;\r\n\tpackages: Package[];\r\n\tpackageImageUrl: string;\r\n\tpackageIsNovelty: boolean;\r\n\tcurrentPackageSlug?: string;\r\n\tuseSmallImage: boolean;\r\n\tonPackageChange: (packageId: string) => void;\r\n\tsiteUrlPrefix: string;\r\n\tproductSearchUrl: string;\r\n\tpackageParameterName: string;\r\n\tproductFeaturesParameterName: string;\r\n\tproductAdditionalInformation: ProductAdditionalInformation | undefined;\r\n}\r\n\r\nconst ProductHeader: React.FC = ({\r\n\tbrands,\r\n\tproductGroups,\r\n\tproductName,\r\n\tdescription,\r\n\tpackageImageUrl,\r\n\tpackageIsNovelty,\r\n\tuseSmallImage,\r\n\tonPackageChange,\r\n\tpackages,\r\n\tcurrentPackageSlug,\r\n\tmainFeatures,\r\n\trouting,\r\n\tsiteUrlPrefix,\r\n\tproductSearchUrl,\r\n\tpackageParameterName,\r\n\tproductFeaturesParameterName,\r\n\tproductAdditionalInformation,\r\n}) => {\r\n\tconst intl = useIntl();\r\n\r\n\tconst renderTabs = (heading?: string, showAll: boolean = false) => {\r\n\t\tconst activeSlug = currentPackageSlug || (packages.length >= 1 ? packages[0].slug : '');\r\n\t\tconst renderAnchorTags = packages.length > 1;\r\n\r\n\t\tconst tabs = packages.map(p => ({\r\n\t\t\tlabel: p.title,\r\n\t\t\turl: `${routing.pathname}?${replaceToSearch(routing.search || '', packageParameterName, p.slug)}`,\r\n\t\t\tisActive: p.slug === activeSlug,\r\n\t\t\tnoFollow: true,\r\n\t\t}));\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst getFeaturesAsLinks = (): Link[] => {\r\n\t\treturn mainFeatures.map(f => ({\r\n\t\t\ttitle: f.title,\r\n\t\t\turl: addSiteUrlPrefix(siteUrlPrefix, `${productSearchUrl}?${productFeaturesParameterName}=${f.slug}`),\r\n\t\t}));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{productName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{renderTabs(intl.formatMessage({ id: 'product_package_sizes' }))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{description && {description}}\r\n\t\t\t\t\r\n\t\t\t\t{productAdditionalInformation && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{productAdditionalInformation.linkText}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{renderTabs()}\r\n\t\t\t\t{renderTabs(intl.formatMessage({ id: 'product_package_sizes' }), true)}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default injectRoutable(ProductHeader);\r\n","import { ContentWrapper, PrintHeroWrapper } from 'common/components/General';\r\nimport { useHeroMedia } from 'common/hooks/useHeroMedia';\r\nimport * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport Divider, { DividerDirection, DividerSize } from 'styleguide/components/Divider/Divider';\r\nimport Hero from 'styleguide/components/HeroBanners/Hero';\r\nimport Logo from 'styleguide/components/Logos/Logo';\r\nimport ProductHeaderOddlygood from '../components/ProductHeaderOddlygood';\r\nimport { ProductInfoProps } from '../components/ProductInfo';\r\n\r\nconst PrintTitle = styled.h1`\r\n\t${({ theme }) => theme.typography.heading};\r\n\tfont-size: 20pt;\r\n\tline-height: 1;\r\n\tcolor: ${({ theme }) => theme.colors.brandPrimary};\r\n\tmargin: 0 auto;\r\n\ttext-align: center;\r\n`;\r\n\r\nconst ProductInfo: React.FC = ({\r\n\theroOverlayColor,\r\n\tname,\r\n\tpackages,\r\n\tbrands,\r\n\tgroups,\r\n\tdescription,\r\n\tmainFeatures,\r\n\tuseSmallImage,\r\n\tsiteUrlPrefix,\r\n\tproductSearchUrl,\r\n\tpackageParameterName,\r\n\tproductFeaturesParameterName,\r\n\tpackageImageUrl,\r\n\tpackageIsNovelty,\r\n\tcurrentPackageSlug,\r\n\tonPackageChange,\r\n\tsiteTheme,\r\n\tproductAdditionalInformation,\r\n}) => {\r\n\tconst { heroMedia, heroImageOffsetY } = useHeroMedia('cms-content-default-hero');\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{name}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ProductInfo;\r\n","import * as React from 'react';\r\nimport { Layouts } from 'common/layouts/types';\r\nimport { Brand, Feature, Group, Package, ProductAdditionalInformation, SupportedLayouts } from '../interfaces';\r\nimport ProductInfoDefault from '../layouts/ProductInfoDefault';\r\nimport ProductInfoFinlandiaCheese from '../layouts/ProductInfoFinlandiaCheese';\r\nimport ProductInfoOddlygood from '../layouts/ProductInfoOddlygood';\r\nimport { Theme } from 'styleguide/themes/theme';\r\n\r\nconst layouts: Layouts = {\r\n\t['Baltic']: ProductInfoDefault,\r\n\t['Default']: ProductInfoDefault,\r\n\t['FinlandiaCheese']: ProductInfoFinlandiaCheese,\r\n\t['Oddlygood']: ProductInfoOddlygood,\r\n\t['Sweden']: ProductInfoDefault,\r\n};\r\n\r\nexport interface ProductInfoProps {\r\n\tname: string;\r\n\tdescription: string;\r\n\theroOverlayColor: string;\r\n\tpackages: Package[];\r\n\tbrands: Brand[];\r\n\tgroups: Group[];\r\n\tmainFeatures: Feature[];\r\n\tsiteTheme: Theme;\r\n\tuseSmallImage: boolean;\r\n\tsiteUrlPrefix: string;\r\n\tproductSearchUrl: string;\r\n\tpackageParameterName: string;\r\n\tproductFeaturesParameterName: string;\r\n\tpackageImageUrl: string;\r\n\tpackageIsNovelty: boolean;\r\n\tcurrentPackageSlug?: string;\r\n\texternalShopUrl: string | null;\r\n\tonPackageChange: (packageId: string) => void;\r\n\tlayout?: string;\r\n\tproductAdditionalInformation: ProductAdditionalInformation | undefined;\r\n}\r\n\r\nconst ProductInfo: React.FC = ({ layout, ...rest }) => {\r\n\tconst Layout = layout ? layouts[layout] : layouts.Default;\r\n\r\n\treturn ;\r\n};\r\n\r\nexport default ProductInfo;\r\n","import * as React from 'react';\r\nimport { Component, Fragment } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport Divider from 'styleguide/components/Divider/Divider';\r\nimport { DividerSize, DividerDirection } from 'styleguide/components/Divider/Divider';\r\nimport { RecipeCardInterface } from 'styleguide/interfaces/cardInterfaces';\r\nimport AnimatedFlyIconButton from 'styleguide/components/Buttons/AnimatedFlyIconButton/AnimatedFlyIconButton';\r\nimport PlusOneIcon from 'styleguide/components/Icons/CssIcons/PlusOneIcon/PlusOneIcon';\r\nimport { connect, MapStateToProps } from 'react-redux';\r\nimport { injectIntl, WrappedComponentProps, FormattedMessage } from 'react-intl';\r\nimport { Helmet } from 'react-helmet';\r\nimport { ContentWrapper, Section, SectionProps } from 'common/components/General';\r\nimport { ProductApiContent, Package, RelatedProduct, ProductState, ProductResourceState } from './interfaces';\r\nimport injectRoutable, { InjectedRoutableProps } from 'common/components/Routing/Routable';\r\nimport SocialLinks from 'common/components/SocialLinks/SocialLinks';\r\nimport ProductDetails from './components/ProductDetails';\r\nimport NutritionalInformation from './components/NutritionalInformation';\r\nimport RelatedProducts from 'common/components/RelatedProducts/RelatedProducts';\r\nimport ProductCategories from './components/ProductCategories';\r\nimport RelatedRecipes from './components/RelatedRecipes';\r\nimport { RoutingState } from 'common/components/Routing/reducers';\r\nimport { State } from 'common/reducers';\r\nimport { productShoppingListActions } from './reducers/shopping-list';\r\nimport { replaceToSearch, parseQuery } from 'utils/query-string';\r\nimport {\r\n\tgetSiteUrlPrefixOrDefault,\r\n\tgetSite,\r\n\tgetFacebookAppId,\r\n\tgetTwitterUserNameWithAtSign,\r\n\tgetSettingValue,\r\n\taddSiteUrlPrefix,\r\n} from 'common/components/App/services';\r\nimport StaticContentHighlight from 'common/components/Widgets/StaticContentHighlight';\r\nimport {\r\n\tProductLoadData,\r\n\tPageLoadEvent,\r\n\tpushPageLoad,\r\n\temptyArticleLoadData,\r\n\temptyRecipeLoadData,\r\n} from 'utils/dataLayer';\r\nimport WidgetZone from 'common/components/Widgets/WidgetZone';\r\nimport { Theme, defaultTheme } from 'styleguide/themes/theme';\r\nimport { LabeledIconButton } from 'styleguide/components/Buttons/LabeledIconButton';\r\nimport { ShoppinglistIcon } from 'styleguide/components/Icons';\r\nimport { SearchFilterName } from '../Search/types';\r\nimport ProductInfo from './components/ProductInfo';\r\nimport OddlyWrapper, { OddlyWrapperBackground } from 'common/components/Oddlygood/OddlyWrapper';\r\nimport OddlyWrapperInner from 'common/components/Oddlygood/OddlyWrapperInner';\r\n\r\nconst ProductDetailsWrapper = styled(ContentWrapper)`\r\n\tjustify-content: space-between;\r\n\tflex-direction: column;\r\n\tmargin: 20px auto;\r\n\r\n\t${media.desktop`\r\n\t\tflex-direction: row;\r\n\t\talign-items: stretch;\r\n\t`};\r\n\r\n\t& > h2 {\r\n\t\tmargin: 40px 0 20px;\r\n\t}\r\n\r\n\t@media print {\r\n\t\tflex-direction: row;\r\n\t\talign-items: stretch;\r\n\t}\r\n`;\r\n\r\nconst OddlygoodProductDetailsWrapper = styled(ContentWrapper)`\r\n\tjustify-content: space-between;\r\n\tflex-direction: column;\r\n\tmargin: 30px auto;\r\n\r\n\t${media.desktop`\r\n\t\tmargin: 60px auto;\r\n\t\tflex-direction: row;\r\n\t\talign-items: stretch;\r\n\t`};\r\n\r\n\t& > h2 {\r\n\t\tmargin: 40px 0 20px;\r\n\t}\r\n\r\n\t@media print {\r\n\t\tflex-direction: row;\r\n\t\talign-items: stretch;\r\n\t}\r\n`;\r\n\r\nconst ProductDetailsDividerWrapper = styled.div`\r\n\twidth: 100%;\r\n\r\n\t${media.desktop`\r\n\t\twidth: auto;\r\n\t`};\r\n\r\n\t@media print {\r\n\t\tdisplay: none;\r\n\t}\r\n`;\r\n\r\nconst ProductSocialAndCartWrapper = styled.div`\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\twidth: 100%;\r\n\r\n\t${media.tablet`\r\n\t\tflex-direction: row;\r\n\t\twidth: auto;\r\n\t`};\r\n\r\n\t@media print {\r\n\t\tdisplay: none;\r\n\t}\r\n`;\r\n\r\nconst SocialSectionWrapper = styled.div`\r\n\tflex: 1 0 auto;\r\n\talign-self: flex-start;\r\n\twidth: 100%;\r\n\r\n\t${media.tablet`\r\n\t\twidth: auto;\r\n\t`};\r\n`;\r\n\r\nconst AddToShoppingListButtonWrapper = styled.div`\r\n\tflex: 1 1 auto;\r\n\talign-self: center;\r\n\twidth: 100%;\r\n\tpadding: 0 10px;\r\n\tmargin: 0 0 10px;\r\n\r\n\t${media.tablet`\r\n\t\twidth: auto;\r\n\t\tpadding: 0;\r\n\t\tmargin: 0 0 0 20px;\r\n\t`};\r\n\r\n\t.add-to-shopping-list-button {\r\n\t\twidth: 100%;\r\n\r\n\t\t${media.tablet`\r\n\t\t\twidth: auto;\r\n\t\t`};\r\n\t}\r\n`;\r\n\r\nconst BlockSectionWrapper = styled(Section)`\r\n\tdisplay: block;\r\n\tpadding: 50px 0 60px;\r\n\r\n\t${props => {\r\n\t\tif (props.isPrintHidden) {\r\n\t\t\treturn css`\r\n\t\t\t\t@media print {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t}\r\n\t\treturn null;\r\n\t}}\r\n`;\r\n\r\nconst BlockSectionDivider = styled(Section)`\r\n\tdisplay: block;\r\n\tpadding: 0;\r\n\r\n\t${props => {\r\n\t\tif (props.isPrintHidden) {\r\n\t\t\treturn css`\r\n\t\t\t\t@media print {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t`;\r\n\t\t}\r\n\t\treturn null;\r\n\t}}\r\n`;\r\nexport interface ProductRouteProps {\r\n\tproductSlug: string;\r\n}\r\n\r\nfunction setDataLayer(props: Props, ean: string | null) {\r\n\tif (!props.productDetails) {\r\n\t\treturn;\r\n\t}\r\n\tconst data: ProductLoadData = {\r\n\t\tproductEAN: ean || '',\r\n\t\tproductCategory: props.productDetails.groups.map(g => g.title).join(','),\r\n\t};\r\n\tconst event: PageLoadEvent = {\r\n\t\tevent: 'pageLoad',\r\n\t\tpageType: 'product',\r\n\t\tpageCategory: props.dataLayerCategory,\r\n\t\t...emptyArticleLoadData(),\r\n\t\t...emptyRecipeLoadData(),\r\n\t\t...data,\r\n\t};\r\n\tpushPageLoad(event);\r\n}\r\n\r\ntype Props = ProductResourceState &\r\n\tProductStateProps &\r\n\tProductDispatchProps &\r\n\tInjectedRoutableProps &\r\n\tWrappedComponentProps;\r\n\r\nclass Product extends Component {\r\n\tconstructor(props: Props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {};\r\n\t}\r\n\r\n\tpublic componentDidMount() {\r\n\t\tconst { eanCode } = this.getCurrentPackage();\r\n\t\tsetDataLayer(this.props, eanCode);\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\tconst {\r\n\t\t\tproductDetails,\r\n\t\t\tintl,\r\n\t\t\trecipes,\r\n\t\t\trelatedProducts,\r\n\t\t\tcanonicalUrl,\r\n\t\t\tfacebookAppId,\r\n\t\t\ttwitterUserName,\r\n\t\t\tsiteUrlPrefix,\r\n\t\t\tfindMoreRecipesUrl,\r\n\t\t\tproductSearchUrl,\r\n\t\t\tpackageParameterName,\r\n\t\t\tproductFeaturesParameterName,\r\n\t\t\townPagesEnabled,\r\n\t\t\tlayout,\r\n\t\t\tsiteTheme,\r\n\t\t\tshowDailyPercentageTitle,\r\n\t\t\tfdaCompliant,\r\n\t\t} = this.props;\r\n\t\tif (!productDetails) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst { name, heroOverlayColor, brands, groups, description, packages } = productDetails;\r\n\t\tconst productAdditionalInformation = productDetails.additionalInformation;\r\n\r\n\t\tconst {\r\n\t\t\tmainFeatures,\r\n\t\t\tpackagingSymbolFeatures,\r\n\t\t\tallergenicIngredientFeatures,\r\n\t\t\tnutritionalFeatures,\r\n\t\t\tnutritionData,\r\n\r\n\t\t\tkeyIngredients,\r\n\t\t\tallergens,\r\n\t\t\tstorageDescription,\r\n\t\t\tusageDescription,\r\n\t\t\tadditionalInformation,\r\n\t\t\tcountryOfOrigin,\r\n\t\t\tcountryOfProduction,\r\n\t\t\tproducer,\r\n\t\t\tdomesticValueInfo,\r\n\t\t\tpackageWasteFeatures,\r\n\t\t\tpackageContainsFeatures,\r\n\t\t\tpackageMightContainFeatures,\r\n\t\t\tpackageDepth,\r\n\t\t\tpackageWidth,\r\n\t\t\tpackageHeight,\r\n\t\t\tpackageWeight,\r\n\t\t\tpackageTitle,\r\n\t\t\texternalShopUrl,\r\n\t\t\teanCode,\r\n\t\t\tperusId,\r\n\t\t\tsalesLot,\r\n\t\t\tuseSmallImage,\r\n\t\t\trecyclingInstructions,\r\n\t\t\tnutritionalInformationReferenceSize,\r\n\t\t\tnutritionalInformationReferenceUnit,\r\n\t\t\tadditionalNutrientInformation,\r\n\t\t\temphasizedIngredients,\r\n\t\t} = this.getCurrentPackage();\r\n\r\n\t\tconst defaultImageUrl = this.getPackageImageUrl(true);\r\n\r\n\t\tconst isOddlygood = layout === 'Oddlygood';\r\n\r\n\t\tconst defaultNutritionAndDetails = () => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tconst oddlygoodNutritionAndDetails = () => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{canonicalUrl && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{twitterUserName && }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{facebookAppId && }\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{ownPagesEnabled && (\r\n\t\t\t\t\t\t{this.renderShoppingListButton()}\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\r\n\t\t\t\t{!isOddlygood && defaultNutritionAndDetails()}\r\n\t\t\t\t{isOddlygood && oddlygoodNutritionAndDetails()}\r\n\r\n\t\t\t\t{recipes && recipes.length > 0 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{relatedProducts && relatedProducts.length > 0 && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getPackageIsNovelty(useDefaultPackage?: boolean): boolean {\r\n\t\tif (!this.props.productDetails) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst { packages, defaultPackageId } = this.props.productDetails;\r\n\r\n\t\tif (useDefaultPackage) {\r\n\t\t\tconst defaultPackage = packages.find(p => p.id === defaultPackageId);\r\n\t\t\tif (defaultPackage) {\r\n\t\t\t\treturn defaultPackage.isNovelty;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.getCurrentPackage().isNovelty;\r\n\t}\r\n\r\n\tprivate getPackageImageUrl(useDefaultPackage?: boolean): string {\r\n\t\tif (!this.props.productDetails) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst { packages, defaultPackageId } = this.props.productDetails;\r\n\r\n\t\tif (useDefaultPackage) {\r\n\t\t\tconst defaultPackage = packages.find(p => p.id === defaultPackageId);\r\n\t\t\tif (defaultPackage) {\r\n\t\t\t\treturn defaultPackage.imageUrl;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst currentPackage = this.getCurrentPackage();\r\n\r\n\t\treturn currentPackage.imageUrl;\r\n\t}\r\n\r\n\tprivate getCurrentPackage(): Package {\r\n\t\tconst { packages } = this.props.productDetails as ProductApiContent;\r\n\t\tconst currentPackageSlug = this.getPackageSlug();\r\n\t\tif (currentPackageSlug) {\r\n\t\t\tconst result = packages.find(p => p.slug === currentPackageSlug);\r\n\t\t\tif (result) {\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn packages[0];\r\n\t}\r\n\r\n\tprivate renderShoppingListButton() {\r\n\t\treturn (\r\n\t\t\t}>\r\n\t\t\t\t} className=\"add-to-shopping-list-button\" isFilled>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getPackageSlug() {\r\n\t\tconst {\r\n\t\t\trouting: { search },\r\n\t\t} = this.props;\r\n\t\t// tslint:disable-next-line:no-string-literal\r\n\t\tconst currentPackageSlug = parseQuery(search || '')[this.props.packageParameterName];\r\n\t\tconst slug = Array.isArray(currentPackageSlug) ? currentPackageSlug[0] : currentPackageSlug;\r\n\t\tif (slug) {\r\n\t\t\treturn slug;\r\n\t\t}\r\n\r\n\t\tconst details = this.props.productDetails;\r\n\t\tif (details) {\r\n\t\t\tconst pkg = details.packages.find(x => x.id === details.defaultPackageId);\r\n\t\t\tif (pkg) {\r\n\t\t\t\treturn pkg.slug;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tprivate getPackage() {\r\n\t\tconst slug = this.getPackageSlug();\r\n\t\tconst details = this.props.productDetails;\r\n\t\tif (details) {\r\n\t\t\treturn details.packages.find(x => x.slug === slug);\r\n\t\t} else {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onSaveToShoppingList = () => {\r\n\t\tconst pkg = this.getPackage();\r\n\t\tif (pkg) {\r\n\t\t\tthis.props.addToShoppingList(pkg.id);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onPackageChange = (url: string) => {\r\n\t\tconst {\r\n\t\t\trouting,\r\n\t\t\trouting: { search },\r\n\t\t} = this.props;\r\n\t\t// tslint:disable-next-line:no-string-literal\r\n\t\tconst packageSlug = parseQuery(url.split('?')[1])[this.props.packageParameterName];\r\n\t\tconst slug = Array.isArray(packageSlug) ? packageSlug[0] : packageSlug;\r\n\t\tconst newSearch = replaceToSearch(search || '', this.props.packageParameterName, slug);\r\n\t\tthis.props.navigateTo({ pathname: routing.pathname, search: newSearch });\r\n\t};\r\n}\r\n\r\ninterface ProductStateProps {\r\n\tproductDetails?: ProductApiContent;\r\n\tisLoading?: boolean;\r\n\terror?: string | null;\r\n\tcanonicalUrl?: string;\r\n\trecipes?: RecipeCardInterface[];\r\n\trelatedProducts?: RelatedProduct[];\r\n\theroImageDesktop?: string;\r\n\theroImageMobile?: string;\r\n\theroImageOffsetY: number;\r\n\theroMediaType?: string;\r\n\trouting: RoutingState;\r\n\tfacebookAppId: string | undefined;\r\n\ttwitterUserName: string | undefined;\r\n\tstructuredData: string | null;\r\n\tsiteUrlPrefix: string;\r\n\tfindMoreRecipesUrl?: string;\r\n\tproductSearchUrl: string;\r\n\tpackageParameterName: string;\r\n\tproductFeaturesParameterName: string;\r\n\townPagesEnabled: boolean;\r\n\tsiteTheme: Theme;\r\n\tshowDailyPercentageTitle: boolean;\r\n\ttitleAsSlug?: string;\r\n\tfdaCompliant?: boolean;\r\n}\r\n\r\nconst mapStateToProps: MapStateToProps = (state: State): ProductStateProps => {\r\n\tconst { resource, routing, app } = state;\r\n\tconst product = resource.content as ProductState;\r\n\r\n\tconst baseState = {\r\n\t\tisLoading: resource.isLoading,\r\n\t\terror: resource.error,\r\n\t\theroImageDesktop: resource.heroImageDesktop,\r\n\t\theroImageMobile: resource.heroImageMobile,\r\n\t\theroImageOffsetY: resource.heroImageOffsetY,\r\n\t\theroMediaType: resource.heroMediaType,\r\n\t\tcanonicalUrl: resource.canonicalUrl,\r\n\t\trouting,\r\n\t\tfacebookAppId: getFacebookAppId(state),\r\n\t\ttwitterUserName: getTwitterUserNameWithAtSign(state),\r\n\t\tstructuredData: resource.structuredData,\r\n\t\tcontext: resource.context,\r\n\t\tfdaCompliant: product.productDetails?.fdaCompliant,\r\n\t};\r\n\r\n\tlet productState = {};\r\n\tlet findMoreRecipesUrl;\r\n\tconst sites = (app.settings && app.settings.sites) || [];\r\n\tconst siteUrlPrefix = ensureTrailingSlash(getSiteUrlPrefixOrDefault(routing, sites, '/'));\r\n\tconst showDailyPercentageTitle =\r\n\t\t(getSettingValue(state, 'ProductPage', 'ShowDailyPercentageTitle') ?? 'false').toLowerCase() === 'true';\r\n\r\n\tif (product) {\r\n\t\tconst { productDetails, relatedRecipes, relatedProducts } = product;\r\n\t\tlet recipes = [] as RecipeCardInterface[];\r\n\r\n\t\tif (relatedRecipes && relatedRecipes.recipes && relatedRecipes.recipes.length) {\r\n\t\t\trecipes = relatedRecipes.recipes;\r\n\t\t}\r\n\r\n\t\tif (recipes && 3 < recipes.length) {\r\n\t\t\tconst recipeSearchUrl = getSettingValue(state, 'RecipeSearch', 'Url') ?? '/';\r\n\t\t\tconst ingredientsParameter =\r\n\t\t\t\tgetSettingValue(state, 'RecipeSearch', 'IngredientsParameter') ?? SearchFilterName.ingredients;\r\n\t\t\tfindMoreRecipesUrl = addSiteUrlPrefix(\r\n\t\t\t\tsiteUrlPrefix,\r\n\t\t\t\t`${recipeSearchUrl}?${ingredientsParameter}=${resource.titleAsSlug}`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tproductState = {\r\n\t\t\tproductDetails,\r\n\t\t\trecipes,\r\n\t\t\trelatedProducts: relatedProducts.products,\r\n\t\t};\r\n\t}\r\n\tconst site = getSite(routing, sites);\r\n\treturn {\r\n\t\t...baseState,\r\n\t\t...productState,\r\n\t\tsiteUrlPrefix,\r\n\t\tfindMoreRecipesUrl,\r\n\t\tproductSearchUrl: getSettingValue(state, 'ProductSearch', 'Url') ?? '/tuotteet/haku/',\r\n\t\tpackageParameterName: getSettingValue(state, 'ProductPage', 'PackageParameter') ?? 'pakkaus',\r\n\t\tproductFeaturesParameterName: getSettingValue(state, 'ProductSearch', 'ProductFeaturesParameter') ?? 'ominaisuudet',\r\n\t\townPagesEnabled: site ? site.ownPagesEnabled : false,\r\n\t\tsiteTheme: site?.theme ?? defaultTheme,\r\n\t\tshowDailyPercentageTitle,\r\n\t\ttitleAsSlug: resource.titleAsSlug,\r\n\t};\r\n\r\n\tfunction ensureTrailingSlash(s: string): string {\r\n\t\tif (s.endsWith('/')) {\r\n\t\t\treturn s;\r\n\t\t}\r\n\t\treturn s + '/';\r\n\t}\r\n};\r\n\r\ninterface ProductDispatchProps {\r\n\taddToShoppingList: typeof productShoppingListActions.addToShoppingList;\r\n}\r\n\r\nexport default connect(mapStateToProps, {\r\n\taddToShoppingList: productShoppingListActions.addToShoppingList,\r\n})(injectRoutable(injectIntl(Product)));\r\n","import styled from 'styled-components';\r\nimport { media } from 'styleguide/helpers/media';\r\n\r\nexport const ContentColumn = styled.div`\r\n\tpadding: 20px;\r\n\tbox-sizing: border-box;\r\n\twidth: 100%;\r\n\r\n\t${media.tablet`\r\n\t\twidth: 80%;\r\n\t`};\r\n\r\n\t${media.desktop`\r\n\t\twidth: 100%;\r\n\t\tflex: 0 1 calc(50% - 2px);\r\n\t\tpadding: 20px 40px;\r\n\t`};\r\n\r\n\t${media.desktop1440`\r\n\t\tpadding: 20px 60px;\r\n\t`};\r\n\r\n\t.medium-header {\r\n\t\tmargin: 0 0 20px;\r\n\t}\r\n\r\n\t@media print {\r\n\t\tdisplay: block;\r\n\t\twidth: 49%;\r\n\t\tpadding: 0;\r\n\t\tflex: none;\r\n\t\tfloat: left;\r\n\t\tmargin-left: 2%;\r\n\r\n\t\t&:first-child {\r\n\t\t\tmargin-left: 0;\r\n\t\t}\r\n\r\n\t\t.medium-header {\r\n\t\t\tmargin: 0 0 2mm;\r\n\t\t}\r\n\t}\r\n`;\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { media } from '../../../helpers';\r\n\r\nconst StyledIngress = styled.p`\r\n\tfont-family: ${props => props.theme.fonts.secondary};\r\n\tfont-size: 18px;\r\n\tcolor: ${props => props.theme.colors.bodyText};\r\n\tline-height: 1.17;\r\n\tmargin: 15px auto;\r\n\ttext-align: center;\r\n\tpadding: 0 20px;\r\n\twidth: 100%;\r\n\twhite-space: pre-wrap;\r\n\r\n\t${media.tablet`\r\n\t padding: 0 50px;\r\n\t`};\r\n\r\n\t${media.desktop`\r\n\t\tmargin: 17px auto;\r\n\t padding: 0;\r\n\t\tfont-size: 21px;\r\n\t\tline-height: 1.14;\r\n\t\tmax-width: 750px;\r\n\t`};\r\n`;\r\n\r\nconst Ingress: React.FC<{ className?: string }> = ({ children, className }) => (\r\n\t{children}\r\n);\r\n\r\nexport default Ingress;\r\n","import { useSelector } from 'react-redux';\r\nimport { State } from '../reducers';\r\nimport { getHeroMediaSource } from 'utils/media';\r\n\r\nexport function useHeroMedia(presetSuffix: string) {\r\n\tconst { heroImageDesktop, heroImageMobile, heroImageOffsetY, heroMediaType } = useSelector(({ resource }: State) => ({\r\n\t\theroImageDesktop: resource.heroImageDesktop,\r\n\t\theroImageMobile: resource.heroImageMobile,\r\n\t\theroImageOffsetY: resource.heroImageOffsetY,\r\n\t\theroMediaType: resource.heroMediaType,\r\n\t}));\r\n\r\n\treturn {\r\n\t\theroMedia: getHeroMediaSource(heroMediaType, heroImageDesktop, heroImageMobile, presetSuffix),\r\n\t\theroImageOffsetY,\r\n\t};\r\n}\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport ButtonLink from 'styleguide/components/Buttons/Button/ButtonLink';\r\nimport MediumHeader from 'styleguide/components/Typography/MediumHeader/MediumHeader';\r\nimport BodyText from 'styleguide/components/Typography/BodyText/BodyText';\r\nimport { media } from 'styleguide/helpers/media';\r\nimport { ContentWrapper } from 'common/components/General';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nconst SectionWrapper = styled.div`\r\n\tbackground-color: ${({ theme }) => theme.colors.contentSectionHiglighted};\r\n\twidth: 100%;\r\n\tpadding: ${({ theme }) => theme.grid.gutterInPx(4)} 0;\r\n\r\n\t${media.desktop`\r\n\t\tpadding: ${({ theme }) => theme.grid.gutterInPx(2)} 0;\r\n\t`};\r\n\r\n\t@media print {\r\n\t\tdisplay: none;\r\n\t}\r\n`;\r\n\r\nconst SectionWidth = styled(ContentWrapper)`\r\n\tdisplay: flex;\r\n\tflex-flow: row wrap;\r\n\tjustify-content: space-between;\r\n\talign-content: center;\r\n\tpadding: 50px 60px;\r\n\r\n\t${media.desktop`\r\n flex-flow: row nowrap;\r\n `}\r\n`;\r\n\r\nconst ImageWrapper = styled.div`\r\n\tflex: 0 0 100%;\r\n\ttext-align: center;\r\n\r\n\t${media.desktop`\r\n flex: 0 0 200px;\r\n `}\r\n\r\n\tsvg {\r\n\t\twidth: 193px;\r\n\t\theight: 193px;\r\n\t\tdisplay: block;\r\n\t\tmargin: 0 auto;\r\n\t}\r\n`;\r\n\r\nconst Content = styled.div`\r\n\tflex: 1 1 100%;\r\n\ttext-align: center;\r\n\tmargin-top: 24px;\r\n\r\n\t> h2,\r\n\t> p {\r\n\t\tmargin: 5px auto 0;\r\n\t}\r\n\r\n\t${media.desktop`\r\n margin-top: 0;\r\n margin-left: 60px;\r\n margin-right: 60px;\r\n text-align: left;\r\n\r\n > h2 {\r\n font-size: 32px;\r\n line-height: 1;\r\n }\r\n\r\n > p {\r\n font-size: 20px;\r\n line-height: 1.4;\r\n }\r\n `}\r\n`;\r\n\r\nconst LinkWrapper = styled.div`\r\n\tflex: 0 0 100%;\r\n\ttext-align: center;\r\n\tmargin-top: 32px;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\r\n\t${media.desktop`\r\n flex: 0 0 260px;\r\n text-align: right;\r\n margin-top: 0;\r\n `}\r\n\r\n\t> a {\r\n\t\tmax-width: 260px;\r\n\t}\r\n`;\r\n\r\ninterface Props {\r\n\turl: string;\r\n\tbuttonLabel?: React.ReactNode;\r\n\ttitle?: string;\r\n\tbodyText: string;\r\n\ticon: React.ReactElement>;\r\n}\r\n\r\nconst FindMoreSection = ({ url, title, buttonLabel, bodyText, icon }: Props) => (\r\n\t\r\n\t\t\r\n\t\t\t{icon}\r\n\t\t\t\r\n\t\t\t\t{title ? title : }\r\n\t\t\t\t{bodyText}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport function FindMoreLink({ url, buttonLabel }: Pick) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{buttonLabel ? buttonLabel : }\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default FindMoreSection;\r\n","import BodyText, { BodyTextColours as BodyTextColoursImport } from './BodyText';\r\nexport { BodyTextColour } from './BodyText';\r\nexport type BodyTextColours = BodyTextColoursImport;\r\nexport default BodyText;\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { ContentWrapper } from '../General';\r\nimport { RelatedProduct } from 'pagetypes/Product/interfaces';\r\nimport ProductHighlight from '../Widgets/ProductHighlight';\r\nimport { ResourceHighlightItem } from '../Widgets/interfaces/interfaces';\r\nimport { ProductHighlightLayouts } from '../Widgets/interfaces/ProductHighlight';\r\nimport { media } from 'styleguide/helpers/media';\r\n\r\nconst ProductCardGridContentWrapper = styled(ContentWrapper)`\r\n\tpadding: 10px 0;\r\n\r\n\t${media.phone`\r\n\t\tpadding: 10px 0;\r\n\t`};\r\n\r\n\t${media.tablet`\r\n\t\tpadding: 0;\r\n\t`};\r\n\r\n\t@media print {\r\n\t\tpage-break-inside: avoid;\r\n\t}\r\n`;\r\n\r\nexport interface RelatedProductsProps {\r\n\tlistTitle: string;\r\n\tproducts: RelatedProduct[];\r\n\tisPrintHidden?: boolean;\r\n\tuseLazyImages?: boolean;\r\n}\r\n\r\nconst RelatedProducts: React.FC = ({ listTitle, products, useLazyImages, isPrintHidden }) => {\r\n\tconst resourceItems: ResourceHighlightItem[] = products.map(({ name, url, imageUrl, isNovelty }) => ({\r\n\t\ttitle: name,\r\n\t\turl,\r\n\t\timageUrl,\r\n\t\tisNovelty,\r\n\t}));\r\n\r\n\tlet layoutName: ProductHighlightLayouts;\r\n\tif (resourceItems.length === 4) {\r\n\t\tlayoutName = 'fourColumn';\r\n\t}\r\n\tif (resourceItems.length < 4) {\r\n\t\tlayoutName = 'threeColumn';\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RelatedProducts;\r\n","import Ingress from './Ingress';\r\nexport default Ingress;\r\n"],"sourceRoot":""}