{"version":3,"file":"js/5656.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/components/common/ReactComment.tsx","webpack:///./assets/common/src/components/common/DwMarker.tsx","webpack:///./assets/common/src/components/utils/ThronVideo.tsx","webpack:///./assets/common/src/utils/imageutils.ts","webpack:///./assets/common/src/utils/product.ts","webpack:///./assets/common/src/utils/useMousePosition.ts","webpack:///./assets/stone/src/components/routerTransitions/AnimatedLink.tsx","webpack:///./assets/stone/src/components/routerTransitions/useRegisterProducts.tsx","webpack:///./assets/stone/src/components/common/ProductLink.tsx","webpack:///./assets/stone/src/components/product/PriceDisplay.tsx","webpack:///./assets/stone/src/components/product/ProductImage.tsx","webpack:///./assets/stone/src/components/product/ProductPrice.tsx","webpack:///./assets/stone/src/components/product/ProductTileVisual.tsx","webpack:///./assets/stone/src/components/product/ProductVideo.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nconst ReactComment = (props) => {\n    const el = useRef();\n    useEffect(() => {\n        var _a;\n        // @ts-ignore\n        (_a = el.current) === null || _a === void 0 ? void 0 : _a.outerHTML = `<!-- ${props.text} -->`;\n    }, []);\n    return React.createElement(\"div\", { ref: el });\n};\nexport default ReactComment;\n","import React from 'react';\nimport ReactComment from './ReactComment';\nconst ContentAsset = (props) => {\n    return React.createElement(ReactComment, { text: `dwMarker=\"${props.type}\" dwContentID=\"${props.uuid}\"` });\n};\nexport default ContentAsset;\n","import classNames from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ThronIntegrationComponent from './../../scripts/components/thronIntegrationComponent';\nconst ThronVideo = (props) => {\n    const videoRef = useRef();\n    const [thronComponent, setThronComponent] = useState(null);\n    useEffect(() => {\n        if (videoRef.current) {\n            if (thronComponent) {\n                thronComponent.changeContent(props.thronID);\n            }\n            else {\n                const options = {};\n                props.onPauseCallback && (options.onPauseCallback = props.onPauseCallback);\n                props.onPlayCallback && (options.onPlayCallback = props.onPlayCallback);\n                props.onCompleteCallback && (options.onCompleteCallback = props.onCompleteCallback);\n                props.onInitCallback && (options.onInitCallback = props.onInitCallback);\n                props.onTimeUpdate && (options.onTimeUpdate = props.onTimeUpdate);\n                typeof props.loopTimes === 'number' && (options.loopTimes = props.loopTimes);\n                const newThronComponent = new ThronIntegrationComponent(videoRef.current, 'video', options);\n                setThronComponent(newThronComponent);\n            }\n        }\n    }, [props.thronID]);\n    return (React.createElement(\"div\", { ref: videoRef, \"aria-hidden\": \"true\", className: classNames('video-wrapper', props.className), \"data-option-id\": props.thronID, \"data-option-mobile-id\": props === null || props === void 0 ? void 0 : props.thronMobileID, \"data-option-muted\": props.muted, \"data-option-autoplay\": props.autoplay, \"data-option-loop\": props.loop, \"data-option-lock-bitrate\": props.lockBitrate, \"data-option-no-skin\": props.noskin, \"data-option-sess-id\": props.sessionId }));\n};\nexport default ThronVideo;\n","import slugify from 'slugify';\nimport { getId } from './brandDiffsUtils';\nconst imageutils = {\n    // res: {\n    //   HIRES: { width: 1571, height: 2000 },\n    //   LG: { width: 1024, height: 1304 },\n    //   MD: { width: 768, height: 977 },\n    //   SM: { width: 360, height: 458 },\n    //   XS: { width: 73, height: 93 },\n    //   XXS: { width: 15, height: 19 },\n    // },\n    transform: function (url, size, alt, quality, format) {\n        if (!url) {\n            return url;\n        }\n        if (url.indexOf('thron') > -1) {\n            let name = alt ? slugify(alt, { remove: /[*+~.()'\"!:@/]/g, lower: true }) : 'image';\n            let fullurl = url.replace(/\\/0x0\\/.*/, `/${size.width}x${size.height}/${name}.jpg`);\n            let params = [];\n            params.push(['scalemode', 'centered']);\n            params.push(['adjustcrop', 'reduce']);\n            const imgQuality = quality || window.imagequality;\n            if (imgQuality > 0) {\n                params.push(['quality', imgQuality]);\n            }\n            if (window.webpsupported) {\n                switch (format) {\n                    case 'avif':\n                        params.push(['format', 'avif']);\n                        break;\n                    default:\n                        params.push(['format', 'WEBP']);\n                        break;\n                }\n            }\n            if (params.length > 0) {\n                fullurl = fullurl + '?' + params.map((i) => i[0] + '=' + i[1]).join('&');\n            }\n            return fullurl;\n        }\n        if (url.includes('fluidconfigure')) {\n            return `${url}?width=${size.width}&height=${size.height}`;\n        }\n        url = this.clearParams(url);\n        return `${url}?sw=${size.width}` + ((size.height && `&sh=${size.height}`) || '');\n    },\n    hires: function (url, alt) {\n        return this.transform(url, HIRES, alt);\n    },\n    large: function (url, alt) {\n        return this.transform(url, LG, alt);\n    },\n    medium: function (url, alt) {\n        return this.transform(url, MD, alt);\n    },\n    small: function (url, alt) {\n        return this.transform(url, SM, alt);\n    },\n    extraSmall: function (url, alt) {\n        return this.transform(url, XS, alt);\n    },\n    clearParams: function (url) {\n        try {\n            if (url.indexOf('?') < 0)\n                return url;\n            const urlObj = new URL(url);\n            return urlObj.href.replace(urlObj.search, '');\n        }\n        catch (e) {\n            window.devmode && console.log('Impossible to clearParams of', url);\n        }\n        return url;\n    },\n    srcset: function (url, maxwidth, sizes) {\n        url = this.clearParams(url);\n        if (!sizes) {\n            sizes = Object.values(window.mqObj).map((ww) => ({\n                width: ww,\n            }));\n        }\n        if (!sizes.length)\n            return '';\n        if (maxwidth && sizes.some((size) => size.width > maxwidth)) {\n            let indexLimit = sizes.findIndex((size) => size.width > maxwidth);\n            sizes.splice(indexLimit);\n            sizes.push({\n                width: maxwidth,\n            });\n        }\n        return sizes\n            .map((size) => {\n            return `${this.transform(url, size, '')} ${size.width}w`;\n        })\n            .join(',');\n    },\n};\nexport default imageutils;\n// let aspectratio = 2000 / 1571; // oldimages\nlet aspectratio = {\n    MO: 2880 / 1920,\n    ST: 2880 / 2160,\n};\nconst size = (width) => {\n    return {\n        width: width,\n        height: Math.round(width * aspectratio[getId()]),\n    };\n};\nexport const HIRES = size(1571);\nexport const LG = size(1024);\nexport const MD = size(768);\nexport const SM = size(360);\nexport const XS = size(73);\nexport const XXS = size(30); // servirà per il lazyloading\n","import einsteinutils from './einsteinutils';\nimport api from './api';\nimport axios from 'axios';\nexport const COLOUR_ATTRIBUTE = 'color';\nexport const SIZE_ATTRIBUTE = 'size';\nexport const getVariationValues = (product, attributeId) => {\n    var _a, _b;\n    return (((_b = (_a = product === null || product === void 0 ? void 0 : product.variationAttributes) === null || _a === void 0 ? void 0 : _a.find((variation) => {\n        return variation.attributeId === attributeId;\n    })) === null || _b === void 0 ? void 0 : _b.values) || []);\n};\nexport const getColorVariations = (product) => {\n    return getVariationValues(product, COLOUR_ATTRIBUTE);\n};\nexport const getSizeVariations = (product) => {\n    return getVariationValues(product, SIZE_ATTRIBUTE);\n};\nexport const getColorVariationActive = (product) => {\n    return getColorVariations(product).find(({ selected }) => selected).value;\n};\nexport const getProductMasterId = (product) => {\n    if (product.masterId == product.id) {\n        const colorActiveId = getColorVariationActive(product);\n        return product.masterId.replace(colorActiveId, '');\n    }\n    else {\n        return product.masterId;\n    }\n};\nexport const getProductAvailability = (product) => {\n    let productAvailability;\n    if (product === null || product === void 0 ? void 0 : product.availability) {\n        if (product.availability.inStockDate) {\n            productAvailability = 'https://schema.org/InStock';\n        }\n        else if (product.availability.lowStock) {\n            productAvailability = 'https://schema.org/LimitedAvailability';\n        }\n        else if (product.availability.preorder) {\n            productAvailability = 'https://schema.org/PreOrder';\n        }\n        else {\n            //also if current.availability.isOutOfStock\n            productAvailability = 'https://schema.org/OutOfStock';\n        }\n    }\n    return productAvailability;\n};\nexport const getSizeAvailability = (product, isPreorder) => {\n    let productAvailability;\n    if (isPreorder) {\n        productAvailability = 'https://schema.org/PreOrder';\n    }\n    else if ((product === null || product === void 0 ? void 0 : product.ATS) <= 0) {\n        productAvailability = 'https://schema.org/OutOfStock';\n    }\n    else if ((product === null || product === void 0 ? void 0 : product.ATS) === 1) {\n        productAvailability = 'https://schema.org/LimitedAvailability';\n    }\n    else {\n        productAvailability = 'https://schema.org/InStock';\n    }\n    return productAvailability;\n};\nexport const getSimilarProducts = (product) => {\n    return new Promise((resolve, reject) => {\n        // const testProduct = {} as any;\n        // testProduct.hasLimitedAvailability = true;\n        // testProduct.uuid = 'testproduct';\n        // testProduct.limitedAvailabilityConfig = {\n        //   showLimitedAvailabilityLabel: true,\n        //   showSimilarProducts: true,\n        //   similarProductConfig: {\n        //     useRecommender: false,\n        //     recommenderId: 'PDP_Recently-Viewed',\n        //     // productIdList: ['G20918C00033829H8999', 'G20911A0016868950455'],\n        //     productIdList: ['G20918C00033829H8999', 'G20911A0016868950455', '569100002A01PR001000100F', 'G10911A109005327977600', '569100001A05PR001000', 'H209Z1A00002M2904999'],\n        //   },\n        // };\n        // const thisProduct = testProduct;\n        var _a, _b;\n        const thisProduct = product;\n        // Check if similar products for given product are already in session\n        const similarProductsSession = sessionStorage.getItem('similar' + thisProduct.uuid + window.locale);\n        if (similarProductsSession) {\n            const similarProductsSessionJSON = JSON.parse(similarProductsSession);\n            resolve(similarProductsSessionJSON);\n            return;\n        }\n        // Fetch from einstein or fetch tiles from static list;\n        if ((_a = thisProduct.limitedAvailabilityConfig) === null || _a === void 0 ? void 0 : _a.showSimilarProducts) {\n            const similarProductConfig = thisProduct.limitedAvailabilityConfig.similarProductConfig;\n            if ((_b = similarProductConfig === null || similarProductConfig === void 0 ? void 0 : similarProductConfig.productIdList) === null || _b === void 0 ? void 0 : _b.length) {\n                api.getProductTiles(similarProductConfig.productIdList).then((data) => {\n                    if (data) {\n                        const availableProducts = data.filter((p) => { var _a; return ((_a = p.availability) === null || _a === void 0 ? void 0 : _a.isOutOfStock) !== true && !p.isBoutiqueExclusive; });\n                        sessionStorage.setItem('similar' + thisProduct.uuid, JSON.stringify(availableProducts));\n                        resolve(availableProducts);\n                    }\n                    else {\n                        reject();\n                    }\n                });\n            }\n            else if (similarProductConfig === null || similarProductConfig === void 0 ? void 0 : similarProductConfig.useRecommender) {\n                const cancelTokenSource = axios.CancelToken.source();\n                const anchors = [{ masterId: thisProduct.masterId, id: thisProduct.id }];\n                einsteinutils.productRecommendations(similarProductConfig.recommenderId, (rec) => {\n                    if (rec && rec.products && rec.products.length > 0) {\n                        sessionStorage.setItem('similar' + thisProduct.uuid, JSON.stringify(rec.products));\n                        resolve(rec.products);\n                    }\n                    else {\n                        reject();\n                    }\n                }, cancelTokenSource, anchors);\n            }\n            else {\n                reject();\n            }\n        }\n    });\n};\n","import { useEffect, useState } from 'react';\nconst useMousePosition = (target) => {\n    const [mousePosition, setMousePosition] = useState({ x: null, y: null });\n    const [mouseStatus, setMouseStatus] = useState('OUTSIDE');\n    // let focusTimeout: number;\n    const updateMousePosition = (e) => {\n        setMousePosition({ x: e.offsetX, y: e.offsetY });\n    };\n    const updateMouseOver = (e) => {\n        // console.log('mouse over');\n        // console.log(e.type);\n        // clearTimeout(focusTimeout);\n        setMouseStatus('OVER');\n    };\n    const updateMouseOut = (e) => {\n        // console.log('mouse out');\n        // console.log(e.type);\n        // focusTimeout = setTimeout(() => {\n        setMouseStatus('OUTSIDE');\n        // }, 50);\n    };\n    useEffect(() => {\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('mousemove', updateMousePosition);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('focusin', updateMouseOver);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('focusout', updateMouseOut);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('mouseenter', updateMouseOver);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('mouseleave', updateMouseOut);\n        return () => {\n            target === null || target === void 0 ? void 0 : target.current.removeEventListener('mousemove', updateMousePosition);\n            target === null || target === void 0 ? void 0 : target.current.removeEventListener('focusin', updateMouseOver);\n            target === null || target === void 0 ? void 0 : target.current.removeEventListener('focusout', updateMouseOut);\n            target === null || target === void 0 ? void 0 : target.current.removeEventListener('mouseenter', updateMouseOver);\n            target === null || target === void 0 ? void 0 : target.current.removeEventListener('mouseleave', updateMouseOut);\n        };\n    }, []);\n    return { position: mousePosition, status: mouseStatus };\n};\nexport const handleTileNavigation = (target) => {\n    const [status, setStatus] = useState('OUT');\n    const [navigation, setNavigation] = useState();\n    const updateNavigation = (type) => {\n        setNavigation(type == 'focusin' || type == 'focusout' ? 'keyboard' : 'mouse');\n    };\n    const handleEnter = (e) => {\n        updateNavigation(e.type);\n        if (status != 'IN' && e.relatedTarget) {\n            setStatus('IN');\n        }\n    };\n    const handleExit = (e) => {\n        var _a;\n        updateNavigation(e.type);\n        if (e.type == 'focusout') {\n            if (e.relatedTarget && !((_a = target.current) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {\n                setStatus('OUT');\n            }\n        }\n        else {\n            setStatus('OUT');\n        }\n    };\n    useEffect(() => {\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('focusin', handleEnter);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('focusout', handleExit);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('mouseenter', handleEnter);\n        target === null || target === void 0 ? void 0 : target.current.addEventListener('mouseleave', handleExit);\n        return () => {\n            var _a, _b, _c, _d;\n            (_a = target === null || target === void 0 ? void 0 : target.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('focusin', handleEnter);\n            (_b = target === null || target === void 0 ? void 0 : target.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('focusout', handleExit);\n            (_c = target === null || target === void 0 ? void 0 : target.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('mouseenter', handleEnter);\n            (_d = target === null || target === void 0 ? void 0 : target.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('mouseleave', handleExit);\n        };\n    }, []);\n    return { navigation, status };\n};\nexport default useMousePosition;\n","import { __rest } from \"tslib\";\nimport { ProductActionTypes } from '@state/features/common.types';\nimport React, { useRef } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nconst AnimatedLink = (props) => {\n    const { to, from, productId, children, className, ariaLabel, ariaHidden, tabIndex, product, trackingAction, originalUuid } = props, rest = __rest(props, [\"to\", \"from\", \"productId\", \"children\", \"className\", \"ariaLabel\", \"ariaHidden\", \"tabIndex\", \"product\", \"trackingAction\", \"originalUuid\"]);\n    const dispatch = useDispatch();\n    const el = useRef(null);\n    const history = useHistory();\n    const location = useLocation();\n    const pathname = typeof to == 'string' ? to : to === null || to === void 0 ? void 0 : to.pathname;\n    const state = typeof to == 'object' && to.state ? to.state : {};\n    const linkProps = Object.assign({ to() {\n            const mergedState = Object.assign(Object.assign({}, state), { transition: {\n                    productId,\n                    direction: 'in',\n                    productUuid: originalUuid,\n                }, viewport: {\n                    scrollY: 0,\n                } });\n            return {\n                pathname,\n                state: mergedState,\n            };\n        },\n        onClick(event) {\n            dispatch({\n                type: ProductActionTypes.SET_PRODUCT,\n                payload: product,\n            });\n            if (trackingAction) {\n                trackingAction(event);\n            }\n            // const rect = el.current.getBoundingClientRect();\n            // const filterHeight = document.querySelector('.refine')?.clientHeight;\n            // let header = document.querySelector('header');\n            // const headerHeight = header && header.clientHeight;\n            // const headerGap = (filterHeight || 0) + headerHeight;\n            const newLocation = location.search.includes('pgv=ab') ? location.pathname + '?pgv=ab' : location.pathname;\n            const mergedState = Object.assign(Object.assign({}, from), { transition: {\n                    productId,\n                    direction: 'out',\n                }, viewport: {\n                    scrollY: window.scrollY,\n                    // scrollY: window.scrollY + rect.top - headerGap,\n                } });\n            history.replace(newLocation, mergedState);\n        } }, rest);\n    return (React.createElement(Link, Object.assign({ ref: el }, linkProps, { id: props.id, className: className, \"aria-label\": ariaLabel, \"aria-hidden\": ariaHidden, tabIndex: tabIndex }), children));\n};\nexport default AnimatedLink;\n","import { useEffect } from 'react';\nimport { useAnimatedRouteContext } from './AnimatedRoute';\nconst useRegisterProducts = (productUuid, el) => {\n    const { registerProducts, unregisterProducts } = useAnimatedRouteContext();\n    useEffect(() => {\n        if (productUuid && el.current) {\n            registerProducts({\n                el,\n                productUuid,\n            });\n        }\n        return () => {\n            if (productUuid) {\n                unregisterProducts(productUuid);\n            }\n        };\n    }, [productUuid]);\n};\nexport default useRegisterProducts;\n","import AnimatedLink from '@stone/components/routerTransitions/AnimatedLink';\nimport analytics from '@stone/utils/analytics';\nimport React, { useContext } from 'react';\nimport { __RouterContext } from 'react-router';\nimport useregisterProducts from '../routerTransitions/useRegisterProducts';\nconst ProductLink = (props) => {\n    const router = !props.ignoreRouting && (navigator.userAgent || '').indexOf('bot') === -1 && useContext(__RouterContext);\n    const linkProps = {\n        productId: props.product.id,\n        to: props.product.route,\n        className: props.className,\n        from: {\n            state: {\n                thumbStartIndex: props.index,\n            },\n        },\n    };\n    if (props.tileRef && props.originalUuid) {\n        useregisterProducts(props.originalUuid, props.tileRef);\n    }\n    const onClickAction = (event) => {\n        var _a;\n        if (props.noClickTracking) {\n            return;\n        }\n        else if ((_a = props === null || props === void 0 ? void 0 : props.analyticsData) === null || _a === void 0 ? void 0 : _a.item_list_name) {\n            analytics.productClick({\n                product: props.product,\n                index: props.product.analyticsIndex,\n                item_list_name: props.analyticsData.item_list_name,\n            });\n        }\n    };\n    return router ? (React.createElement(AnimatedLink, Object.assign({ product: props.product }, linkProps, { trackingAction: onClickAction, ariaLabel: props.ariaLabel, ariaHidden: props.ariaHidden, tabIndex: props.tabIndex, originalUuid: props.originalUuid }), props.children)) : (React.createElement(\"a\", { id: props.id, href: props.product.productUrl, onClick: onClickAction, className: props.className, \"aria-label\": props.ariaLabel, \"aria-hidden\": props.ariaHidden, tabIndex: props.tabIndex, \"aria-labelledby\": props.ariaLabelledby, onFocus: props.onFocus, onBlur: props.onBlur, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave }, props.children));\n};\nexport default ProductLink;\n","import useMediaQueries from '@stone/hooks/useMediaQueries';\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nconst PriceDisplay = (props) => {\n    var _a;\n    const { t } = useTranslation();\n    const { isMobile } = useMediaQueries();\n    const printMinRangePrice = () => {\n        return (React.createElement(React.Fragment, null,\n            props.minFullPrice && props.minFullPrice !== props.min && React.createElement(\"del\", { className: \"product-price-list\" }, props.minFullPrice),\n            props.min));\n    };\n    if (props.type === 'range') {\n        return (React.createElement(\"span\", { className: classNames('product-price', {\n                inline: props.inline,\n            }) },\n            window.language != 'ja' && t('label.from') + ' ',\n            printMinRangePrice(),\n            window.language == 'ja' && ' ' + t('label.from')));\n    }\n    const promo = (_a = props.promotions) === null || _a === void 0 ? void 0 : _a[0];\n    const hasDiscountPrice = props.list && !props.isExchangePrice && (props === null || props === void 0 ? void 0 : props.list) !== (props === null || props === void 0 ? void 0 : props.sales);\n    const a11yRender = () => {\n        return (React.createElement(\"span\", { className: \"visually-hidden\" }, props.list && !props.isExchangePrice ? (t('product.price.discounted.a11y', {\n            originalprice: props.list,\n            currentprice: props.sales,\n            currency: props.currency,\n        })) : (React.createElement(React.Fragment, null,\n            props.isExchangePrice && t('order.exchangecredit'),\n            \" \",\n            props.sales,\n            \" \",\n            props.currency ? ` ${props.currency}` : ''))));\n    };\n    return (React.createElement(React.Fragment, null,\n        a11yRender(),\n        React.createElement(\"span\", { className: classNames('product-price', {\n                inline: props.inline,\n                discount: hasDiscountPrice,\n                'justify-between': props.isPlp && isMobile && hasDiscountPrice,\n            }), \"aria-hidden\": true },\n            React.createElement(\"span\", { className: classNames('product-price-wrap', {\n                    'd-column': props.isPlp && isMobile && hasDiscountPrice,\n                }) },\n                hasDiscountPrice && React.createElement(\"del\", { className: \"product-price-list\" }, props.list),\n                React.createElement(\"span\", { className: \"product-price-sale\" },\n                    props.sales,\n                    props.currency ? ` ${props.currency}` : '')),\n            (promo === null || promo === void 0 ? void 0 : promo.calloutMsg) && React.createElement(\"span\", { className: \"product-price-msg\" }, promo.calloutMsg))));\n};\nPriceDisplay.defaultProps = {\n    inline: false,\n};\nexport default PriceDisplay;\n","import useBreakpoint from '@common/utils/useBreakpoint';\nimport imageutils, { MD, SM, XS, XXS, LG } from '@utils/imageutils';\nimport classNames from 'classnames';\nimport React, { useEffect, useMemo, useRef } from 'react';\nconst defaultSizes = [XXS, XS, SM, MD];\nconst ProductImage = (props) => {\n    var _a;\n    const currentBreakpoint = useBreakpoint();\n    const image = useMemo(() => {\n        var _a, _b, _c, _d, _e, _f;\n        if (props.index) {\n            return (_a = props.img) === null || _a === void 0 ? void 0 : _a.urls[props.index];\n        }\n        let img;\n        if (props.type) {\n            let imageoldsuffix = '_' + props.type + '.';\n            let imagenewsuffix = '_' + props.type + '1.';\n            img = (_c = (_b = props.img) === null || _b === void 0 ? void 0 : _b.urls) === null || _c === void 0 ? void 0 : _c.find((u) => u && (u.includes(imageoldsuffix) || u.includes(imagenewsuffix)));\n        }\n        if (!img && props.typeFallback) {\n            const typeFallbackSuffix = '_' + props.typeFallback;\n            img = (_e = (_d = props.img) === null || _d === void 0 ? void 0 : _d.urls) === null || _e === void 0 ? void 0 : _e.find((u) => u.includes(typeFallbackSuffix));\n        }\n        if (img) {\n            return img;\n        }\n        else {\n            return (_f = props.img) === null || _f === void 0 ? void 0 : _f.urls[0];\n        }\n    }, [props.img, props.index, props.type]);\n    const el = useRef();\n    const lowResImg = useMemo(() => { var _a; return imageutils.transform(image, XXS, (_a = props.img) === null || _a === void 0 ? void 0 : _a.alt); }, [image]);\n    const hiResImage = useMemo(() => {\n        var _a, _b;\n        //@ts-ignore disable-next-line\n        if (currentBreakpoint >= window.mqObj.md) {\n            return imageutils.transform(image, LG, (_a = props.img) === null || _a === void 0 ? void 0 : _a.alt, null, 'avif');\n        }\n        else {\n            return imageutils.transform(image, MD, (_b = props.img) === null || _b === void 0 ? void 0 : _b.alt, null, 'avif');\n        }\n    }, [currentBreakpoint, image]);\n    const multipleSrc = useMemo(() => {\n        let srcs = [];\n        (props.sizes || defaultSizes).forEach((sz, i) => {\n            var _a;\n            srcs.push(`${imageutils.transform(image, sz, (_a = props.img) === null || _a === void 0 ? void 0 : _a.alt)} ${sz.width}w`);\n        });\n        return srcs.join(', ');\n    }, [image]);\n    const multipleSrcAvif = useMemo(() => {\n        let srcs = [];\n        (props.sizes || defaultSizes).forEach((sz, i) => {\n            var _a;\n            srcs.push(`${imageutils.transform(image, sz, (_a = props.img) === null || _a === void 0 ? void 0 : _a.alt, null, 'avif')} ${sz.width}w`);\n        });\n        return srcs.join(', ');\n    }, [image]);\n    const altText = useMemo(() => {\n        var _a, _b;\n        const index = (_a = props.seoIndex) !== null && _a !== void 0 ? _a : props.index;\n        return `${props.alt || ((_b = props.img) === null || _b === void 0 ? void 0 : _b.alt)}${index >= 0 ? ` ${index + 1}` : ''}`;\n    }, [image]);\n    useEffect(() => {\n        props.onHasImage && props.onHasImage(!!image);\n    }, [image]);\n    const lazyPosterImg = useMemo(() => {\n        return props.lazyLowRes ? lowResImg : 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n    }, [image]);\n    const imageElement = (React.createElement(\"picture\", { className: classNames({ lazyload: !props.lazyDisabled }, props.className) },\n        React.createElement(\"source\", Object.assign({}, (!props.lazyDisabled && { ['data-srcset']: multipleSrcAvif }), { srcSet: props.lazyDisabled ? multipleSrcAvif : lazyPosterImg, type: \"image/avif\" })),\n        React.createElement(\"source\", Object.assign({}, (!props.lazyDisabled && { ['data-srcset']: multipleSrc }), { srcSet: props.lazyDisabled ? multipleSrc : lazyPosterImg, type: \"image/webp\" })),\n        React.createElement(\"img\", { ref: props.ref || el, alt: altText, src: props.lazyDisabled ? hiResImage : lowResImg, \"data-sizes\": \"auto\", \"data-idx\": props.index || 0, className: classNames({ lazyload: !props.lazyDisabled }, props.className), \"data-quality-img\": hiResImage, width: XXS.width, height: XXS.height, style: props.style, \"aria-hidden\": (props === null || props === void 0 ? void 0 : props.ariaHidden) != undefined ? props === null || props === void 0 ? void 0 : props.ariaHidden : !!props.alt || !!((_a = props.img) === null || _a === void 0 ? void 0 : _a.alt) })));\n    if (props.onlyImage) {\n        return imageElement;\n    }\n    if (!props.img || !image) {\n        return (React.createElement(\"div\", { className: \"product-image\", \"data-tiletype\": props.tiletype, \"data-type\": props.type },\n            React.createElement(\"img\", { alt: altText, src: \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", \"data-idx\": props.index || 0, className: props.className, width: XXS.width, height: XXS.height, style: props.style })));\n    }\n    return (React.createElement(\"div\", { className: \"product-image\", \"data-tiletype\": props.tiletype, \"data-type\": props.type }, imageElement));\n};\nexport default ProductImage;\n","import React from 'react';\nimport PriceDisplay from './PriceDisplay';\nconst ProductPrice = (props) => {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    if (!props.price) {\n        return React.createElement(React.Fragment, null);\n    }\n    return (React.createElement(React.Fragment, null,\n        React.createElement(PriceDisplay, { inline: props.inline, type: props.price.type, max: (_b = (_a = props.price.max) === null || _a === void 0 ? void 0 : _a.sales) === null || _b === void 0 ? void 0 : _b.formatted, min: (_d = (_c = props.price.min) === null || _c === void 0 ? void 0 : _c.sales) === null || _d === void 0 ? void 0 : _d.formatted, minFullPrice: (_f = (_e = props.price.min) === null || _e === void 0 ? void 0 : _e.list) === null || _f === void 0 ? void 0 : _f.formatted, list: (_g = props.price.list) === null || _g === void 0 ? void 0 : _g.formatted, sales: (_h = props.price.sales) === null || _h === void 0 ? void 0 : _h.formatted, isExchangePrice: props.isExchangePrice, promotions: props.promotions, isPlp: props.isPlp })));\n};\nProductPrice.defaultProps = {\n    inline: false,\n};\nexport default ProductPrice;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { getRandomUUID } from '@common/utils/stringUtils';\nimport { useTranslation } from 'react-i18next';\nimport Icon from '@stone/ui/icon/Icon';\nimport useMediaQueries from '@stone/hooks/useMediaQueries';\nimport ProductImage from '@stone/components/product/ProductImage';\nimport ProductVideo from '@stone/components/product/ProductVideo';\nconst ProductTIleVisual = (props) => {\n    const { isDesktop } = useMediaQueries();\n    const { t } = useTranslation();\n    const uuid = useRef(getRandomUUID());\n    // STATES\n    const [visualToShow, setVisualToShow] = useState(1);\n    const [visual1, setVisual1] = useState(null);\n    const [visual2, setVisual2] = useState(null);\n    const [blockRollover, setBlockRollover] = useState(null);\n    const [videoState, setVideoState] = useState('PLAYING');\n    //MEMOS\n    let lockOnChange = useMemo(() => {\n        if (!props.isOver)\n            return false;\n        return props.isChanged;\n    }, [props.isOver, props.isChanged]);\n    //CONSTANTS\n    const imagePlaceholder = (React.createElement(\"div\", { className: \"product-image\" },\n        React.createElement(\"img\", { alt: '', src: \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", \"aria-hidden\": true })));\n    //METHODS\n    const getVisual = (val, defaultVal) => {\n        let isVideo = val.indexOf('V') === 0;\n        return {\n            type: (isVideo && 'video') || 'image',\n            value: val,\n            default: defaultVal || val,\n        };\n    };\n    const visualImage = (visual, n, hide) => {\n        return (React.createElement(\"div\", { className: classNames('product-image', { hidden: hide }) },\n            React.createElement(ProductImage, { productId: props.product.id, onHasImage: (has) => {\n                    if (n === 2) {\n                        setBlockRollover(!has);\n                    }\n                }, img: props.product.imgs, tiletype: props.tileType, type: visual.value, onlyImage: true, sizes: props.sizes })));\n    };\n    const handleButtonState = (id, state) => {\n        id === uuid.current && setVideoState(state);\n    };\n    const renderVideoButton = () => {\n        const playOrPause = videoState === 'PAUSED' ? 'play' : 'pause';\n        return (React.createElement(\"button\", { className: \"product-video-pause\", id: uuid.current, \"aria-label\": t('button.pause'), \"data-pause\": true, \"aria-pressed\": \"false\" },\n            React.createElement(Icon, { family: \"16\", name: playOrPause }),\n            React.createElement(\"span\", null, t('pdp.button.video' + playOrPause))));\n    };\n    const visualVideo = (visual, n, hide) => {\n        //ciclo i videos e verifico la presenza di quello richiesto\n        let videoURL = props.product.videos ? Object.values(props.product.videos).find((url) => url.includes(`_${visual.value}`)) : null;\n        return videoURL ? (React.createElement(\"div\", { className: classNames('product-tile__image-video', {\n                hidden: hide,\n            }) },\n            React.createElement(ProductVideo, { url: videoURL, overrideButtonID: uuid.current, handleOverrideButtonState: handleButtonState }),\n            props.inGallery && renderVideoButton())) : (\n        //fallback standard visual image if missing video\n        visualImage(visual, n, hide));\n    };\n    //CALLBACKS\n    const printVisual1 = useCallback(() => {\n        if (!visual1)\n            return imagePlaceholder;\n        return visual1.type === 'video' ? visualVideo(visual1, 1, lockOnChange) : visualImage(visual1, 1, lockOnChange);\n    }, [visual1, lockOnChange, videoState]);\n    const printVisual2 = useCallback(() => {\n        if (!visual2)\n            return imagePlaceholder;\n        return visual2.type === 'video' ? visualToShow == 2 && visualVideo(visual2, 2) : visualImage(visual2, 2, visualToShow != 2);\n    }, [visual2, visualToShow, videoState]);\n    // EFFECTS\n    useEffect(() => {\n        const v1 = getVisual(props.customImage || props.visual1, props.visual1);\n        const v2 = v1.type != 'video' && getVisual(props.visual2);\n        setVisual1(v1);\n        if (!(v2 === null || v2 === void 0 ? void 0 : v2.value)) {\n            setBlockRollover(true);\n        }\n        else {\n            setVisual2(v2);\n        }\n    }, [props.product, props.visual1, props.visual2, props.customImage]);\n    useEffect(() => {\n        if (blockRollover)\n            return;\n        setVisualToShow(!isDesktop || !props.isOver ? 1 : 2);\n    }, [props.isOver, isDesktop, blockRollover]);\n    return (React.createElement(React.Fragment, null,\n        React.createElement(\"div\", { className: \"overvisual\" }, !blockRollover && printVisual2()),\n        printVisual1()));\n};\nProductTIleVisual.defaultProps = {\n    visual1: 'F',\n    visual2: 'R',\n};\nexport default ProductTIleVisual;\n","import ThronVideo from '@components/utils/ThronVideo';\nimport classNames from 'classnames';\nimport React, { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nconst ProductVideo = (props) => {\n    const { t } = useTranslation();\n    const pdpVideoRef = useRef(null);\n    function findElementWithPauseAttribute(videoElement) {\n        let currentElement = videoElement.parentNode;\n        while (currentElement !== document) {\n            const pauseElement = currentElement.querySelector('[data-pause]');\n            if (pauseElement) {\n                return pauseElement;\n            }\n            currentElement = currentElement.parentNode;\n        }\n        return null; // Se non viene trovato nessun elemento con l'attributo data-pause\n    }\n    useEffect(() => {\n        let pauseButton;\n        const onPause = (e) => {\n            const currentButton = props.overrideButtonID ? document.getElementById(props.overrideButtonID) : e.target;\n            if (currentButton.getAttribute('aria-pressed') === 'true') {\n                currentButton.setAttribute('aria-pressed', 'false');\n                props === null || props === void 0 ? void 0 : props.handleOverrideButtonState(props.overrideButtonID, 'PLAYING');\n                pdpVideoRef.current.play();\n            }\n            else {\n                currentButton.setAttribute('aria-pressed', 'true');\n                props === null || props === void 0 ? void 0 : props.handleOverrideButtonState(props.overrideButtonID, 'PAUSED');\n                pdpVideoRef.current.pause();\n            }\n        };\n        if (pdpVideoRef.current) {\n            pauseButton = findElementWithPauseAttribute(pdpVideoRef.current);\n            if (pauseButton) {\n                pauseButton.addEventListener('click', onPause);\n            }\n        }\n        return () => pauseButton === null || pauseButton === void 0 ? void 0 : pauseButton.removeEventListener('click', onPause);\n    });\n    const videoElement = props.url ? (React.createElement(\"video\", { ref: pdpVideoRef, className: classNames('wrapper-product-video', { 'is-parfum': props.isParfum }), playsInline: true, autoPlay: true, muted: true, loop: true, src: props.url })) : (React.createElement(ThronVideo, { thronID: props.tronID, autoplay: true, muted: true, className: classNames('product-video-wrapper'), sessionId: props.sessionId, lockBitrate: window.lockBitrateProductVideos }));\n    if (props.inGallery) {\n        return (React.createElement(\"div\", { className: \"wrapper-product-video\" },\n            videoElement,\n            !props.overrideButtonID && React.createElement(\"button\", { className: \"product-video-pause\", \"aria-label\": t('button.pause'), \"data-pause\": true, \"aria-pressed\": \"false\" })));\n    }\n    return videoElement;\n};\nexport default ProductVideo;\n"],"names":["props","el","useRef","useEffect","_a","current","outerHTML","text","ref","type","uuid","videoRef","thronComponent","setThronComponent","useState","changeContent","thronID","options","onPauseCallback","onPlayCallback","onCompleteCallback","onInitCallback","onTimeUpdate","loopTimes","newThronComponent","className","thronMobileID","muted","autoplay","loop","lockBitrate","noskin","sessionId","imageutils","transform","url","size","alt","quality","format","indexOf","name","remove","lower","fullurl","replace","width","height","params","push","imgQuality","window","imagequality","webpsupported","length","map","i","join","includes","this","clearParams","hires","HIRES","large","LG","medium","MD","small","SM","extraSmall","XS","urlObj","URL","href","search","e","devmode","console","log","srcset","maxwidth","sizes","Object","values","mqObj","ww","some","indexLimit","findIndex","splice","aspectratio","MO","ST","Math","round","XXS","getVariationValues","product","attributeId","_b","variationAttributes","find","variation","getColorVariations","getSizeVariations","getProductMasterId","masterId","id","colorActiveId","selected","value","getColorVariationActive","getProductAvailability","productAvailability","availability","inStockDate","lowStock","preorder","handleTileNavigation","target","status","setStatus","navigation","setNavigation","updateNavigation","handleEnter","relatedTarget","handleExit","contains","addEventListener","_c","_d","removeEventListener","to","from","productId","children","ariaLabel","ariaHidden","tabIndex","trackingAction","originalUuid","rest","__rest","dispatch","history","location","pathname","state","linkProps","assign","mergedState","transition","direction","productUuid","viewport","scrollY","onClick","event","payload","newLocation","registerProducts","unregisterProducts","router","ignoreRouting","navigator","userAgent","useContext","route","thumbStartIndex","index","tileRef","onClickAction","noClickTracking","analyticsData","item_list_name","analytics","analyticsIndex","productUrl","ariaLabelledby","onFocus","onBlur","onMouseEnter","onMouseLeave","PriceDisplay","t","isMobile","inline","language","minFullPrice","min","promo","promotions","hasDiscountPrice","list","isExchangePrice","sales","originalprice","currentprice","currency","discount","isPlp","calloutMsg","defaultProps","defaultSizes","currentBreakpoint","image","useMemo","_e","_f","img","urls","imageoldsuffix","imagenewsuffix","u","typeFallback","typeFallbackSuffix","lowResImg","hiResImage","md","multipleSrc","srcs","forEach","sz","multipleSrcAvif","altText","seoIndex","onHasImage","lazyPosterImg","lazyLowRes","imageElement","lazyload","lazyDisabled","srcSet","src","style","undefined","onlyImage","tiletype","ProductPrice","_g","_h","price","max","formatted","ProductTIleVisual","isDesktop","visualToShow","setVisualToShow","visual1","setVisual1","visual2","setVisual2","blockRollover","setBlockRollover","videoState","setVideoState","lockOnChange","isOver","isChanged","imagePlaceholder","getVisual","val","defaultVal","default","visualImage","visual","n","hide","hidden","has","imgs","tileType","handleButtonState","visualVideo","videoURL","videos","overrideButtonID","handleOverrideButtonState","inGallery","playOrPause","family","renderVideoButton","printVisual1","useCallback","printVisual2","v1","customImage","v2","pdpVideoRef","pauseButton","onPause","currentButton","document","getElementById","getAttribute","setAttribute","play","pause","videoElement","currentElement","parentNode","pauseElement","querySelector","findElementWithPauseAttribute","isParfum","playsInline","autoPlay","tronID","lockBitrateProductVideos"],"sourceRoot":""}