{"version":3,"file":"coopse.script.6711.aaa8d1a0.chunk.js","mappings":"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","sources":["webpack:///../../packages/icons/src/stroke2/chevron-left.svg","webpack:///../../packages/icons/src/stroke2/chevron-right.svg","webpack:///../../packages/icons/src/stroke2/chevron-up.svg","webpack:///./src/microApps/common/components/QuantityStepper/QuantityStepper.tsx","webpack:///./src/microApps/common/components/atoms/VariantSelector.tsx","webpack:///../../packages/icons/src/stroke2/bag-add1.svg","webpack:///./src/microApps/common/components/molecules/EcomProductTeaser/AddedToCartTeaserNotification.tsx","webpack:///./src/microApps/common/components/molecules/EcomProductTeaser/EcomProductTeaserInfo.tsx","webpack:///./src/microApps/common/components/molecules/EcomProductTeaser/EcomProductTeaserInfo.module.less","webpack:///./src/microApps/common/components/molecules/EcomProductTeaser/EcomProductTeaser.tsx","webpack:///./src/microApps/common/components/molecules/EcomProductTeaser/EcomProductTeaserSkeleton.tsx","webpack:///./src/microApps/common/components/molecules/ProductTeaser/ProductTeaser.consts.ts","webpack:///./src/microApps/common/components/molecules/ProductTeaser/ProductTeaser.module.less","webpack:///./src/microApps/common/components/molecules/ProductTeaser/ProductTeaser.tsx","webpack:///./src/microApps/common/hooks/useBadges.ts","webpack:///../../packages/components/src/Select/Select.tsx","webpack:///../../packages/components/src/Select/Select.module.scss"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgChevronLeft = _ref => {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M15.7071 20.2071C15.3166 20.5976 14.6834 20.5976 14.2929 20.2071L7.29289 13.2071C6.90237 12.8166 6.90237 12.1834 7.29289 11.7929L14.2929 4.79289C14.6834 4.40237 15.3166 4.40237 15.7071 4.79289C16.0976 5.18342 16.0976 5.81658 15.7071 6.20711L9.41421 12.5L15.7071 18.7929C16.0976 19.1834 16.0976 19.8166 15.7071 20.2071Z\"\n  })));\n};\nexport default SvgChevronLeft;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgChevronRight = _ref => {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M8.29289 4.79289C8.68342 4.40237 9.31658 4.40237 9.70711 4.79289L16.7071 11.7929C17.0976 12.1834 17.0976 12.8166 16.7071 13.2071L9.70711 20.2071C9.31658 20.5976 8.68342 20.5976 8.29289 20.2071C7.90237 19.8166 7.90237 19.1834 8.29289 18.7929L14.5858 12.5L8.29289 6.20711C7.90237 5.81658 7.90237 5.18342 8.29289 4.79289Z\"\n  })));\n};\nexport default SvgChevronRight;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgChevronUp = _ref => {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M4.29289 15.7071C3.90237 15.3166 3.90237 14.6834 4.29289 14.2929L11.2929 7.29289C11.6834 6.90237 12.3166 6.90237 12.7071 7.29289L19.7071 14.2929C20.0976 14.6834 20.0976 15.3166 19.7071 15.7071C19.3166 16.0976 18.6834 16.0976 18.2929 15.7071L12 9.41421L5.70711 15.7071C5.31658 16.0976 4.68342 16.0976 4.29289 15.7071Z\"\n  })));\n};\nexport default SvgChevronUp;","/* eslint-disable react/jsx-props-no-spreading */\nimport { Button } from '@coop/components';\nimport * as React from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { type UncontrolledNumericStepperHandle, NumericStepper } from '../atoms/NumericStepper';\n\ninterface QuantityStepperProps {\n    quantity: number;\n    setQuantity: (quantity: number) => void;\n    buyButtonRef?: React.RefObject<HTMLButtonElement>;\n    isBlocked?: (newQuantity: number) => boolean;\n    onBlock?: (newQuantity: number, prevQuantity: number) => void;\n    withBuyButton?: boolean;\n    fullWidth?: boolean;\n    onAddClick?: (e: React.MouseEvent<HTMLElement>) => void;\n    onRemoveClick?: (e: React.MouseEvent<HTMLElement>) => void;\n    buyButtonLabel?: string;\n    inputLabel?: string;\n    addButtonLabel?: string;\n    removeButtonLabel?: string;\n}\n\nconst QuantityStepper = ({\n    setQuantity,\n    onBlock,\n    onAddClick,\n    onRemoveClick,\n    isBlocked,\n    ...props\n}: QuantityStepperProps) => {\n    const numericStepperRef = useRef<UncontrolledNumericStepperHandle>(null);\n    const [optimisticShowBuyButton, setOptimisticShowBuyButton] = useState(\n        props.withBuyButton && props.quantity === 0,\n    );\n\n    useLayoutEffect(() => {\n        // sync internal state with parent, i.e. when add to cart fails\n        numericStepperRef.current?.setValue(props.quantity);\n    }, [numericStepperRef, props.quantity]);\n\n    useEffect(() => {\n        if (props.withBuyButton) {\n            setOptimisticShowBuyButton(props.quantity === 0);\n        }\n    }, [props.quantity, props.withBuyButton]);\n\n    const handleConfirm = useCallback(\n        (newQuantity: number, prevQuantity: number) => {\n            if (isBlocked?.(newQuantity)) {\n                numericStepperRef.current?.revertValue();\n                onBlock?.(newQuantity, prevQuantity);\n                return;\n            }\n\n            setQuantity?.(newQuantity);\n            if (props.withBuyButton) {\n                setOptimisticShowBuyButton(newQuantity === 0);\n            }\n        },\n        [setQuantity, isBlocked, props.withBuyButton, onBlock],\n    );\n\n    return optimisticShowBuyButton ? (\n        <Button\n            ref={props.buyButtonRef}\n            data-testid=\"add_to_cart_button\"\n            theme=\"primary\"\n            size={40}\n            fullWidth={props.fullWidth}\n            onClick={() => handleConfirm(1, 0)}\n            aria-label={props.buyButtonLabel}\n            className={!props.fullWidth ? 'u-marginRauto' : ''}\n        >\n            Köp\n        </Button>\n    ) : (\n        <NumericStepper\n            ref={numericStepperRef}\n            /**\n             * If component is used with \"Köp\" button, then clicking \"Köp\" should immediately set quanity to 1, without the need to wait for the parent to set quanity, since that can be coupled with backend calls.\n             * If component is not using \"Köp\" button then we need to set the quanity from parent.\n             * Default value is only relevant on first render, in subsequent renders useLayoutEffect's numericStepperRef will sync the state with the parent.\n             */\n            defaultValue={props.quantity || (props.withBuyButton ? 1 : props.quantity)}\n            minValue={0}\n            incrementBy={1}\n            fullWidth={props.fullWidth}\n            onConfirm={handleConfirm}\n            onAddClick={onAddClick}\n            onRemoveClick={onRemoveClick}\n            inputLabel={props.inputLabel}\n            addButtonLabel={props.addButtonLabel}\n            removeButtonLabel={props.removeButtonLabel}\n        />\n    );\n};\n\nexport default React.memo(QuantityStepper);\n","import { Chip, Icon, Select, SelectItem } from '@coop/components';\nimport { ChevronUpIcon } from '@coop/icons';\nimport type { FC } from 'react';\n\ninterface VariantProp {\n    id: number | string;\n    name: string;\n}\n\ninterface VariantSelectorProps {\n    variants: VariantProp[];\n    selectedVariantId?: string;\n    selectItemClassName?: string;\n    handleVariantChange: (variantId: string) => void;\n}\n\nconst VariantSelector: FC<React.PropsWithChildren<VariantSelectorProps>> = (props) => {\n    if (!props.variants.length) return null;\n\n    return (\n        <Select\n            defaultSelectedKey={props.selectedVariantId}\n            onSelectionChange={(k) => props.handleVariantChange(k.toString())}\n            aria-label=\"Variant\"\n            popoverProps={{ placement: 'bottom' }}\n            renderTrigger={(children) => (\n                <Chip\n                    size={32}\n                    asChild\n                    theme=\"whiteGreen\"\n                    rightSlot={<Icon icon={ChevronUpIcon} />}\n                >\n                    {children}\n                </Chip>\n            )}\n        >\n            {props.variants.map((item) => (\n                <SelectItem\n                    key={item.id}\n                    id={item.id.toString()}\n                    className={props.selectItemClassName}\n                >\n                    {item.name}\n                </SelectItem>\n            ))}\n        </Select>\n    );\n};\n\nexport default VariantSelector;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBagAdd1 = _ref => {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    width: \"1em\",\n    height: \"1em\",\n    viewBox: \"0 0 24 24\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M9.514 2.14266C9.98758 2.42681 10.1411 3.04107 9.857 3.51465L7.7657 7.00015H16.2333L14.142 3.51465C13.8579 3.04107 14.0114 2.42681 14.485 2.14266C14.9586 1.85851 15.5729 2.01208 15.857 2.48566L18.5657 7.00015H20.7187C22.0199 7.00015 22.9746 8.22293 22.659 9.48522L22.4696 10.2427C22.3357 10.7785 21.7928 11.1043 21.257 10.9703C20.7212 10.8364 20.3954 10.2934 20.5294 9.75764L20.7187 9.00015H18.0178C18.0062 9.00035 17.9946 9.00035 17.9831 9.00015H6.01595C6.00437 9.00035 5.99277 9.00035 5.98117 9.00015H3.28028L5.78028 19.0002H9.4995C10.0518 19.0002 10.4995 19.4479 10.4995 20.0002C10.4995 20.5524 10.0518 21.0002 9.4995 21.0002H5.78028C4.86255 21.0002 4.06258 20.3756 3.84 19.4852L1.34 9.48522C1.02442 8.22293 1.97914 7.00015 3.28028 7.00015H5.43332L8.14201 2.48566C8.42616 2.01208 9.04042 1.85851 9.514 2.14266Z\"\n  })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M17.9995 23.9997C21.3132 23.9997 23.9995 21.3134 23.9995 17.9997C23.9995 14.686 21.3132 11.9997 17.9995 11.9997C14.6858 11.9997 11.9995 14.686 11.9995 17.9997C11.9995 21.3134 14.6858 23.9997 17.9995 23.9997ZM18.9995 14.9997C18.9995 14.4474 18.5518 13.9997 17.9995 13.9997C17.4472 13.9997 16.9995 14.4474 16.9995 14.9997V16.9997H14.9995C14.4472 16.9997 13.9995 17.4474 13.9995 17.9997C13.9995 18.5519 14.4472 18.9997 14.9995 18.9997H16.9995V20.9997C16.9995 21.5519 17.4472 21.9997 17.9995 21.9997C18.5518 21.9997 18.9995 21.5519 18.9995 20.9997V18.9997H20.9995C21.5518 18.9997 21.9995 18.5519 21.9995 17.9997C21.9995 17.4474 21.5518 16.9997 20.9995 16.9997H18.9995V14.9997Z\"\n  })));\n};\nexport default SvgBagAdd1;","import { Notification } from '@coop/components';\nimport { BagAdd1Icon } from '@coop/icons';\nimport type { FC } from 'react';\nimport type React from 'react';\n\nconst AddedToCartTeaserNotification: FC<\n    React.PropsWithChildren<{ show: boolean; onClose: () => void }>\n> = (props) => {\n    return (\n        <Notification\n            show={props.show}\n            close={props.onClose}\n            hasOutsideClick={false}\n            type=\"custom\"\n            position=\"absolute\"\n            theme=\"lightGreen\"\n            size=\"productCard\"\n            iconSlot={BagAdd1Icon}\n            header=\"Varan tillagd i varukorgen\"\n            message=\"\"\n            overrideAriaLive=\"off\" // accessibility of add to cart button is handled inside AddToCartAccessibilityLogger\n        />\n    );\n};\n\nexport default AddedToCartTeaserNotification;\n","import classNames from 'classnames';\nimport type { FC } from 'react';\nimport type React from 'react';\n\nimport { Helpers } from '../../../../../utility/helpers';\nimport MaxPromotionUsage from '../../../../ecommerce/components/MaxPromotionUsage';\nimport { mapVariantPromotion } from '../../../models/domain/ecommerce/promotion/promotionMappers';\nimport type { PriceType } from '../../../models/priceData/priceData';\nimport type { ProductProps, ProductVariantProps } from '../../../models/props/itemTeaserProps';\nimport { getFormattedComparativePrice } from '../../../utils/productUtils';\nimport ProductMedicalInfo from '../../atoms/MedicalInfo';\nimport ProductPrice from '../../atoms/ProductPrice';\nimport { useIsFromXSmall } from '../../atoms/ResponsiveBreakpoints';\nimport VariantSelector from '../../atoms/VariantSelector';\nimport ProductTeaser from '../ProductTeaser';\nimport styles from './EcomProductTeaserInfo.module.less';\n\ninterface EcomProductTeaserInfoProps {\n    currentVariant?: ProductVariantProps;\n    handleVariantChange?: (variantID: string) => void;\n    product: ProductProps;\n    priceType: PriceType;\n    showExcludingTaxInfo: boolean;\n    quantity?: number;\n    onLinkClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n}\n\nconst EcomProductTeaserInfo: FC<React.PropsWithChildren<EcomProductTeaserInfoProps>> = (props) => {\n    const hasVariants = !!props.product.variants?.length;\n    const isFromXSmall = useIsFromXSmall();\n\n    const recycleFeePrice =\n        props.product.recycleFeeData &&\n        Helpers.getPrice(props.product.recycleFeeData, props.priceType);\n\n    const priceData = props.currentVariant?.priceData || props.product.priceData;\n\n    const promotionPriceData =\n        props.currentVariant?.promotionPriceData || props.product.promotionPriceData;\n\n    return (\n        <div className=\"ProductTeaser-info\">\n            <div className=\"ProductTeaser-headingContainer\">\n                <p className=\"ProductTeaser-heading\">\n                    {props.onLinkClick ? (\n                        <a\n                            href={props.product.url}\n                            className=\"ProductTeaser-link u-outlineSolidBase2\"\n                            tabIndex={-1} // not focusable by keyboard, the image in the parent is focusable instead\n                            onClick={props.onLinkClick}\n                        >\n                            {props.product.name}\n                        </a>\n                    ) : (\n                        props.product.name\n                    )}\n                </p>\n                {hasVariants && props.handleVariantChange ? (\n                    <div className=\"ProductTeaser-features\">\n                        <VariantSelector\n                            variants={props.product.variants}\n                            handleVariantChange={props.handleVariantChange}\n                            selectedVariantId={props.currentVariant?.id}\n                            selectItemClassName=\"ProductTeaser-variantSelectItem\"\n                        />\n                    </div>\n                ) : (\n                    props.product.packageSizeInformation && (\n                        <div className=\"ProductTeaser-features\">\n                            <ProductTeaser.PackageSizeInfo\n                                packageSizeInformation={props.product.packageSizeInformation}\n                            />\n                        </div>\n                    )\n                )}\n            </div>\n            <div className={classNames('ProductTeaser-detailsContainer')}>\n                <div className={classNames('ProductTeaser-details')}>\n                    {props.product.manufacturer && (\n                        <ProductTeaser.Brand\n                            brand={props.product.manufacturer}\n                            fromSweden={props.product.fromSweden}\n                        />\n                    )}\n\n                    {props.product.comparativePriceData && props.product.comparativeText && (\n                        <div>\n                            {getFormattedComparativePrice(\n                                Helpers.getPrice(\n                                    props.product.comparativePriceData,\n                                    props.priceType,\n                                ),\n                                props.product.comparativeText,\n                            )}\n                        </div>\n                    )}\n\n                    {!!recycleFeePrice && recycleFeePrice > 0 && (\n                        <div>\n                            +{Helpers.toEcommercePriceWithCurrency(recycleFeePrice, 'hideRest')}{' '}\n                            pant\n                        </div>\n                    )}\n\n                    {!!props.product.consumerInformationText?.length && (\n                        <div>{props.product.consumerInformationText.join('. ')}</div>\n                    )}\n\n                    {!isFromXSmall && (\n                        <ProductMedicalInfo\n                            isNicotine={!!props.product.isNicotineProduct}\n                            isPharmaceutical={!!props.product.isPharmaceutical}\n                        />\n                    )}\n\n                    {!!props.product.promotion?.maxUseText && (\n                        <MaxPromotionUsage text={props.product.promotion.maxUseText} />\n                    )}\n                </div>\n\n                <ProductPrice\n                    priceType={props.priceType}\n                    newPiecePrice={promotionPriceData}\n                    piecePrice={priceData}\n                    promo={mapVariantPromotion(props.product.promotion, props.currentVariant)}\n                    showExcludingTaxInfo={props.showExcludingTaxInfo}\n                    className={classNames(styles.ProductPrice, 'ProductTeaser-pricesContainer')}\n                    quantity={props.quantity}\n                />\n            </div>\n            {isFromXSmall && (\n                <ProductMedicalInfo\n                    isNicotine={!!props.product.isNicotineProduct}\n                    isPharmaceutical={!!props.product.isPharmaceutical}\n                />\n            )}\n        </div>\n    );\n};\n\nexport default EcomProductTeaserInfo;\n","// extracted by mini-css-extract-plugin\nexport default {\"ProductPrice\":\"sJx8F6kR\"};","import * as React from 'react';\n\nimport type { PriceType } from '../../../models/priceData/priceData';\nimport type { ProductProps, ProductVariantProps } from '../../../models/props/itemTeaserProps';\nimport { useIsFromXSmall } from '../../atoms/ResponsiveBreakpoints';\nimport EcomPromoSplash from '../EcomPromoSplash';\nimport ProductTeaser from '../ProductTeaser';\nimport EcomProductTeaserInfo from './EcomProductTeaserInfo';\n\ntype EcomProductTeaserProps = {\n    handleTeaserClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n    handleLinkClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n    handleVariantChange?: (variantId: string) => void;\n    containerCss?: string;\n    isALink?: boolean;\n    isAsyncLink?: boolean;\n    currentVariant?: ProductVariantProps;\n    product: ProductProps;\n    quantity?: number;\n    notificationSlot?: React.ReactNode;\n    actionsSlot?: React.ReactNode;\n    priceType: PriceType;\n};\n\nconst EcomProductTeaser = React.forwardRef<HTMLDivElement, EcomProductTeaserProps>((props, ref) => {\n    const isFromXSmall = useIsFromXSmall();\n\n    return (\n        <ProductTeaser.Wrapper\n            ref={ref}\n            containerCss={props.containerCss}\n            handleTeaserClick={props.handleTeaserClick}\n            notificationSlot={props.notificationSlot}\n        >\n            <ProductTeaser.Media\n                name={props.product.name}\n                attributeLabels={props.product.attributeLabels}\n                imageUrl={props.product.imageUrl}\n                url={props.product.url}\n                isALink={props.isALink}\n                handleLinkClick={props.handleLinkClick}\n                promotionSplashSlot={\n                    props.product.promotion && (\n                        <EcomPromoSplash\n                            promotion={props.product.promotion}\n                            type={!isFromXSmall ? 'small' : 'default'}\n                            priceType={props.priceType}\n                        />\n                    )\n                }\n            />\n            <EcomProductTeaserInfo\n                priceType={props.priceType}\n                product={props.product}\n                handleVariantChange={props.handleVariantChange}\n                currentVariant={props.currentVariant}\n                showExcludingTaxInfo\n                onLinkClick={props.handleLinkClick}\n                quantity={props.quantity}\n            />\n            {props.actionsSlot}\n        </ProductTeaser.Wrapper>\n    );\n});\n\nexport default EcomProductTeaser;\n","import classNames from 'classnames';\n\ninterface ProductTeaserSkeletonProps {\n    withActions: boolean;\n}\nconst ProductTeaserSkeleton = (props: ProductTeaserSkeletonProps) => {\n    return (\n        <article\n            className={classNames(\n                'ProductTeaser ProductTeaser--skeleton ProductTeaser-alignCenter',\n            )}\n        >\n            <div className=\"ProductTeaser-content\">\n                <div className=\"ProductTeaser-media\">\n                    <div className=\"ProductTeaser-image\">\n                        <div />\n                    </div>\n                </div>\n                <div className=\"ProductTeaser-info\">\n                    <div className=\"ProductTeaser-headingContainer\">\n                        <div className=\"ProductTeaser-heading\" />\n                        <div className=\"ProductTeaser-features\">\n                            <div />\n                        </div>\n                    </div>\n                    <div className=\"ProductTeaser-detailsContainer\">\n                        <div className=\"ProductTeaser-details\">\n                            <div />\n                            <div />\n                            <div />\n                        </div>\n                        <div className=\"ProductTeaser-pricesContainer\">\n                            <div />\n                        </div>\n                    </div>\n                    {props.withActions && (\n                        <div className=\"ProductTeaser-actions\">\n                            <div />\n                        </div>\n                    )}\n                </div>\n            </div>\n        </article>\n    );\n};\n\nexport default ProductTeaserSkeleton;\n","export const missingProductImageUrl = '/Assets/Images/missing-image-product.png';\n","// extracted by mini-css-extract-plugin\nexport default {};","import { Chip } from '@coop/components';\nimport classNames from 'classnames';\nimport type { FC, ReactNode } from 'react';\nimport * as React from 'react';\n\nimport { Helpers } from '../../../../../utility/helpers';\nimport { useBadges } from '../../../hooks/useBadges';\nimport type { PriceType } from '../../../models/priceData/priceData';\nimport type {\n    ProductAttributeLabel,\n    ProductProps,\n    ProductVariantProps,\n} from '../../../models/props/itemTeaserProps';\nimport CloudinaryImage from '../../atoms/CloudinaryImage';\nimport { ConditionalWrapper } from '../../atoms/ConditionalWrapper';\nimport ProductBadge from '../../atoms/ProductBadge';\nimport { missingProductImageUrl } from './ProductTeaser.consts';\nimport styles from './ProductTeaser.module.less';\n\ntype BaseProductTeaserProps = {\n    handleTeaserClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n    handleLinkClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n    handleVariantChange?: (variantId: string) => void;\n    containerCss?: string;\n    isALink?: boolean;\n    isAsyncLink?: boolean;\n    currentVariant?: ProductVariantProps;\n    product: ProductProps;\n    // detailsContainerColumn?: boolean;\n    notificationSlot?: React.ReactNode;\n    actionsSlot?: React.ReactNode;\n    priceType: PriceType;\n    // additionalSplashInfo?: string;\n};\n\nconst ProductTeaserWrapper = React.forwardRef<\n    HTMLDivElement,\n    Pick<BaseProductTeaserProps, 'containerCss' | 'handleTeaserClick' | 'notificationSlot'> & {\n        children: ReactNode;\n    }\n>((props, ref) => {\n    const containerCss = classNames(\n        styles.FakeStyle,\n        'ProductTeaser ProductTeaser-alignCenter',\n        props.containerCss,\n    );\n\n    return (\n        // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n        <div ref={ref} onClick={props.handleTeaserClick} className={containerCss}>\n            <div className=\"ProductTeaser-content\">{props.children}</div>\n            {props.notificationSlot}\n        </div>\n    );\n});\n\ninterface ProductTeaserMediaProps {\n    attributeLabels?: ProductAttributeLabel[];\n    url?: string;\n    name: string;\n    imageUrl?: string;\n    isALink?: boolean;\n    handleLinkClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n    slotTopBadge?: ReactNode;\n    promotionSplashSlot?: ReactNode;\n}\n\nconst ProductTeaserMedia: FC<React.PropsWithChildren<ProductTeaserMediaProps>> = (props) => {\n    const badges = useBadges(props.attributeLabels);\n\n    const filteredBadges = badges.slice(0, 2); // business requirement: max 2 badges can be displayed on any product listing\n\n    return (\n        <div className=\"ProductTeaser-media\">\n            <ConditionalWrapper\n                condition={!!props.isALink || !!props.handleLinkClick}\n                renderWrapper={(ch) => (\n                    <a\n                        href={props.url}\n                        className={classNames('u-outlineSolidBase2')}\n                        aria-label={props.name}\n                        onClick={props.handleLinkClick}\n                    >\n                        {ch}\n                    </a>\n                )}\n            >\n                <div className=\"ProductTeaser-image\">\n                    <CloudinaryImage\n                        url={props.imageUrl}\n                        name={props.name}\n                        fallbackUrl={missingProductImageUrl}\n                        transform=\"f_auto,fl_clip,fl_progressive,q_auto,c_lpad,g_center,h_120,w_120\"\n                        retinaTransform=\"f_auto,fl_clip,fl_progressive,q_auto,c_lpad,g_center,h_240,w_240\"\n                        lazy\n                    />\n                </div>\n            </ConditionalWrapper>\n            {(props.slotTopBadge || filteredBadges?.length > 0) && (\n                <div className=\"ProductTeaser-badges\">\n                    {props.slotTopBadge}\n                    {filteredBadges.map((badge, index) => {\n                        return (\n                            <ProductBadge\n                                // eslint-disable-next-line react/no-array-index-key\n                                key={`${badge.url}-${index.toString()}`}\n                                zoomable={false}\n                                url={badge.url!}\n                                alt={badge.alt}\n                                dimensions={{ width: 24, height: 24 }}\n                            />\n                        );\n                    })}\n                </div>\n            )}\n            {!!props.promotionSplashSlot && (\n                <div className=\"ProductTeaser-promos\">\n                    <div className=\"ProductTeaser-splash\">{props.promotionSplashSlot}</div>\n                </div>\n            )}\n        </div>\n    );\n};\n\nconst ProductTeaserBrand: FC<React.PropsWithChildren<{ brand: string; fromSweden?: boolean }>> = ({\n    brand,\n    fromSweden,\n}) => {\n    return (\n        <div className={classNames(`ProductTeaser-brand`)}>\n            {fromSweden && (\n                <img\n                    className=\"u-marginRxxxxsm\"\n                    src=\"/Assets/Icons/flag-sweden.svg\"\n                    alt=\"Svensk flagga\"\n                    width=\"16\"\n                    height=\"10\"\n                />\n            )}\n            <span>{brand}.</span>\n        </div>\n    );\n};\n\nconst ProductTeaserPackageSizeInfo: FC<\n    React.PropsWithChildren<{ packageSizeInformation: string }>\n> = ({ packageSizeInformation }) => {\n    return (\n        <Chip size={24} theme=\"whiteBlack\">\n            {Helpers.capitalize(packageSizeInformation)}\n        </Chip>\n    );\n};\n\nconst ProductTeaserHeading: FC<React.PropsWithChildren<{ name: string }>> = ({ name }) => {\n    return <h3 className=\"ProductTeaser-heading\">{name}</h3>;\n};\n\nconst ProductTeaser = {\n    Wrapper: ProductTeaserWrapper,\n    Media: ProductTeaserMedia,\n    Brand: ProductTeaserBrand,\n    Heading: ProductTeaserHeading,\n    PackageSizeInfo: ProductTeaserPackageSizeInfo,\n};\n\nexport default ProductTeaser;\n","import type { ProductAttributeLabel, ProductBadgeProps } from '../models/props/itemTeaserProps';\nimport { filterProductAttributes } from '../utils/productUtils';\n\nexport const useBadges = (labels?: ProductAttributeLabel[]) => {\n    const getAppliedBadges = (): ProductBadgeProps[] => {\n        if (!labels?.length) {\n            return [];\n        }\n\n        const attributes = filterProductAttributes(labels);\n        const badges = attributes.map<ProductBadgeProps>((attribute) => {\n            return { alt: attribute.name, url: attribute.image ? attribute.image.url : undefined };\n        });\n\n        return badges || [];\n    };\n\n    return getAppliedBadges();\n};\n","'use client';\n\n/* eslint-disable react/jsx-props-no-spreading */\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport {\n    Button as AriaButton,\n    Popover as AriaPopover,\n    Select as AriaSelect,\n    SelectValue as AriaSelectValue,\n} from 'react-aria-components';\n\nimport { ListBox, ListBoxItem } from '../ListBox';\nimport { useIsInsideModal } from '../Modal';\nimport styles from './Select.module.scss';\n\nexport const Select = React.forwardRef<\n    HTMLDivElement,\n    React.ComponentPropsWithoutRef<typeof AriaSelect> & {\n        'aria-label': string;\n        renderTrigger: (children: React.ReactNode) => React.ReactNode;\n        popoverProps?: React.ComponentProps<typeof AriaPopover>;\n    }\n>(({ renderTrigger, ...props }, forwardedRef) => {\n    const isInsideModal = useIsInsideModal();\n\n    return (\n        <AriaSelect\n            ref={forwardedRef}\n            {...props}\n            className={classNames(props.className, styles.Container)}\n        >\n            {renderTrigger(\n                <AriaButton>\n                    <AriaSelectValue />\n                </AriaButton>,\n            )}\n            <AriaPopover\n                {...props.popoverProps}\n                className={classNames(styles.Popover, props.popoverProps?.className)}\n                isNonModal={isInsideModal} // if isNonModal is false and Select is in another modal, in Firefox the popover opens and closes immediately\n            >\n                <ListBox>{props.children}</ListBox>\n            </AriaPopover>\n        </AriaSelect>\n    );\n});\n\nexport const SelectItem = (props: React.ComponentProps<typeof ListBoxItem>) => {\n    return <ListBoxItem {...props}>{props.children}</ListBoxItem>;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"Container\":\"gRWV021V\",\"Popover\":\"FNklAtnZ\"};"],"names":["_path","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","_ref","title","titleId","props","width","height","viewBox","xmlns","id","fillRule","clipRule","d","setQuantity","onBlock","onAddClick","onRemoveClick","isBlocked","numericStepperRef","useRef","optimisticShowBuyButton","setOptimisticShowBuyButton","useState","withBuyButton","quantity","useLayoutEffect","current","setValue","useEffect","handleConfirm","useCallback","newQuantity","prevQuantity","revertValue","Button","ref","buyButtonRef","theme","size","fullWidth","onClick","buyButtonLabel","className","NumericStepper","defaultValue","minValue","incrementBy","onConfirm","inputLabel","addButtonLabel","removeButtonLabel","variants","defaultSelectedKey","selectedVariantId","onSelectionChange","k","handleVariantChange","toString","popoverProps","placement","renderTrigger","children","asChild","rightSlot","icon","map","item","selectItemClassName","name","_path2","Notification","show","close","onClose","hasOutsideClick","type","position","iconSlot","header","message","overrideAriaLive","hasVariants","product","isFromXSmall","recycleFeePrice","recycleFeeData","getPrice","priceType","priceData","currentVariant","promotionPriceData","onLinkClick","href","url","tabIndex","VariantSelector","packageSizeInformation","ProductTeaser","PackageSizeInfo","manufacturer","Brand","brand","fromSweden","comparativePriceData","comparativeText","toEcommercePriceWithCurrency","consumerInformationText","join","isNicotine","isNicotineProduct","isPharmaceutical","promotion","maxUseText","MaxPromotionUsage","text","ProductPrice","newPiecePrice","piecePrice","promo","showExcludingTaxInfo","Wrapper","containerCss","handleTeaserClick","notificationSlot","Media","attributeLabels","imageUrl","isALink","handleLinkClick","promotionSplashSlot","EcomPromoSplash","actionsSlot","withActions","missingProductImageUrl","FakeStyle","filteredBadges","useBadges","slice","ConditionalWrapper","condition","renderWrapper","ch","CloudinaryImage","fallbackUrl","transform","retinaTransform","lazy","slotTopBadge","badge","index","ProductBadge","zoomable","alt","dimensions","src","Heading","Chip","capitalize","labels","attribute","image","undefined","forwardedRef","isInsideModal","A","isNonModal","ListBox","SelectItem"],"sourceRoot":""}