{"version":3,"file":"static/js/blocks1.c4114398.chunk.js","mappings":"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","sources":["blocks/components/ContentList/hooks/useAlignment.hook.ts","webpack://@danishagro/cms/./src/blocks/components/ContentList/ContentList.module.scss?7fd3","blocks/components/ContentList/ContentList.component.tsx","blocks/components/ContentList/hooks/useCardSize.hook.ts","webpack://@danishagro/cms/../shared/src/components/atoms/Tag/Tag.module.scss?7736","../../shared/src/components/atoms/Tag/Tag.component.tsx","webpack://@danishagro/cms/./src/blocks/components/ContentList/components/Card/Card.module.scss?0315","blocks/components/ContentList/components/Card/Card.component.tsx","../../shared/src/gtm/useProductsTracker.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nexport const useAlignment = (alignment: string, S: { [key: string]: string }) => {\n    const alignmentClass = useMemo(() => {\n        switch (alignment) {\n            case \"ALIGNMENT_LEFT\":\n                return S.alignmentLeft;\n        }\n    }, [alignment, S]);\n\n    return {\n        alignmentClass,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"ContentList_wrapper__MoZU0\",\"inner\":\"ContentList_inner__6jU1u\",\"header\":\"ContentList_header__sLI5b\",\"alignmentLeft\":\"ContentList_alignmentLeft__ocgPQ\",\"tagline\":\"ContentList_tagline__h6nMM\",\"listWrapper\":\"ContentList_listWrapper__58l9L\",\"subTitle\":\"ContentList_subTitle__44fGp\",\"list\":\"ContentList_list__gb1-r\",\"cardSizeExtraSmall\":\"ContentList_cardSizeExtraSmall__W2Qt1\",\"cardSizeMedium\":\"ContentList_cardSizeMedium__se6qC\",\"cardSizeLarge\":\"ContentList_cardSizeLarge__y70dh\",\"cardSizeExtraLarge\":\"ContentList_cardSizeExtraLarge__YwXqQ\"};","import React from \"react\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { DA_Container } from \"@danishagro/shared/src/components/atoms/Container/Container.component\";\nimport { DA_Text } from \"@danishagro/shared/src/components/atoms/Text/Text.component\";\nimport {\n    DA_Title,\n    DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { useBackgroundColor } from \"@danishagro/cms/src/blocks/hooks/useBackgroundColor/useBackgroundColor.hook\";\nimport { usePadding } from \"@danishagro/cms/src/blocks/hooks/usePadding/usePadding.hook\";\nimport { ContentListProps } from \"./ContentList.interface\";\nimport { useCardSize } from \"./hooks/useCardSize.hook\";\nimport Card from \"./components/Card/Card.component\";\nimport { useAlignment } from \"./hooks/useAlignment.hook\";\nimport S from \"./ContentList.module.scss\";\n\nexport const ContentList = (props: ContentListProps) => {\n    const { backgroundColorClass, hasBackgroundColor } = useBackgroundColor(props.backgroundColor);\n    const { cardSizeClass } = useCardSize(props.cardSize, S);\n    const { paddingClass } = usePadding(props.isCompact, hasBackgroundColor);\n    const { alignmentClass } = useAlignment(props.alignment, S);\n\n    return (\n        <div\n            className={cn(\n                S.wrapper,\n                cardSizeClass,\n                paddingClass,\n                backgroundColorClass,\n                alignmentClass\n            )}\n        >\n            <DA_Container noVerticalPadding>\n                <div className={S.inner}>\n                    {/** Content */}\n                    <div className={S.header}>\n                        {/** Tagline */}\n                        {props.tagline ? <span className={S.tagline}>{props.tagline}</span> : null}\n\n                        {/** Title */}\n                        {props.headline ? (\n                            <DA_Title h2 tag={DA_TitleTag.H2} noMargin fullWidth>\n                                {props.headline}\n                            </DA_Title>\n                        ) : null}\n\n                        {/** Text */}\n                        {props.text ? <DA_Text html={props.text} noPadding /> : null}\n                    </div>\n\n                    {/** Card List */}\n                    <div className={S.listWrapper}>\n                        {props.subHeading ? (\n                            <div className={S.subTitle}>\n                                <DA_Title h3 noMargin fullWidth>\n                                    {props.subHeading}\n                                </DA_Title>\n                            </div>\n                        ) : null}\n\n                        <div className={S.list}>\n                            {props.items?.map((item, index) => (\n                                <Card\n                                    key={index}\n                                    {...item}\n                                    isVerticalImage={!!props.verticalImage}\n                                    isPortraitImage={!!props?.portraitImage}\n                                />\n                            ))}\n                        </div>\n                    </div>\n                </div>\n            </DA_Container>\n        </div>\n    );\n};\n\nexport default ContentList;\n","import { useMemo } from \"react\";\n\nexport const useCardSize = (size: string, S: { [key: string]: string }) => {\n    const cardSizeClass = useMemo(() => {\n        switch (size) {\n            case \"CARD_SIZE_EXTRA_SMALL\":\n                return S.cardSizeExtraSmall;\n            case \"CARD_SIZE_MEDIUM\":\n                return S.cardSizeMedium;\n            case \"CARD_SIZE_LARGE\":\n                return S.cardSizeLarge;\n            case \"CARD_SIZE_EXTRA_LARGE\":\n                return S.cardSizeExtraLarge;\n        }\n    }, [size, S]);\n\n    return {\n        cardSizeClass,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"Tag_tag__9CJXl\",\"sizeSmall\":\"Tag_sizeSmall__rWriH\",\"sizeDynamic\":\"Tag_sizeDynamic__Ac3A-\",\"sizeLarge\":\"Tag_sizeLarge__zGdv0\",\"good\":\"Tag_good__4bTX5\",\"warning\":\"Tag_warning__MK6Ht\",\"bad\":\"Tag_bad__6idbV\",\"neutral\":\"Tag_neutral__YgJB2\",\"alternativeNeutral\":\"Tag_alternativeNeutral__id7-t\",\"alternativeNeutral2\":\"Tag_alternativeNeutral2__dSUz3\",\"yellow\":\"Tag_yellow__H8F+B\",\"pause\":\"Tag_pause__Ysz0d\"};","import React from \"react\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport S from \"./Tag.module.scss\";\n\nexport interface DA_TagProps {\n    size?: \"small\" | \"large\" | \"dynamic\";\n    color:\n        | \"good\"\n        | \"warning\"\n        | \"bad\"\n        | \"neutral\"\n        | \"pause\"\n        | \"alternativeNeutral\"\n        | \"alternativeNeutral2\"\n        | \"yellow\";\n    children: React.ReactNode;\n}\n\nexport const DA_Tag = (props: DA_TagProps) => {\n    const colorClasses: Record<DA_TagProps[\"color\"], string> = {\n        good: S.good,\n        warning: S.warning,\n        bad: S.bad,\n        pause: S.pause,\n        neutral: S.neutral,\n        alternativeNeutral: S.alternativeNeutral,\n        alternativeNeutral2: S.alternativeNeutral2,\n        yellow: S.yellow,\n    };\n\n    const sizeClass: Record<DA_TagProps[\"size\"], string> = {\n        small: S.sizeSmall,\n        large: S.sizeLarge,\n        dynamic: S.sizeDynamic,\n    };\n\n    return (\n        <span className={cn(S.tag, colorClasses[props.color], sizeClass[props.size || \"dynamic\"])}>\n            {props.children}\n        </span>\n    );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Card_wrapper__+wQjj\",\"imageWrapper\":\"Card_imageWrapper__iu5Gv\",\"image\":\"Card_image__xgjkH\",\"verticalImage\":\"Card_verticalImage__KMReO\",\"textWrapper\":\"Card_textWrapper__WNkqM\",\"textInner\":\"Card_textInner__r2A-z\",\"tagline\":\"Card_tagline__zg72R\",\"tagWrapper\":\"Card_tagWrapper__ra3Zl\"};","import React from \"react\";\nimport { Buttons } from \"@danishagro/cms/src/components/Buttons/Buttons.component\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { DA_Text } from \"@danishagro/shared/src/components/atoms/Text/Text.component\";\nimport {\n    DA_Title,\n    DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { DA_Tag } from \"@danishagro/shared/src/components/atoms/Tag/Tag.component\";\nimport { ImageViewer } from \"@danishagro/cms/src/components/ImageViewer/ImageViewer.component\";\nimport { useProductTracker } from \"@danishagro/shared/src/gtm/useProductsTracker\";\nimport { useNavigate } from \"react-router-dom\";\nimport { CardProps } from \"./Card.interface\";\nimport S from \"./Card.module.scss\";\n\nconst Card = (props: CardProps) => {\n    const navigate = useNavigate();\n\n    // GTM tracking content list links\n    const trackProductClick = useProductTracker({\n        ...props,\n        price: \"\",\n        currency: \"\",\n        quantity: 0,\n        category: \"\",\n        name: props.headline,\n        brand: \"\",\n        productNumber: \"\",\n    });\n\n    const onLinkClicked = () => {\n        if (typeof window !== \"undefined\") {\n            navigate(`${window.location.pathname}${window.location.search}`, {\n                replace: true,\n                state: {\n                    scrollY: document.documentElement.scrollTop || document.body.scrollTop,\n                },\n            });\n        }\n        // // GTM Tracking the product click when the link is clicked\n        trackProductClick(\"select_item\");\n    };\n    const aspectRatioOverwrites = props.isPortraitImage\n        ? { aspectRatioX: 400, aspectRatioY: 300 }\n        : props?.isVerticalImage\n        ? { aspectRatioX: 400, aspectRatioY: 300 }\n        : { aspectRatioX: 400, aspectRatioY: 200 };\n\n    return (\n        <div className={cn(S.wrapper, props.className)}>\n            {/** Image */}\n            {props.image?.url ? (\n                <div className={S.imageWrapper}>\n                    <ImageViewer\n                        src={props.image.url}\n                        className={cn(S.image, {\n                            [S.verticalImage]: props.isVerticalImage,\n                        })}\n                        {...aspectRatioOverwrites}\n                        alternative={props.alternative}\n                    />\n                </div>\n            ) : null}\n\n            <div className={S.textWrapper}>\n                <div className={S.textInner}>\n                    {/* Tag */}\n                    {props.tag && (\n                        <div className={S.tagWrapper}>\n                            <DA_Tag color=\"good\">\n                                <span>{props.tag}</span>\n                            </DA_Tag>\n                        </div>\n                    )}\n\n                    {/** Headline */}\n                    {props.headline ? (\n                        <DA_Title h4 tag={DA_TitleTag.H4} noMargin fullWidth>\n                            {props.headline}\n                        </DA_Title>\n                    ) : null}\n\n                    {/** Text */}\n                    {props.text ? <DA_Text html={props.text} noPadding /> : null}\n                </div>\n\n                {/** Buttons */}\n                <div\n                    onClick={onLinkClicked}\n                    role=\"button\"\n                    onKeyDown={(e) => {\n                        if (e.key === \"Enter\" || e.key === \" \") onLinkClicked();\n                    }}\n                    tabIndex={0}\n                >\n                    <Buttons buttons={props.buttons} />\n                </div>\n            </div>\n        </div>\n    );\n};\n\nexport default Card;\n","// GTM Tracking\nimport { useCallback } from \"react\";\n\ntype ProductTrackerProps = {\n    name: string;\n    price: string;\n    productNumber: string;\n    currency: string;\n    eventName?: string;\n    category?: string;\n    brand?: string;\n    listId?: string;\n    listName?: string;\n    quantity?: number;\n};\n\ntype DataLayerItem = {\n    item_id: string;\n    item_name: string;\n    price?: number | string;\n    quantity: number;\n    discount: number;\n    currency: string;\n    item_category?: string;\n    item_brand?: string;\n    item_list_id?: string;\n    item_list_name?: string;\n    // Add more fields here as needed...\n};\n\nexport const useProductTracker = ({\n    name,\n    price,\n    productNumber,\n    currency,\n    category,\n    brand,\n    listId,\n    listName,\n    quantity,\n}: ProductTrackerProps) => {\n    // This function will track a product\n\n    const eventsThatRequireQuantity = new Set([\"add_to_cart\", \"remove_from_cart\"]);\n\n    // const priceWithTwoDecimals = parseFloat(price.toFixed(2));\n\n    const formatPriceAsNumber = (price: string): number => {\n        if (!price) {\n            return 0;\n        }\n\n        // Remove thousand separators and replace decimal commas with dots\n        const normalizedPrice = price.replace(/\\./g, \"\").replace(\",\", \".\");\n\n        const parsedPrice = parseFloat(normalizedPrice);\n        return isNaN(parsedPrice) ? 0 : parseFloat(parsedPrice.toFixed(2));\n    };\n\n    const trackProduct = useCallback(\n        (eventName: string) => {\n            window.dataLayer = window.dataLayer || [];\n            // Clear the previous ecommerce object\n            window.dataLayer?.push({ ecommerce: null });\n\n            // Extracting the first ID\n            const firstProductId = productNumber?.split(\",\")[0];\n\n            const item: DataLayerItem = {\n                item_id: firstProductId,\n                item_name: name,\n                price: formatPriceAsNumber(price),\n                quantity: eventsThatRequireQuantity.has(eventName) && quantity ? quantity : 1,\n                discount: 0.0,\n                currency: currency || \"DKK\",\n                item_category: category || \"\",\n                item_brand: brand || \"\",\n                item_list_id: listId || \"\",\n                item_list_name: listName || \"\",\n                // Add more fields here as needed...\n            };\n\n            // If the current event does not require quantity, then remove the quantity key from the object\n            if (!eventsThatRequireQuantity.has(eventName)) {\n                delete item.quantity;\n            }\n\n            window.dataLayer?.push({\n                event: eventName,\n                ecommerce: {\n                    items: [item],\n                },\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [productNumber, name, price, currency, category, brand, listId, listName, quantity]\n    );\n\n    return trackProduct;\n};\n"],"names":["ContentList","props","_props$items","backgroundColorClass","hasBackgroundColor","useBackgroundColor","backgroundColor","cardSizeClass","size","cardSize","S","useMemo","cardSizeExtraSmall","cardSizeMedium","cardSizeLarge","cardSizeExtraLarge","useCardSize","paddingClass","usePadding","isCompact","alignmentClass","useAlignment","alignment","alignmentLeft","_jsx","className","cn","wrapper","children","DA_Container","noVerticalPadding","_jsxs","inner","header","tagline","headline","DA_Title","h2","tag","DA_TitleTag","H2","noMargin","fullWidth","text","DA_Text","html","noPadding","listWrapper","subHeading","subTitle","h3","list","items","map","item","index","Card","isVerticalImage","verticalImage","isPortraitImage","portraitImage","DA_Tag","colorClasses","good","warning","bad","pause","neutral","alternativeNeutral","alternativeNeutral2","yellow","sizeClass","small","large","dynamic","color","_props$image","navigate","useNavigate","trackProductClick","_ref","name","price","productNumber","currency","category","brand","listId","listName","quantity","eventsThatRequireQuantity","Set","formatPriceAsNumber","normalizedPrice","replace","parsedPrice","parseFloat","isNaN","toFixed","useCallback","eventName","_window$dataLayer","_window$dataLayer2","window","dataLayer","push","ecommerce","item_id","split","item_name","has","discount","item_category","item_brand","item_list_id","item_list_name","event","useProductTracker","onLinkClicked","location","pathname","search","state","scrollY","document","documentElement","scrollTop","body","aspectRatioOverwrites","aspectRatioX","aspectRatioY","image","url","ImageViewer","src","alternative","h4","H4","onClick","role","onKeyDown","e","key","tabIndex","Buttons","buttons"],"sourceRoot":""}