{"version":3,"file":"js/7911.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/components/common/Metatags.tsx","webpack:///./assets/common/src/components/utils/Lazyimg.tsx","webpack:///./assets/common/src/utils/JsonLd.tsx","webpack:///./assets/common/src/utils/useQueryStringBoolean.ts","webpack:///./assets/moncler/src/components/grenoble/GrenobleDetails.tsx","webpack:///./assets/moncler/src/components/product/GiftCardBalanceModal.tsx","webpack:///./assets/common/src/components/listing/Breadcrumb.tsx","webpack:///./assets/moncler/src/components/vto/VtoModal.tsx","webpack:///./assets/common/src/state/features/product.selectors.ts","webpack:///./assets/moncler/src/components/mbm/MbmAccordionTab.tsx","webpack:///./assets/moncler/src/components/product/ProductDetailsTab.tsx","webpack:///./assets/moncler/src/components/product/ProductDiscoverMore.tsx","webpack:///./assets/moncler/src/components/product/ProductImageAnimated.tsx","webpack:///./assets/moncler/src/components/product/ProductShippingAndReturnsTabs.tsx","webpack:///./assets/common/src/utils/scrollUtils.ts","webpack:///./assets/moncler/src/components/product/ScrollHandler.tsx","webpack:///./assets/moncler/src/components/product/ProductPage.tsx","webpack:///./assets/moncler/src/components/vto/config/index.ts","webpack:///./assets/moncler/src/components/vto/utils/vyking-ar/vyking-ar.ts","webpack:///./assets/moncler/src/hooks/useProductEditorialContents.tsx","webpack:///./assets/stone/src/ui/button/Button.tsx"],"sourcesContent":["import React from 'react';\nimport { Helmet } from 'react-helmet';\nconst Metatags = (props) => {\n    var _a, _b, _c;\n    return (React.createElement(Helmet, null,\n        props.pageMetaTags &&\n            ((_a = Object.keys(props === null || props === void 0 ? void 0 : props.pageMetaTags)) === null || _a === void 0 ? void 0 : _a.map((key) => {\n                if (key == 'title') {\n                    return React.createElement(\"title\", { key: key }, props === null || props === void 0 ? void 0 : props.pageMetaTags[key]);\n                }\n                if (key.startsWith('og:')) {\n                    return React.createElement(\"meta\", { key: key, property: key, content: props === null || props === void 0 ? void 0 : props.pageMetaTags[key] });\n                }\n                return React.createElement(\"meta\", { key: key, name: key, content: props === null || props === void 0 ? void 0 : props.pageMetaTags[key] });\n            })), (_c = (_b = props.meta) === null || _b === void 0 ? void 0 : _b.hreflangs) === null || _c === void 0 ? void 0 :\n        _c.map((key) => {\n            return React.createElement(\"link\", { key: key, rel: \"alternate\", hrefLang: key.substring(0, key.indexOf(' ')), href: key.substring(key.indexOf(' ') + 1) });\n        }),\n        props.additionalMeta || []));\n};\nexport default Metatags;\n","import classNames from 'classnames';\nimport React from 'react';\nconst Lazyimg = (props) => {\n    return (React.createElement(\"img\", { src: \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\", \"data-src\": props.src, className: classNames('lazyload', props.className, { 'not-draggable': !props.draggable }), alt: props.alt, width: props === null || props === void 0 ? void 0 : props.width, height: props === null || props === void 0 ? void 0 : props.height, draggable: props.draggable, \"aria-hidden\": (props === null || props === void 0 ? void 0 : props.ariaHidden) ? true : false }));\n};\nexport default Lazyimg;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nconst JsonLd = ({ data }) => (React.createElement(Helmet, null,\n    React.createElement(\"script\", { type: \"application/ld+json\" }, JSON.stringify(data))));\nexport default JsonLd;\n","import qs from 'query-string';\nimport { useCallback, useState } from 'react';\nfunction useQueryStringBoolean(key, initialValue) {\n    const setQueryStringWithoutPageReload = (qsValue) => {\n        const newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + (qsValue ? '?' + qsValue : '');\n        window.history.pushState({ path: newurl }, '', newurl);\n    };\n    const getQueryStringValue = (key) => {\n        const values = qs.parse(window.location.search);\n        let value = values[key];\n        return !!value;\n    };\n    function setQueryStringValue(key, value) {\n        const values = qs.parse(window.location.search);\n        const newvalues = Object.assign(Object.assign({}, values), { [key]: value });\n        if (!value) {\n            delete newvalues[key];\n        }\n        const newQsValue = qs.stringify(newvalues);\n        setQueryStringWithoutPageReload(newQsValue);\n    }\n    const onSetValue = useCallback((newValue) => {\n        setValue(newValue);\n        setQueryStringValue(key, newValue);\n    }, [key]);\n    const [value, setValue] = useState(getQueryStringValue(key) || initialValue);\n    return [value, onSetValue];\n}\nexport default useQueryStringBoolean;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nconst GrenobleDetails = (props) => {\n    const { t } = useTranslation();\n    const activity = ['skiingSnowboarding', 'trekkingHiking', 'apresSki', 'everyday'];\n    const [characteristics, setCharacteristics] = useState([]);\n    const [materials, setMaterials] = useState([]);\n    const [activities, setActivities] = useState([]);\n    useEffect(() => {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;\n        if ((_a = props.product) === null || _a === void 0 ? void 0 : _a.grenoble) {\n            const characteristicsList = [];\n            if ((_c = (_b = props.product) === null || _b === void 0 ? void 0 : _b.grenoble) === null || _c === void 0 ? void 0 : _c.waterepellent.value) {\n                characteristicsList.push('waterrepellent');\n            }\n            if ((_e = (_d = props.product) === null || _d === void 0 ? void 0 : _d.grenoble) === null || _e === void 0 ? void 0 : _e.waterproof.value) {\n                characteristicsList.push('waterproof');\n            }\n            if ((_g = (_f = props.product) === null || _f === void 0 ? void 0 : _f.grenoble) === null || _g === void 0 ? void 0 : _g.windproof.value) {\n                characteristicsList.push('windproof');\n            }\n            if ((_j = (_h = props.product) === null || _h === void 0 ? void 0 : _h.grenoble) === null || _j === void 0 ? void 0 : _j.insulation.value) {\n                characteristicsList.push('insulated');\n            }\n            if ((_l = (_k = props.product) === null || _k === void 0 ? void 0 : _k.grenoble) === null || _l === void 0 ? void 0 : _l.breathable.value) {\n                characteristicsList.push('breathable');\n            }\n            if ((_o = (_m = props.product) === null || _m === void 0 ? void 0 : _m.grenoble) === null || _o === void 0 ? void 0 : _o.lightweight.value) {\n                characteristicsList.push('lightweight');\n            }\n            if ((_q = (_p = props.product) === null || _p === void 0 ? void 0 : _p.grenoble) === null || _q === void 0 ? void 0 : _q.packable.value) {\n                characteristicsList.push('packable');\n            }\n            if ((_s = (_r = props.product) === null || _r === void 0 ? void 0 : _r.grenoble) === null || _s === void 0 ? void 0 : _s.performanceComfortFit.value) {\n                characteristicsList.push('performancecomfortfit');\n            }\n            setCharacteristics(characteristicsList);\n            const activitiesList = [];\n            if ((_u = (_t = props.product) === null || _t === void 0 ? void 0 : _t.grenobleActivities) === null || _u === void 0 ? void 0 : _u.skiingSnowboarding.value) {\n                activitiesList.push('skiingSnowboarding');\n            }\n            if ((_w = (_v = props.product) === null || _v === void 0 ? void 0 : _v.grenobleActivities) === null || _w === void 0 ? void 0 : _w.trekkingHiking.value) {\n                activitiesList.push('trekkingHiking');\n            }\n            if ((_y = (_x = props.product) === null || _x === void 0 ? void 0 : _x.grenobleActivities) === null || _y === void 0 ? void 0 : _y.apresSki.value) {\n                activitiesList.push('apresSki');\n            }\n            if ((_0 = (_z = props.product) === null || _z === void 0 ? void 0 : _z.grenobleActivities) === null || _0 === void 0 ? void 0 : _0.everyday.value) {\n                activitiesList.push('everyday');\n            }\n            setActivities(activitiesList);\n            if (((_2 = (_1 = props.product) === null || _1 === void 0 ? void 0 : _1.icons) === null || _2 === void 0 ? void 0 : _2.length) > 0) {\n                const materialsList = (_4 = (_3 = props.product) === null || _3 === void 0 ? void 0 : _3.icons) === null || _4 === void 0 ? void 0 : _4.filter((icon) => icon !== 'breathable' && icon !== 'windproof').map((material) => material);\n                setMaterials(materialsList);\n            }\n        }\n    }, [props.product]);\n    const showGrenobleDetails = () => {\n        var _a, _b, _c, _d;\n        return (((_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.collections) === null || _b === void 0 ? void 0 : _b.grenoble) || ((_d = (_c = props.product) === null || _c === void 0 ? void 0 : _c.icons) === null || _d === void 0 ? void 0 : _d.length) > 0) && (characteristics.length > 0 || materials.length > 0);\n    };\n    return (showGrenobleDetails() && (React.createElement(\"div\", { className: \"grenoble-details\" },\n        characteristics.length > 0 && (React.createElement(\"div\", { className: \"grenoble-details_characteristics\" },\n            React.createElement(\"h3\", { className: \"grenoble-details__title primary-s-u\" }, t('product.characteristics')),\n            React.createElement(\"ul\", { className: \"grenoble-details__list\" }, characteristics.map((characteristic, i) => (React.createElement(\"li\", { className: \"grenoble-details__list__item\", key: i },\n                React.createElement(\"div\", { className: `icon--grenoble-${characteristic}` }),\n                React.createElement(\"div\", { className: \"text-wrap\" },\n                    React.createElement(\"p\", { className: \"title\" }, t('pdp.grenoble.' + characteristic)),\n                    React.createElement(\"span\", { className: \"description\" }, t('pdp.grenoble.description.' + characteristic))))))))),\n        materials.length > 0 && (React.createElement(\"div\", { className: \"grenoble-details_characteristics\" },\n            React.createElement(\"h3\", { className: \"grenoble-details__title primary-s-u\" }, t('product.materials')),\n            React.createElement(\"ul\", { className: \"grenoble-details__list materials\" }, materials.map((icon, i) => (React.createElement(\"li\", { className: \"grenoble-details__list__item\", key: i },\n                React.createElement(\"div\", { className: \"icon-wrapper\" },\n                    React.createElement(\"i\", { className: `icon--${icon}` })),\n                React.createElement(\"div\", { className: \"text-wrap\" },\n                    React.createElement(\"span\", { className: \"description\" }, t('pdp.grenoble.material.' + icon.replace('-', '')))))))))),\n        activities.length > 0 && (React.createElement(\"div\", { className: \"grenoble-details_characteristics\" },\n            React.createElement(\"h3\", { className: \"grenoble-details__title primary-s-u\" }, t('product.activity')),\n            React.createElement(\"ul\", { className: \"grenoble-details__list activity\" }, activities.map((act, i) => (React.createElement(\"li\", { key: i, className: \"grenoble-details__list__item\" },\n                React.createElement(\"div\", { className: `icon--grenoble-activity-${act}` }),\n                React.createElement(\"div\", { className: \"text-wrap\" },\n                    React.createElement(\"p\", { className: \"title\" }, t('pdp.grenoble.activity.' + act.toLowerCase()))))))))))));\n};\nexport default GrenobleDetails;\n","import React, { useEffect, useState } from 'react';\nimport ModalDialog from '@common/ui/modal/ModalDialog';\nimport createDecorator from 'final-form-focus';\nimport { Form } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport formutils from '@utils/formutils';\nimport api from '@common/utils/api';\nimport DwFormField from '@common/ui/formfield/DwFormField';\nimport Button from '@common/ui/button/Button';\nimport Accordion from '@common/ui/accordion/Accordion';\nimport AccordionItem from '@common/ui/accordion/AccordionItem';\nimport ErrorBox from '@components/common/ErrorBox';\nimport analytics from '@utils/analytics';\nconst focusOnError = createDecorator(); // must be outside the component\n/**\n * A modal which allows the user to check the remaining balance of a gift card\n */\nconst GiftCardBalanceModal = ({ isOpen = false, onRequestClose, pid }) => {\n    // States\n    const [modalOpen, setModalOpen] = useState(false); // *true* opens the modal\n    const [errors, setErrors] = useState([]); // Form errors\n    const [formdef, setFormdef] = useState(); // Form definition\n    const [initialValues, setInitialValues] = useState(); // Form initial values\n    const [step, setStep] = useState('form'); // Define the step to show on the page\n    const [cardNumber, setCardNumber] = useState(''); // Card number\n    const [pin, setPin] = useState(''); // PIN code - currently not used\n    const [expirationDate, setExpirationDate] = useState(''); // Card expiration\n    const [balance, setBalance] = useState(''); // Remaining balance\n    // Hooks\n    const { t } = useTranslation();\n    // Boot\n    useEffect(() => {\n        // In order to allow editorial uses of this component, we need an event listener\n        // on a class that can open and close the modal. This is indipendent from `isOpen` prop\n        document.querySelectorAll('.gc-balance-show').forEach(a => {\n            loadForm();\n            a.addEventListener('click', () => setModalOpen(true), false);\n        });\n    }, []);\n    useEffect(() => {\n        if (isOpen) {\n            loadForm();\n        }\n        // This is necessary since we have to open and close the modal with a state variable\n        setModalOpen(isOpen);\n    }, [isOpen]);\n    /**\n     * [API] Load the form definition\n     */\n    const loadForm = () => {\n        let val = {};\n        api.getForm('checkGCBalance', val, true).then(data => {\n            setInitialValues(val);\n            setFormdef(data);\n        });\n    };\n    /**\n     * Validate the form\n     */\n    const validate = async (values) => {\n        return await formutils.validateForm(values, formdef, 'checkGCBalance');\n    };\n    /**\n     * Handle submit errors\n     */\n    const clearInputError = (formErrors) => {\n        var _a, _b;\n        const cardNumberInput = (_a = document.getElementsByName('cardNumber')) === null || _a === void 0 ? void 0 : _a[0];\n        const pinInput = (_b = document.getElementsByName('pin')) === null || _b === void 0 ? void 0 : _b[0];\n        const clearCardNumber = !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.cardNumber) || (formErrors === null || formErrors === void 0 ? void 0 : formErrors.all);\n        const clearPin = !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.pin) || (formErrors === null || formErrors === void 0 ? void 0 : formErrors.all);\n        clearCardNumber && (cardNumberInput === null || cardNumberInput === void 0 ? void 0 : cardNumberInput.setAttribute('aria-invalid', 'false'));\n        clearPin && (pinInput === null || pinInput === void 0 ? void 0 : pinInput.setAttribute('aria-invalid', 'false'));\n        if (clearCardNumber && clearPin) {\n            setErrors([]);\n        }\n    };\n    /**\n     * [API] send a request to the server and check the balance of the gift card\n     */\n    const checkBalance = async (values) => {\n        clearInputError({ all: true });\n        let errors = await validate(values);\n        if (errors && Object.keys(errors).length > 0) {\n            return errors;\n        }\n        return api\n            .checkGiftCardBalance(values, formdef)\n            .then(data => {\n            var _a, _b;\n            if (data.serverErrors) {\n                setStep('serverError');\n                return;\n            }\n            if (!data.success && data.fields && data.fields.length > 0) {\n                let dataErrors = data.fields.map(err => Object.values(err)[0]);\n                // style the inputs as invalid\n                const cardNumberInput = (_a = document.getElementsByName('cardNumber')) === null || _a === void 0 ? void 0 : _a[0];\n                const pinInput = (_b = document.getElementsByName('pin')) === null || _b === void 0 ? void 0 : _b[0];\n                cardNumberInput === null || cardNumberInput === void 0 ? void 0 : cardNumberInput.setAttribute('aria-invalid', 'true');\n                pinInput === null || pinInput === void 0 ? void 0 : pinInput.setAttribute('aria-invalid', 'true');\n                setErrors(dataErrors);\n                return;\n            }\n            if (!formutils.checkValidationAfterSubmit(data, errors)) {\n                return errors;\n            }\n            if (data.success) {\n                setExpirationDate(data.expDate);\n                setBalance(data.balance);\n                setStep('balance');\n            }\n        })\n            .catch(e => {\n            console.log(\"Error in GiftCardBalanceModal.checkBalance:\", e);\n            setStep('serverError');\n        });\n    };\n    if (!formdef) {\n        return React.createElement(React.Fragment, null);\n    }\n    /**\n     * Step 1: Render the form that asks for the numer and PIN\n     */\n    const renderForm = () => (React.createElement(React.Fragment, null,\n        React.createElement(\"p\", { className: 'mb-32' }, t('gc.check.balancedescription')),\n        React.createElement(Form, { onSubmit: checkBalance, initialValues: initialValues, validate: validate, decorators: [focusOnError], render: ({ handleSubmit, form, submitting, pristine, errors: formErrors, values }) => {\n                setCardNumber(values.cardNumber);\n                setPin(values.pin);\n                return (React.createElement(\"form\", { onSubmit: handleSubmit },\n                    React.createElement(React.Fragment, null,\n                        React.createElement(\"div\", { className: \"row\" },\n                            React.createElement(\"div\", { className: \"col-8\" },\n                                \" \",\n                                React.createElement(DwFormField, { onChange: e => setCardNumber(e.target.value), onFocus: () => clearInputError(formErrors), def: formdef, name: 'cardNumber', type: 'text', autocomplete: 'off' })),\n                            React.createElement(\"div\", { className: \"col-4\" },\n                                React.createElement(DwFormField, { onChange: e => setPin(e.target.value), onFocus: () => clearInputError(formErrors), def: formdef, name: 'pin', type: 'text', autocomplete: 'off' }))),\n                        React.createElement(\"div\", { className: \"pw-error\" },\n                            React.createElement(ErrorBox, { errors: !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.cardNumber) && !(formErrors === null || formErrors === void 0 ? void 0 : formErrors.pin) ? errors : [], className: 'gc-error-box' })),\n                        React.createElement(\"div\", { className: \"col-12\" },\n                            React.createElement(Accordion, null,\n                                React.createElement(AccordionItem, { accordionId: 'gc-accordion-link', title: t('gc.where.info'), miniAccordion: true },\n                                    React.createElement(\"div\", { className: \"card-placeholder-container\" },\n                                        React.createElement(\"p\", { className: 'card-placeholder-desc' }, t('gc.where.infodescription')),\n                                        React.createElement(\"div\", { className: \"card-placeholder\" }))))),\n                        React.createElement(\"div\", { className: \"row button-row\" },\n                            React.createElement(\"div\", { className: \"col-12\" },\n                                React.createElement(Button, { onClick: () => {\n                                        analytics.checkGiftcardBalance(pid || 'giftcard');\n                                    }, type: \"submit\", disabled: submitting, cls: ['button--primary'] }, t('gc.check.button')))))));\n            } })));\n    /**\n     * Step 2: if card data are correct, show the retrieved info\n     */\n    const renderBalance = () => (React.createElement(React.Fragment, null,\n        React.createElement(\"p\", { className: 'mb-32' }, t('gc.balance.checkinfo')),\n        React.createElement(\"div\", { className: 'balance-container' },\n            React.createElement(\"div\", { className: \"row mb-16\" },\n                React.createElement(\"div\", { className: \"col-12\" },\n                    React.createElement(\"p\", null,\n                        t('gc.cardnumber'),\n                        \": \",\n                        cardNumber,\n                        \"\\u00A0\\u00A0\\u00A0\\u00A0\\u00A0\",\n                        t('gc.pin'),\n                        \": ****\"))),\n            React.createElement(\"div\", { className: \"row mb-16\" },\n                React.createElement(\"div\", { className: \"col-12\" },\n                    t('gc.balance.term'),\n                    \": \",\n                    balance)),\n            React.createElement(\"div\", { className: \"row\" },\n                React.createElement(\"div\", { className: \"col-12\" },\n                    React.createElement(Button, { type: 'button', className: 'check-another', cls: ['button--secondary'], onClick: () => {\n                            setInitialValues({ cardNumber: '', pin: '' }); // We need to reset the previous data in order to prevent some loop errors\n                            setStep('form');\n                        } }, t('gc.checkanother')))))));\n    /**\n     * Step 3: if server error, show the error message\n     */\n    const renderServerError = () => (React.createElement(\"div\", { className: \"gc-error-modal\" },\n        React.createElement(\"h2\", null, t('gc.errorunavailable', 'SERVICE NOT AVAILABLE')),\n        React.createElement(\"p\", null, t('gc.errorunavailablemsg', 'We’re sorry the Check Balance service is currently unavailable, please try again later.'))));\n    return (React.createElement(ModalDialog, { className: 'modal--small modal--bottom-small modal--fixed delete-account', overlayClassName: \"overlay-visible\", isOpen: modalOpen, onRequestClose: () => {\n            setModalOpen(false);\n            setErrors([]);\n            onRequestClose();\n            setStep('form');\n        }, contentLabel: step == 'form' ? t('gc.check.balance') : step == 'balance' ? t('gc.your.balance', 'Your Gift Card') : '' }, step == 'form' ?\n        renderForm()\n        : step == 'balance' ?\n            renderBalance()\n            : step == 'serverError' ?\n                renderServerError()\n                : React.createElement(React.Fragment, null)));\n};\nexport default GiftCardBalanceModal;\n","import { ListingActionTypes } from '@state/features/common.types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Button from '@stone/ui/button/Button';\nimport classNames from 'classnames';\nconst Breadcrumbs = (props) => {\n    var _a, _b, _c, _d, _e;\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const { breadcrumbs, shelf } = useSelector((state) => state.search);\n    const shelfKeys = Object.keys(shelf);\n    let breadcrumbsList;\n    if ((_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.breadcrumbs) === null || _b === void 0 ? void 0 : _b.length) {\n        breadcrumbsList = [...props.product.breadcrumbs];\n    }\n    else if (props.cgid && shelfKeys.length && shelfKeys.includes(props.cgid)) {\n        breadcrumbsList = [...(_c = shelf[props.cgid]) === null || _c === void 0 ? void 0 : _c.breadcrumbs];\n    }\n    else {\n        breadcrumbsList = breadcrumbs ? [...breadcrumbs] : [];\n    }\n    if ((breadcrumbsList === null || breadcrumbsList === void 0 ? void 0 : breadcrumbsList.length) <= 1) {\n        return React.createElement(\"div\", null);\n    }\n    else {\n        const currentPage = breadcrumbsList.pop();\n        const baseUrl = location.origin;\n        const currentPageUrl = `${baseUrl}${currentPage.url}`;\n        return (React.createElement(React.Fragment, null,\n            React.createElement(\"nav\", { \"aria-label\": t('navigation.breadcrumb.aria'), className: \"breadcrumb\" },\n                React.createElement(\"ol\", null,\n                    breadcrumbsList.map((item, i) => (React.createElement(\"li\", { key: i },\n                        React.createElement(\"a\", { href: `${baseUrl}${item.url}`, onClick: () => {\n                                dispatch({\n                                    type: ListingActionTypes.FETCH_LISTING,\n                                    payload: {\n                                        cgid: item.categoryId,\n                                        resultsType: 'INIT',\n                                        start: 0,\n                                    },\n                                });\n                            }, className: \"breadcrumb__item\", key: item.categoryId }, item.htmlValue)))),\n                    React.createElement(\"li\", null, ((_e = (_d = props.product) === null || _d === void 0 ? void 0 : _d.breadcrumbs) === null || _e === void 0 ? void 0 : _e.length) ? (React.createElement(\"a\", { href: currentPageUrl, onClick: () => {\n                            dispatch({\n                                type: ListingActionTypes.FETCH_LISTING,\n                                payload: {\n                                    cgid: currentPage.categoryId,\n                                    resultsType: 'INIT',\n                                    start: 0,\n                                },\n                            });\n                        }, className: \"breadcrumb__item\", key: currentPage.categoryId }, currentPage.htmlValue)) : (React.createElement(\"div\", { \"aria-current\": \"page\", className: \"breadcrumb__item\", key: currentPage.categoryId }, currentPage.htmlValue)))))));\n    }\n};\nconst Back = (props) => {\n    var _a, _b, _c;\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const { breadcrumbs, shelf } = useSelector((state) => state.search);\n    const shelfKeys = Object.keys(shelf);\n    let breadcrumbsList;\n    if ((_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.breadcrumbs) === null || _b === void 0 ? void 0 : _b.length) {\n        breadcrumbsList = [...props.product.breadcrumbs];\n    }\n    else if (props.cgid && shelfKeys.length && shelfKeys.includes(props.cgid)) {\n        breadcrumbsList = [...(_c = shelf[props.cgid]) === null || _c === void 0 ? void 0 : _c.breadcrumbs];\n    }\n    else {\n        breadcrumbsList = breadcrumbs ? [...breadcrumbs] : [];\n    }\n    const baseUrl = location.origin;\n    //remove current page\n    breadcrumbsList.pop();\n    let backpage = breadcrumbsList.pop();\n    if (!backpage)\n        return (React.createElement(\"a\", { className: props.className, href: window.homeurl },\n            React.createElement(\"span\", null, \"<\"),\n            \" \",\n            React.createElement(\"span\", null, props.staticLabel || t('label.sitename'))));\n    return props.cgid ? (React.createElement(Button, { type: \"button\", inverted: props.inverted, cls: [], ariaLabel: props.staticLabel || backpage.htmlValue, onClick: () => {\n            dispatch({\n                type: ListingActionTypes.FETCH_LISTING,\n                payload: {\n                    cgid: backpage.categoryId,\n                    resultsType: 'INIT',\n                    start: 0,\n                    isShelf: false,\n                },\n            });\n        }, className: props.className },\n        React.createElement(React.Fragment, null,\n            \"< \",\n            props.staticLabel || backpage.htmlValue))) : (React.createElement(\"a\", { className: classNames(props.className, { inverted: props.inverted }), href: baseUrl + backpage.url },\n        React.createElement(\"span\", null, \"<\"),\n        \" \",\n        React.createElement(\"span\", null, props.staticLabel || backpage.htmlValue)));\n};\nexport { Back };\nexport default Breadcrumbs;\n","import ModalDialog from '@ui/modal/ModalDialog';\nimport { checkMobile } from '@utils/functions';\nimport useBreakpoint from '@utils/useBreakpoint';\nimport React, { Suspense, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport QRCode from 'react-qr-code';\nimport { getConfig } from './utils/vyking-ar/vyking-ar';\nconst VtoCamera = React.lazy(() => import('./VtoCamera'));\nconst VtoModal = (props) => {\n    var _a, _b;\n    const { t } = useTranslation();\n    const currentBreakpoint = useBreakpoint();\n    const [vykingConfig, setVykingConfig] = useState();\n    const enabledCamera = useMemo(() => checkMobile() || window.isVtoEnabled, [currentBreakpoint]);\n    const configUri = (_a = props.vtoBin) !== null && _a !== void 0 ? _a : props.basePath + '/modeld.bin';\n    // effect to load models.bin after page load\n    useEffect(() => {\n        if (enabledCamera) {\n            setVykingConfig(getConfig(configUri));\n        }\n    }, [enabledCamera]);\n    useEffect(() => {\n        if (window.sprChat) {\n            if (props.open) {\n                window.sprChat && window.sprChat('disable');\n            }\n            else {\n                window.sprChat && window.sprChat('enable');\n            }\n        }\n    }, [props.open]);\n    if (!((_b = props === null || props === void 0 ? void 0 : props.product) === null || _b === void 0 ? void 0 : _b.VTOcode)) {\n        return React.createElement(React.Fragment, null);\n    }\n    return (React.createElement(ModalDialog, { className: enabledCamera ? 'vto-enabled' : 'vto-modal', overlayClassName: enabledCamera && 'vto-overlay mobile-visible', isOpen: props.open, onRequestClose: props.onClose, noPadding: true, hideHeader: true }, enabledCamera ? (React.createElement(Suspense, { fallback: React.createElement(\"div\", null) },\n        React.createElement(VtoCamera, { product: props.product, closeModal: props.onClose, basePath: props.basePath, loadConfig: vykingConfig }))) : (React.createElement(React.Fragment, null,\n        React.createElement(\"img\", { src: props.modalImage, alt: \"\" }),\n        React.createElement(\"div\", { className: \"vto-modal__detail\" },\n            React.createElement(\"h2\", { className: \"primary-m mb-8\" }, t('label.modalvto')),\n            React.createElement(\"p\", null, t('label.modalvtodesc')),\n            React.createElement(\"ol\", null,\n                React.createElement(\"li\", null, t('vto.modal1')),\n                React.createElement(\"li\", null, t('vto.modal2')),\n                React.createElement(\"li\", null, t('vto.modal3'))),\n            React.createElement(\"div\", { className: \"qr-code-container\" },\n                React.createElement(QRCode, { className: \"QRCodeImg\", value: location.origin + location.pathname + '?openVTO=true' })))))));\n};\nexport default VtoModal;\n","import { createSelector } from '@reduxjs/toolkit';\nconst currentProduct = (state) => state.product.current;\nconst filterAttributes = (product, attributeType) => {\n    var _a;\n    return (((_a = product === null || product === void 0 ? void 0 : product.attributes) === null || _a === void 0 ? void 0 : _a.find((attribute) => {\n        return attribute.ID === attributeType;\n    })) || null);\n};\nexport const compositionAndCareTextSelector = createSelector([currentProduct], (product) => filterAttributes(product, 'compositionAndCare'));\nexport const characteristicsTextSelector = createSelector([currentProduct], (product) => filterAttributes(product, 'characteristics'));\nexport const stylistNoteTextSelector = createSelector([currentProduct], (product) => filterAttributes(product, 'stylistNote'));\n","import ModalDialog from '@ui/modal/ModalDialog';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Accordion from '@ui/accordion/Accordion';\nimport AccordionItem from '@ui/accordion/AccordionItem';\nconst MbmAccordionTab = (props) => {\n    var _a;\n    const { t } = useTranslation();\n    const [openPalette, setOpenPalette] = useState();\n    const createTitleMarkup = (palette) => (React.createElement(React.Fragment, null,\n        React.createElement(\"div\", { className: \"mbm-palette\" },\n            React.createElement(\"span\", null, palette.name),\n            React.createElement(\"img\", { src: palette.paletteImage.path, alt: \"\" }))));\n    return (React.createElement(React.Fragment, null,\n        React.createElement(\"p\", { className: \"primary-m\" }, t('mbm.accordion1')),\n        React.createElement(\"ul\", { className: \"mbm-list\" },\n            React.createElement(Accordion, null, (_a = props.palettes) === null || _a === void 0 ? void 0 : _a.map((palette, i) => (React.createElement(AccordionItem, { autoHeight: true, title: createTitleMarkup(palette), isTitleMarkup: true, headerClass: \"accordion__header--uc\", accordionId: \"mbm\", key: i },\n                React.createElement(\"div\", { className: \"palette-accordion row\" },\n                    React.createElement(\"div\", { className: \"palette-accordion-body col-md-6 col-12\" },\n                        React.createElement(\"h3\", { className: \"primary-s mb-16\" }, palette === null || palette === void 0 ? void 0 : palette.subtitle),\n                        React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: palette === null || palette === void 0 ? void 0 : palette.text } })),\n                    React.createElement(\"div\", { className: \"aspect-ratio--3-4 palette-modal__image col-md-6 col-12\" },\n                        React.createElement(\"img\", { src: palette === null || palette === void 0 ? void 0 : palette.image.path, alt: \"\" })))))))),\n        React.createElement(\"p\", { className: \"primary-m\" }, t('mbm.accordion2')),\n        React.createElement(ModalDialog, { hideHeader: true, noPadding: true, isOpen: !!openPalette, onRequestClose: () => setOpenPalette(undefined), id: \"palette-modal\" })));\n};\nexport default MbmAccordionTab;\n","import GrenobleDetails from '@moncler/components/grenoble/GrenobleDetails';\nimport { characteristicsTextSelector } from '@state/features/product.selectors';\nimport analytics from '@utils/analytics';\nimport React, { useEffect, useRef } from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport { useTranslation } from 'react-i18next';\nimport { useInView } from 'react-intersection-observer';\nimport { useSelector } from 'react-redux';\nimport { Tab, TabList, TabPanel, Tabs } from 'react-tabs';\nimport classNames from 'classnames';\nimport MbmAccordionTab from '../mbm/MbmAccordionTab';\nimport useInnerWidth from '@common/utils/useInnerWidth';\nimport ContentAsset from '@components/common/ContentAsset';\nconst ProductDetailsTab = (props) => {\n    var _a, _b, _c;\n    const { t } = useTranslation();\n    const characteristicsText = useSelector(characteristicsTextSelector);\n    const storesBadgesContainer = useRef();\n    const currentBreakpoint = useInnerWidth();\n    const tabHead = useRef(null);\n    useEffect(() => {\n        var _a;\n        if (storesBadgesContainer.current && props.product) {\n            let badgesLink = (_a = storesBadgesContainer.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('a');\n            badgesLink.forEach((element) => {\n                element.addEventListener('click', (e) => {\n                    let link = e.currentTarget;\n                    analytics.storeBadgeClick(link.id.replace('-', ' '), props.product.masterId);\n                });\n            });\n        }\n        window.gbotNormalizer();\n    }, [props.product]);\n    useEffect(() => {\n        var _a, _b, _c;\n        if (currentBreakpoint <= window.mqObj.sm) {\n            const widthContainer = (_b = (_a = tabHead.current) === null || _a === void 0 ? void 0 : _a.querySelector('.react-tabs__tab-list')) === null || _b === void 0 ? void 0 : _b.offsetWidth;\n            const shippingReturnsDrawer = (_c = tabHead.current) === null || _c === void 0 ? void 0 : _c.closest('.drawer-details-composition');\n            shippingReturnsDrawer === null || shippingReturnsDrawer === void 0 ? void 0 : shippingReturnsDrawer.classList.toggle('no-margin-right', widthContainer > window.innerWidth);\n        }\n    }, [currentBreakpoint]);\n    const PromoBanner = () => {\n        return props.promobanner ? React.createElement(\"div\", { className: \"d-flex align-bottom\" }, props.promobanner) : React.createElement(React.Fragment, null);\n    };\n    const printValues = (attr, title) => {\n        if (!attr) {\n            return React.createElement(React.Fragment, null);\n        }\n        return attr.attributes.map((items) => items === null || items === void 0 ? void 0 : items.value.map((item) => {\n            var _a, _b, _c;\n            return item.type === 'image' ? (React.createElement(\"img\", { key: item.url, src: item.url, alt: item.alt || '' })) : (React.createElement(\"div\", { className: title ? 'col-sm-6 col-12 wrapper-detail-composition' : 'mb-24 mt-24', key: item },\n                title && React.createElement(\"p\", { className: \"primary-s-u\" }, title),\n                ReactHtmlParser(item),\n                ((_a = props.product) === null || _a === void 0 ? void 0 : _a.isGiftCard) && ((_b = props.product) === null || _b === void 0 ? void 0 : _b.giftCardTermsURL) && (React.createElement(React.Fragment, null,\n                    React.createElement(\"br\", null),\n                    React.createElement(\"a\", { href: (_c = props.product) === null || _c === void 0 ? void 0 : _c.giftCardTermsURL, target: \"_blank\", className: \"text-uppercase\" }, t('legal.conditionofuse'))))));\n        }));\n    };\n    const printValuesCare = () => {\n        var _a, _b;\n        const compositionAndCare = (_a = props.product) === null || _a === void 0 ? void 0 : _a.compositionAndCare;\n        if (!compositionAndCare) {\n            return React.createElement(React.Fragment, null);\n        }\n        return (React.createElement(\"div\", null,\n            React.createElement(\"ul\", { className: \"composition-care-icons-container\" }, (_b = compositionAndCare.icons) === null || _b === void 0 ? void 0 : _b.map((e) => (React.createElement(\"li\", { className: \"composition-care-icons\", key: e.url },\n                React.createElement(\"img\", { src: e.url, alt: e.description }),\n                React.createElement(\"span\", null, e.description || ''))))),\n            compositionAndCare.showCareDescription && compositionAndCare.care ? React.createElement(\"p\", { className: \"care-description\" }, compositionAndCare.care || '') : React.createElement(React.Fragment, null),\n            React.createElement(\"p\", { className: \"mt-24 composition-description\" }, compositionAndCare.composition || '')));\n    };\n    // const shippingAndReturns = useMemo(() => {\n    //   if (props.product?.isParfum && props.product?.parfumAttributes?.shippingReturns) {\n    //     return props.product.parfumAttributes.shippingReturns;\n    //   }\n    //   if (props.product?.isMbm && props.product?.mbm?.shippingReturns) {\n    //     return props.product?.mbm?.shippingReturns;\n    //   }\n    //   return props.product?.editorial?.shippingAndReturn;\n    // }, [props.product]);\n    const [productDetailRef, inView] = useInView({\n        triggerOnce: true,\n    });\n    if (!props.product) {\n        return React.createElement(React.Fragment, null);\n    }\n    /**\n     * Renders the \"Product details\" tab\n     */\n    const renderDetails = () => {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n        return (React.createElement(\"div\", { className: 'product-details container' + (!inView ? ' landing' : ''), id: \"DEBUG_prova_1\" },\n            React.createElement(\"div\", null,\n                ((_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.collections) === null || _b === void 0 ? void 0 : _b.genius) && React.createElement(\"div\", { className: \"product-details__category\" }, props.product.productLineCode),\n                React.createElement(\"div\", { className: \"primary-m product-details__short-description\", dangerouslySetInnerHTML: { __html: props.product.shortDescription || props.product.longDescription } }),\n                React.createElement(GrenobleDetails, { product: props.product }),\n                React.createElement(\"div\", { className: \"row bottom-product-details\", style: { height: 'auto' } },\n                    printValues(characteristicsText, props.product.isGiftCard ? t('labels.validity') : t('label.details')),\n                    ((_c = props.product) === null || _c === void 0 ? void 0 : _c.sizeAndFit) && (React.createElement(React.Fragment, null,\n                        React.createElement(\"div\", { className: \"col-sm-6 col-12\" },\n                            React.createElement(\"p\", { className: \"primary-s-u\" }, props.product.isGiftCard ? t('gc.balance.term') : t('label.sizingfit')),\n                            React.createElement(\"div\", { className: classNames('wrapper-sizeandfit', { giftcard: props.product.isGiftCard }), dangerouslySetInnerHTML: { __html: (_d = props.product) === null || _d === void 0 ? void 0 : _d.sizeAndFit } }))))),\n                props.product.isParfum && ((_e = props.product.parfumAttributes) === null || _e === void 0 ? void 0 : _e.hasLed) && (React.createElement(\"div\", { className: \"product-details-perfume-led\" },\n                    React.createElement(\"div\", { className: \"led-packaging\" },\n                        React.createElement(\"div\", { className: \"packaging-row\" },\n                            React.createElement(\"div\", { className: \"container_packaging__col\", id: \"led-charger\" },\n                                React.createElement(\"div\", { className: \"led-packaging__img\" },\n                                    React.createElement(\"img\", { alt: \"\", src: (_h = (_g = (_f = props.product) === null || _f === void 0 ? void 0 : _f.parfumAttributes) === null || _g === void 0 ? void 0 : _g.ledPackagingImages) === null || _h === void 0 ? void 0 : _h.charger })),\n                                React.createElement(\"h5\", null, t('product.ledPackagingcharger'))),\n                            React.createElement(\"div\", { className: \"container_packaging__col\", id: \"led-refill\" },\n                                React.createElement(\"div\", { className: \"led-packaging__img\" },\n                                    React.createElement(\"img\", { alt: \"\", src: (_l = (_k = (_j = props.product) === null || _j === void 0 ? void 0 : _j.parfumAttributes) === null || _k === void 0 ? void 0 : _k.ledPackagingImages) === null || _l === void 0 ? void 0 : _l.refill })),\n                                React.createElement(\"h5\", null, t('product.ledPackagingRefill'))),\n                            React.createElement(\"div\", { className: \"container_packaging__col\", id: \"led-case\" },\n                                React.createElement(\"div\", { className: \"led-packaging__img\" },\n                                    React.createElement(\"img\", { alt: \"\", src: (_p = (_o = (_m = props.product) === null || _m === void 0 ? void 0 : _m.parfumAttributes) === null || _o === void 0 ? void 0 : _o.ledPackagingImages) === null || _p === void 0 ? void 0 : _p.ledCase })),\n                                React.createElement(\"h5\", null, t('product.ledPackagingledCase')))),\n                        React.createElement(\"div\", { ref: storesBadgesContainer, id: \"led-packaging-app-badges\" },\n                            React.createElement(\"p\", { className: \"mb-16\" },\n                                t('product.ledPackagingdownload'),\n                                \" \"),\n                            props.product.parfumAttributes.ledPackaging && (React.createElement(ContentAsset, { assetid: (_q = props.product.parfumAttributes.ledPackaging) === null || _q === void 0 ? void 0 : _q.UUID, content: (_r = props.product.parfumAttributes.ledPackaging) === null || _r === void 0 ? void 0 : _r.body }))))))),\n            React.createElement(PromoBanner, null)));\n    };\n    /**\n     * Renders the Mbm tab\n     */\n    const renderMbm = () => {\n        var _a, _b;\n        return (React.createElement(\"div\", { className: 'product-details container' + (!inView ? ' landing' : '') },\n            React.createElement(MbmAccordionTab, { palettes: (_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.mbm) === null || _b === void 0 ? void 0 : _b.palettes })));\n    };\n    /**\n     * Renders the \"Composition & care\" tab\n     */\n    const renderComposition = () => {\n        var _a, _b, _c, _d, _e;\n        return (React.createElement(\"div\", { className: 'product-details container composition-care' + (!inView ? ' landing' : ''), id: \"DEBUG_prova_2\" },\n            React.createElement(\"div\", null,\n                React.createElement(\"div\", { className: \"container-composition-care\" },\n                    React.createElement(\"p\", { className: \"primary-m mb-16\" }, t('label.compositioncaresubtitle')),\n                    React.createElement(\"a\", { className: \"primary-xs-u\", href: props === null || props === void 0 ? void 0 : props.aftercareurl }, t('label.compositioncarelink'))),\n                printValuesCare(),\n                window.country == 'FR' && ((_b = (_a = props.product) === null || _a === void 0 ? void 0 : _a.collections) === null || _b === void 0 ? void 0 : _b.grenoble) && React.createElement(\"p\", { className: \"mt-24\" }, t('product.grenoblecompositionandcare')),\n                ((_c = props.product) === null || _c === void 0 ? void 0 : _c.traceability) && (React.createElement(\"p\", { className: \"mt-24 mb-24\" },\n                    React.createElement(\"a\", { href: props.product.traceability.url, target: \"_blank\", onClick: () => {\n                            analytics.agecLinkPDP(props.product.id);\n                        } }, t('product.compositionandcaretraceability')))),\n                React.createElement(\"p\", { className: \"mt-24\" },\n                    t('product.styleno'),\n                    \" \",\n                    props.product.id),\n                props.product.madeIn && React.createElement(\"p\", null, props.product.madeIn),\n                props.product.firstProductDate && (React.createElement(\"p\", null,\n                    t('product.productmanufactored'),\n                    \" \",\n                    props.product.firstProductDate)),\n                props.product.importedBy && React.createElement(\"p\", null, props.product.importedBy),\n                window.country == 'FR' && ((_e = (_d = props.product) === null || _d === void 0 ? void 0 : _d.collections) === null || _e === void 0 ? void 0 : _e.grenoble) && React.createElement(\"p\", { className: \"mt-20\" }, t('product.grenoblecompositionandcare')),\n                window.country == 'KR' && (React.createElement(\"p\", { className: \"product-cm-warning\" }, t('product.codemanufacture.warning', 'Please note the product code and the date of manufacture may vary.')))),\n            React.createElement(PromoBanner, null)));\n    };\n    return (React.createElement(\"div\", { className: \"product-details-tab drawer-details-composition\" },\n        React.createElement(\"div\", { className: \"row justify-center\" },\n            React.createElement(\"div\", { className: \"wrapper-product-details\" },\n                React.createElement(Tabs, { className: classNames('tabs') },\n                    React.createElement(\"div\", { className: classNames('wrapper-tab-list'), ref: tabHead },\n                        React.createElement(TabList, null,\n                            React.createElement(Tab, { onClick: () => { var _a; return analytics.detailsAndCare(t('label.productdetailsanalytics'), (_a = props.product) === null || _a === void 0 ? void 0 : _a.id); } }, props.product.isGiftCard ? t('gc.howitworks') : t('label.productdetails')),\n                            ((_a = props.product) === null || _a === void 0 ? void 0 : _a.isMbm) && React.createElement(Tab, null, t('mbm.title')),\n                            !props.product.isGiftCard && (React.createElement(Tab, { onClick: () => { var _a; return analytics.detailsAndCare(t('label.compositioncareanalytics'), (_a = props.product) === null || _a === void 0 ? void 0 : _a.id); } }, t('label.compositioncare'))))),\n                    React.createElement(\"div\", { ref: productDetailRef, className: classNames('wrapper-tab-panels') },\n                        React.createElement(TabPanel, null, renderDetails()),\n                        ((_b = props.product) === null || _b === void 0 ? void 0 : _b.isMbm) && React.createElement(TabPanel, null, renderMbm()),\n                        !props.product.isGiftCard && React.createElement(TabPanel, null, renderComposition()))))),\n        React.createElement(\"div\", { className: \"googlebot-content-view\" },\n            renderDetails(),\n            ((_c = props.product) === null || _c === void 0 ? void 0 : _c.isMbm) && renderMbm(),\n            renderComposition())));\n};\nexport default ProductDetailsTab;\n","import analytics from '@utils/analytics';\nimport api from '@utils/api';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nconst ProductDiscoverMore = (props) => {\n    const { t } = useTranslation();\n    const current = useSelector((state) => state.product).current;\n    const [previousMaster, setpreviousMaster] = useState('');\n    const [hasDiscoverMore, setHasDiscoverMore] = useState(false);\n    const [discoverMoreUrl, setDiscoverMoreUrl] = useState('/');\n    useEffect(() => {\n        var _a, _b;\n        if (current === null || current === void 0 ? void 0 : current.technicalPage) {\n            if (current.masterId != previousMaster) {\n                setpreviousMaster(current.masterId);\n                api.getPageJson(current.technicalPage).then((data) => {\n                    var _a;\n                    if (!data.errorMessage) {\n                        setDiscoverMoreUrl((_a = data.page) === null || _a === void 0 ? void 0 : _a.url);\n                        setHasDiscoverMore(true);\n                    }\n                });\n            }\n        }\n        else if ((current === null || current === void 0 ? void 0 : current.isParfum) && ((_a = current === null || current === void 0 ? void 0 : current.parfumAttributes) === null || _a === void 0 ? void 0 : _a.perfumePageID)) {\n            if (current.masterId != previousMaster) {\n                setpreviousMaster(current.masterId);\n                api.getPageJson((_b = current === null || current === void 0 ? void 0 : current.parfumAttributes) === null || _b === void 0 ? void 0 : _b.perfumePageID).then((data) => {\n                    var _a;\n                    if (!data.errorMessage) {\n                        setDiscoverMoreUrl((_a = data.page) === null || _a === void 0 ? void 0 : _a.url);\n                        setHasDiscoverMore(true);\n                    }\n                });\n            }\n        }\n        else if (current === null || current === void 0 ? void 0 : current.adidasImmPageID) {\n            if (current.masterId != previousMaster) {\n                setpreviousMaster(current.masterId);\n                api.getPageJson(current === null || current === void 0 ? void 0 : current.adidasImmPageID).then((data) => {\n                    var _a;\n                    if (!data.errorMessage) {\n                        setDiscoverMoreUrl((_a = data.page) === null || _a === void 0 ? void 0 : _a.url);\n                        setHasDiscoverMore(true);\n                    }\n                });\n            }\n        }\n        else {\n            // al cambio pdp (routing client side) resetto il discover more\n            setHasDiscoverMore(false);\n        }\n    }, [current]);\n    const onClickAnalytics = () => {\n        (current === null || current === void 0 ? void 0 : current.isParfum) ? analytics.discoverMoreParfum(current.id) : undefined;\n    };\n    return hasDiscoverMore ? (React.createElement(\"div\", { className: 'product-selection discover-more container' + (!props.loaded ? ' landing' : '') },\n        React.createElement(\"div\", { className: \"row justify-center\" },\n            React.createElement(\"div\", { className: \"col-lg-8 col-md-12 col-sm-10\" },\n                React.createElement(\"div\", { className: \"text-center\" },\n                    React.createElement(\"p\", null, (current === null || current === void 0 ? void 0 : current.isParfum) ? t('button.discovermoreperfumes') : (current === null || current === void 0 ? void 0 : current.adidasImmPageID) ? t('button.discovermoreadidas') : t('button.discovermoretechnical')),\n                    React.createElement(\"a\", { onClick: onClickAnalytics, href: discoverMoreUrl, target: (current === null || current === void 0 ? void 0 : current.adidasImmPageID) ? '_blank' : '_self', className: \"button button--tertiary button--arrow-right\", \"aria-hidden\": !!(current === null || current === void 0 ? void 0 : current.isParfum) }, (current === null || current === void 0 ? void 0 : current.isParfum) ? t('button.discovermorelink') : (current === null || current === void 0 ? void 0 : current.adidasImmPageID) ? t('button.discovermoreadidaslink') : t('button.discovermore'))))))) : (React.createElement(React.Fragment, null));\n};\nexport default ProductDiscoverMore;\n","import React from 'react';\nimport { useInView } from 'react-intersection-observer';\nconst ProductImageAnimated = (props) => {\n    const { ref, inView } = useInView({\n        triggerOnce: true,\n    });\n    return (React.createElement(\"div\", { ref: ref, className: 'product-image--animate' + (inView && props.imageLoaded ? ' animated from-' + props.direction : '') }, props.children));\n};\nexport default ProductImageAnimated;\n","import Accordion from '@ui/accordion/Accordion';\nimport AccordionItem from '@ui/accordion/AccordionItem';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useInView } from 'react-intersection-observer';\nimport { Tab, TabList, TabPanel, Tabs } from 'react-tabs';\nimport ReactHtmlParser from 'react-html-parser';\nimport classNames from 'classnames';\nimport Lazyimg from '@components/utils/Lazyimg';\nimport analytics from '@common/utils/analytics';\nimport useInnerWidth from '@common/utils/useInnerWidth';\nimport api from '@common/utils/api';\nimport { freeExpressShippingCustomerGroup } from '@utils/constants';\nimport LoginModal from '@components/login/LoginModal';\nconst ProductShippingAndReturnsTabs = (props) => {\n    var _a, _b, _c;\n    const { t } = useTranslation();\n    const [promotionInfo, setPromotionInfo] = useState();\n    const [campaignActive, setCampaingActive] = useState(false);\n    const [hasFreeExpressShipping, setHasFreeExpressShipping] = useState(false);\n    const [loginOpen, setLoginOpen] = useState(false);\n    const [googleReady, setGoogleReady] = useState(false);\n    const tabHead = useRef(null);\n    const [productDetailRef, inView] = useInView({\n        triggerOnce: true,\n    });\n    const currentBreakpoint = useInnerWidth();\n    useEffect(() => {\n        api.getPromotionInfo().then((data) => {\n            var _a, _b;\n            setPromotionInfo(data);\n            if ((_a = data.activeCampaigns) === null || _a === void 0 ? void 0 : _a.includes(window.promoFreeExpressShippingNewMembers)) {\n                setCampaingActive(true);\n            }\n            if ((_b = data.customerGroups) === null || _b === void 0 ? void 0 : _b.includes(freeExpressShippingCustomerGroup)) {\n                setHasFreeExpressShipping(true);\n            }\n        });\n    }, []);\n    useEffect(() => {\n        var _a;\n        if (props.shippingAndReturns && ((_a = props.shippingAndReturns) === null || _a === void 0 ? void 0 : _a.tabs)) {\n            setGoogleReady(true);\n        }\n    }, [props.shippingAndReturns]);\n    useEffect(() => {\n        var _a, _b, _c;\n        if (!props.product) {\n            return;\n        }\n        if (currentBreakpoint <= window.mqObj.sm) {\n            const widthContainer = (_b = (_a = tabHead.current) === null || _a === void 0 ? void 0 : _a.querySelector('.react-tabs__tab-list')) === null || _b === void 0 ? void 0 : _b.offsetWidth;\n            const shippingReturnsDrawer = (_c = tabHead.current) === null || _c === void 0 ? void 0 : _c.closest('.drawer-shipping-returns');\n            shippingReturnsDrawer === null || shippingReturnsDrawer === void 0 ? void 0 : shippingReturnsDrawer.classList.toggle('no-margin-right', widthContainer > window.innerWidth);\n        }\n    }, [currentBreakpoint, props.shippingAndReturns, props.product]);\n    if (!props.product) {\n        return React.createElement(React.Fragment, null);\n    }\n    /**\n     * Renders a tab panel\n     */\n    const renderPanel = (tab) => {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n        return (React.createElement(\"div\", { className: 'product-details container min__height' + (!inView ? ' landing' : '') },\n            React.createElement(\"div\", { className: \"mb-32\" },\n                (tab === null || tab === void 0 ? void 0 : tab.description) && (React.createElement(React.Fragment, null, ((_a = props === null || props === void 0 ? void 0 : props.product) === null || _a === void 0 ? void 0 : _a.isMbm) && (tab === null || tab === void 0 ? void 0 : tab.description_mbm) ? React.createElement(\"p\", { className: \"primary-m mb-20\" }, tab.description_mbm) : React.createElement(\"p\", { className: \"primary-m mb-20\" }, tab.description))),\n                tab.cta_text && tab.cta_link && (React.createElement(React.Fragment, null, ((_b = props === null || props === void 0 ? void 0 : props.product) === null || _b === void 0 ? void 0 : _b.isMbm) && (tab === null || tab === void 0 ? void 0 : tab.cta_link_mbm) && (tab === null || tab === void 0 ? void 0 : tab.cta_text_mbm) ? (React.createElement(\"a\", { className: \"primary-m product-details-shipping-link\", href: tab.cta_link_mbm }, tab.cta_text_mbm.toLowerCase())) : (React.createElement(\"a\", { className: \"primary-m product-details-shipping-link\", href: tab.cta_link }, tab.cta_text.toLowerCase()))))),\n            ((_e = (_d = (_c = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _c === void 0 ? void 0 : _c.shippings_methods) === null || _d === void 0 ? void 0 : _d.components) === null || _e === void 0 ? void 0 : _e.length) ? (React.createElement(React.Fragment, null, ((_f = props === null || props === void 0 ? void 0 : props.product) === null || _f === void 0 ? void 0 : _f.isMbm) ? (React.createElement(React.Fragment, null,\n                React.createElement(\"ul\", { className: \"product-details-shipments\" },\n                    React.createElement(\"li\", { className: \"product-details-shipment\" },\n                        React.createElement(\"div\", { className: \"product-details-shipment__header\" },\n                            React.createElement(\"h4\", { className: \"primary-xs-u\" }, t('mbm.title')),\n                            React.createElement(\"span\", { className: \"primary-xs-u\" }, t('shipping.mbm.price'))),\n                        React.createElement(\"p\", { className: \"product-details-shipment__body\" }, t('shipping.mbm.description')))))) : (React.createElement(React.Fragment, null,\n                React.createElement(\"ul\", { className: \"product-details-shipments\" }, (_h = (_g = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _g === void 0 ? void 0 : _g.shippings_methods) === null || _h === void 0 ? void 0 : _h.components.map((method, index) => (React.createElement(\"li\", { className: \"product-details-shipment\", key: `product-detail-shipment-${index}` },\n                    React.createElement(\"div\", { className: \"product-details-shipment__header\" },\n                        React.createElement(\"h4\", { className: \"primary-xs-u\" }, method.title),\n                        method.title.toLowerCase() == 'express' && promotionInfo && campaignActive ? (React.createElement(\"span\", null, (promotionInfo === null || promotionInfo === void 0 ? void 0 : promotionInfo.guest) ? method.price : hasFreeExpressShipping ? t('expressshippingfree.price') : method.price)) : (React.createElement(\"span\", { className: \"primary-xs-u\" }, method.price))),\n                    React.createElement(\"p\", { className: \"product-details-shipment__body\" },\n                        React.createElement(\"span\", { className: \"primary-xs\" }, method.description),\n                        method.title.toLowerCase() == 'express' && promotionInfo && campaignActive && (React.createElement(React.Fragment, null,\n                            React.createElement(\"p\", { className: \"primary-xs fre-express\" }, (promotionInfo === null || promotionInfo === void 0 ? void 0 : promotionInfo.guest) ? t('bag.freeexpressdeliveryguest') : hasFreeExpressShipping && t('bag.freeexpressdelivery')),\n                            (promotionInfo === null || promotionInfo === void 0 ? void 0 : promotionInfo.guest) && (React.createElement(LoginModal, { incontext: \"membersonly\", reloadPage: true, modalStatus: loginOpen, updateStatus: (status) => setLoginOpen(status), buttonText: t('expressshippingfree.loginbutton'), customClass: \"button--link-button bold\" }))))))))))))) : (((_k = (_j = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _j === void 0 ? void 0 : _j.shippings_methods) === null || _k === void 0 ? void 0 : _k.title) && (React.createElement(React.Fragment, null,\n                React.createElement(React.Fragment, null, ((_m = (_l = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _l === void 0 ? void 0 : _l.shippings_methods) === null || _m === void 0 ? void 0 : _m.title) && (React.createElement(\"div\", { className: \"product-details-shipment first-child\" },\n                    React.createElement(\"div\", { className: \"product-details-shipment__header\" },\n                        React.createElement(\"h4\", { className: \"primary-xs-u\" }, (_o = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _o === void 0 ? void 0 : _o.shippings_methods.title),\n                        React.createElement(\"span\", { className: \"primary-xs-u\" }, (_p = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _p === void 0 ? void 0 : _p.shippings_methods.price)),\n                    React.createElement(\"p\", { className: \"product-details-shipment__body\" }, (_q = tab === null || tab === void 0 ? void 0 : tab.regions) === null || _q === void 0 ? void 0 : _q.shippings_methods.description))))))),\n            (tab === null || tab === void 0 ? void 0 : tab.image_1_img) && (tab === null || tab === void 0 ? void 0 : tab.image_1_label) && (React.createElement(React.Fragment, null,\n                React.createElement(\"div\", { className: \"product-details-packaging\" },\n                    React.createElement(\"div\", { className: \"product-details-packaging-image\" },\n                        React.createElement(\"img\", { src: currentBreakpoint < window.mqObj.sm && (tab === null || tab === void 0 ? void 0 : tab.image_1_img_mobile) ? tab === null || tab === void 0 ? void 0 : tab.image_1_img_mobile.path : tab === null || tab === void 0 ? void 0 : tab.image_1_img.path, alt: \"\" }),\n                        React.createElement(\"label\", null, tab === null || tab === void 0 ? void 0 : tab.image_1_label)),\n                    (tab === null || tab === void 0 ? void 0 : tab.image_2_img) && (tab === null || tab === void 0 ? void 0 : tab.image_2_label) && (React.createElement(\"div\", { className: \"product-details-packaging-image\" },\n                        React.createElement(Lazyimg, { src: currentBreakpoint < window.mqObj.sm && (tab === null || tab === void 0 ? void 0 : tab.image_2_img_mobile) ? tab === null || tab === void 0 ? void 0 : tab.image_2_img_mobile.path : tab === null || tab === void 0 ? void 0 : tab.image_2_img.path, alt: \"\" }),\n                        React.createElement(\"label\", null, tab === null || tab === void 0 ? void 0 : tab.image_2_label)))))),\n            ((_r = tab === null || tab === void 0 ? void 0 : tab.faqs) === null || _r === void 0 ? void 0 : _r.length) > 0 && (React.createElement(\"div\", { className: \"product-details-faqs\" },\n                React.createElement(Accordion, null, tab.faqs.map((faq, i) => (React.createElement(AccordionItem, { accordionId: i + '', key: `product-return-faq-${i}`, itemClass: \"faq--card\", headerClass: \"accordion__header\", title: faq.title },\n                    React.createElement(\"div\", { className: \"faq--card-body\" }, ReactHtmlParser(faq.content)))))),\n                (tab === null || tab === void 0 ? void 0 : tab.faq_url) && (tab === null || tab === void 0 ? void 0 : tab.faq_label) && (React.createElement(\"a\", { className: \"button button--secondary faq--button\", target: \"_blank\", href: tab.faq_url }, tab.faq_label))))));\n    };\n    return (React.createElement(\"div\", { className: \"product-details-tab drawer-shipping-returns\" },\n        React.createElement(\"div\", { className: \"row justify-center\" },\n            React.createElement(\"div\", { className: \"wrapper-product-details\" },\n                React.createElement(Tabs, { className: classNames('tabs') },\n                    React.createElement(\"div\", { className: classNames('wrapper-tab-list'), ref: tabHead },\n                        React.createElement(TabList, null, (_a = props === null || props === void 0 ? void 0 : props.shippingAndReturns) === null || _a === void 0 ? void 0 : _a.tabs.map((tab) => (React.createElement(Tab, { key: `tab-head-${tab.id}`, onClick: () => {\n                                var _a, _b;\n                                analytics.shippingAndReturnsLabel((tab === null || tab === void 0 ? void 0 : tab.title_analytics) || (tab === null || tab === void 0 ? void 0 : tab.title), ((_a = props.product) === null || _a === void 0 ? void 0 : _a.id) || ((_b = props.product) === null || _b === void 0 ? void 0 : _b.masterId));\n                            } }, tab.title))))),\n                    React.createElement(\"div\", { ref: productDetailRef, className: classNames('wrapper-tab-panels') }, (_b = props === null || props === void 0 ? void 0 : props.shippingAndReturns) === null || _b === void 0 ? void 0 : _b.tabs.map((tab) => (React.createElement(TabPanel, { key: `tab-panel-${tab.id}` }, renderPanel(tab)))))))),\n        googleReady && (React.createElement(\"div\", { className: \"googlebot-content-view\" },\n            React.createElement(\"div\", { ref: productDetailRef, className: classNames('wrapper-tab-panels', 'DEBUG_prova') }, (_c = props === null || props === void 0 ? void 0 : props.shippingAndReturns) === null || _c === void 0 ? void 0 : _c.tabs.map((tab) => (React.createElement(\"div\", { key: tab.id }, renderPanel(tab)))))))));\n};\nexport default ProductShippingAndReturnsTabs;\n","/**\n * Mostly taken from https://gist.github.com/SgtPooki/6a9bf70ccd97750e0d57 with some minor adjustments\n */\nexport const scrollTo = function (Y, duration, easingFunction, callback) {\n    let start = performance.now(), elem = !isNaN(document.documentElement.scrollTop) ? document.documentElement : document.body, from = elem.scrollTop;\n    if (from === Y) {\n        callback && callback();\n        return; /* Prevent scrolling to the Y point if already there */\n    }\n    function min(a, b) {\n        return a < b ? a : b;\n    }\n    function scroll(timestamp) {\n        let currentTime = performance.now(), time = min(1, (currentTime - start) / duration), easedT = easingFunction(time);\n        elem.scrollTop = easedT * (Y - from) + from;\n        if (time < 1)\n            requestAnimationFrame(scroll);\n        else if (callback)\n            callback();\n    }\n    requestAnimationFrame(scroll);\n};\nexport const easing = {\n    // no easing, no acceleration\n    linear: function (t) {\n        return t;\n    },\n    // accelerating from zero velocity\n    easeInQuad: function (t) {\n        return t * t;\n    },\n    // decelerating to zero velocity\n    easeOutQuad: function (t) {\n        return t * (2 - t);\n    },\n    // acceleration until halfway, then deceleration\n    easeInOutQuad: function (t) {\n        return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n    },\n    // accelerating from zero velocity\n    easeInCubic: function (t) {\n        return t * t * t;\n    },\n    // decelerating to zero velocity\n    easeOutCubic: function (t) {\n        return --t * t * t + 1;\n    },\n    // acceleration until halfway, then deceleration\n    easeInOutCubic: function (t) {\n        return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n    },\n    // accelerating from zero velocity\n    easeInQuart: function (t) {\n        return t * t * t * t;\n    },\n    // decelerating to zero velocity\n    easeOutQuart: function (t) {\n        return 1 - --t * t * t * t;\n    },\n    // acceleration until halfway, then deceleration\n    easeInOutQuart: function (t) {\n        return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;\n    },\n    // accelerating from zero velocity\n    easeInQuint: function (t) {\n        return t * t * t * t * t;\n    },\n    // decelerating to zero velocity\n    easeOutQuint: function (t) {\n        return 1 + --t * t * t * t * t;\n    },\n    // acceleration until halfway, then deceleration\n    easeInOutQuint: function (t) {\n        return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\n    },\n    // decelerating to zero velocity\n    easeOutCirc: function (t) {\n        return Math.sqrt(1 - --t * t);\n    },\n};\n","import React, { useEffect, useRef, useState, useCallback } from 'react';\nimport useBreakpoint from '@common/utils/useBreakpoint';\nimport { useInView } from 'react-intersection-observer';\nimport { scrollTo, easing } from '@utils/scrollUtils';\nconst isSafari = window.navigator.userAgent.match(/Safari/i);\nconst ScrollHandler = (props) => {\n    const [active, setActive] = useState(false);\n    const [offsetY, setOffsetY] = useState(0);\n    const trackRef = useRef();\n    const thumbRef = useRef();\n    const initialY = useRef(0);\n    const currentY = useRef(0);\n    const trackLength = useRef(0);\n    const galleryBottom = useRef();\n    const scrollHandlerRef = useRef();\n    const wrapperRef = useRef();\n    const { ref: inViewRef, inView } = useInView({ initialInView: true });\n    const currentBreakpoint = useBreakpoint();\n    const [fixed, setFixed] = useState(true);\n    const iOsLastClientY = useRef(0);\n    const iOsChangeDirectionCounter = useRef(0);\n    const iOsFirstClientY = useRef(0);\n    const iOsScrollDirection = useRef('');\n    const setRefs = useCallback((node) => {\n        wrapperRef.current = node;\n        // Callback refs, like the one from `useInView`, is a function that takes the node as an argument\n        inViewRef(node);\n    }, [inViewRef]);\n    useEffect(() => {\n        const thumbBounds = thumbRef.current.getBoundingClientRect();\n        initialY.current = thumbBounds.y;\n        trackLength.current = trackRef.current.clientHeight - thumbRef.current.clientHeight;\n        galleryBottom.current = document.querySelector('.product-col--gallery');\n        return () => window.removeEventListener('scroll', scrollThumbnail);\n    }, [currentBreakpoint]);\n    useEffect(() => {\n        var _a;\n        let scrollHandlerNeeded = !inView && ((_a = wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().y) >= 0; // User is scrolling the gallery\n        if (scrollHandlerNeeded) {\n            window.addEventListener('scroll', scrollThumbnail);\n        }\n        else {\n            window.removeEventListener('scroll', scrollThumbnail);\n        }\n        setFixed(scrollHandlerNeeded);\n    }, [inView, props.current]);\n    const dragStart = (clientY) => {\n        initialY.current = clientY - offsetY;\n        setActive(true);\n        document.documentElement.addEventListener('mousemove', dragMove);\n        document.documentElement.addEventListener('touchmove', dragMove, { passive: false });\n        document.documentElement.addEventListener('mouseup', dragEnd, { once: true });\n        document.documentElement.addEventListener('touchend', dragEnd, { once: true });\n    };\n    const dragMove = (event) => {\n        const isTouch = event instanceof TouchEvent;\n        const clientY = isTouch ? event.touches[0].clientY : event.clientY;\n        if (isSafari && isTouch && iOsFix(clientY)) {\n            return;\n        }\n        const targetY = clientY - initialY.current;\n        moveThumbnailTo(targetY);\n    };\n    const dragEnd = () => {\n        document.documentElement.removeEventListener('mousemove', dragMove);\n        document.documentElement.removeEventListener('touchmove', dragMove);\n        setActive(false);\n    };\n    const moveThumbnailTo = (targetY) => {\n        const clampedClientY = Math.min(Math.max(targetY, 0), trackLength.current);\n        currentY.current = clampedClientY;\n        setOffsetY(currentY.current);\n        document.documentElement.scrollTop = calculateScrollValue();\n    };\n    const jumpTo = (event) => {\n        const clientY = event instanceof TouchEvent ? event.touches[0].clientY : event.clientY;\n        const targetY = clientY - trackRef.current.getBoundingClientRect().y;\n        moveThumbnailTo(targetY);\n    };\n    const scrollThumbnail = (e) => {\n        e.preventDefault();\n        e.stopPropagation();\n        const clampedClientY = Math.min(calculateThumbPosition(), trackLength.current);\n        currentY.current = clampedClientY;\n        setOffsetY(currentY.current);\n    };\n    const calculateScrollValue = () => {\n        return ((galleryBottom.current.clientHeight - window.innerHeight) / trackLength.current) * currentY.current;\n    };\n    const calculateThumbPosition = () => {\n        return (trackLength.current / (galleryBottom.current.clientHeight - window.innerHeight)) * document.documentElement.scrollTop;\n    };\n    const scrollToBottom = () => {\n        const targetScroll = galleryBottom.current.clientHeight;\n        scrollTo(targetScroll, 1500, easing.easeInOutQuart);\n    };\n    /**\n     * Ugly iOs Fix: apparentley scrolling the page during moveThumbnailTo() makes Safari lose track of the touch.clientY's position\n     * resulting in little \"jumps back\" during the drag of the thumb.\n     * The following prevents this by understanding the direction of the drag and thus avoids jumping back, unless enough force is applied\n     */\n    const iOsFix = (clientY) => {\n        const minimumForce = 3;\n        if (!iOsScrollDirection.current) {\n            iOsScrollDirection.current = clientY > iOsFirstClientY.current ? 'down' : 'up';\n        }\n        if ((iOsScrollDirection.current === 'up' && clientY > iOsLastClientY.current) || (iOsScrollDirection.current === 'down' && clientY < iOsLastClientY.current)) {\n            if (iOsChangeDirectionCounter.current < minimumForce) {\n                iOsChangeDirectionCounter.current++;\n            }\n            else {\n                iOsChangeDirectionCounter.current = 0;\n                iOsFirstClientY.current = clientY;\n                iOsScrollDirection.current = '';\n            }\n            return true;\n        }\n        iOsChangeDirectionCounter.current = 0;\n        iOsLastClientY.current = clientY;\n        return false;\n    };\n    return (React.createElement(\"div\", { className: `scrollhandler-wrapper ${fixed ? 'fixed' : ''} ${props.loaded ? '' : 'landing'}`, ref: setRefs },\n        React.createElement(\"div\", { className: \"scrollhandler\", ref: scrollHandlerRef },\n            React.createElement(\"div\", { \"aria-hidden\": \"true\", tabIndex: -1, className: \"scrollhandler-track\", ref: trackRef, onMouseDown: jumpTo },\n                React.createElement(\"button\", { \"aria-hidden\": \"true\", tabIndex: -1, ref: thumbRef, type: \"button\", className: `scrollhandler-thumb ${active ? 'active' : ''}`, style: { transform: 'translate3d(-50%,' + currentY.current + 'px, 0)' }, onMouseDown: (e) => {\n                        e.preventDefault();\n                        e.stopPropagation();\n                        dragStart(e.clientY);\n                    }, onTouchStart: (e) => {\n                        var _a;\n                        e.preventDefault();\n                        e.stopPropagation();\n                        const clientY = (_a = e.touches[0]) === null || _a === void 0 ? void 0 : _a.clientY;\n                        iOsScrollDirection.current = '';\n                        iOsFirstClientY.current = clientY;\n                        dragStart(clientY);\n                    } })),\n            React.createElement(\"div\", { className: \"scrollhandler-scrolldown\" },\n                React.createElement(\"button\", { type: \"button\", \"aria-hidden\": \"true\", tabIndex: -1, onClick: scrollToBottom },\n                    React.createElement(\"span\", null))))));\n};\nexport default ScrollHandler;\n","import Drawers from '@common/ui/drawes/Drawers';\nimport Metatags from '@components/common/Metatags';\nimport Breadcrumbs from '@components/listing/Breadcrumb';\nimport { ProductHero, ProductLook, ProductRecommendation, ProductSelection } from '@moncler/components/product';\nimport VtoModal from '@moncler/components/vto/VtoModal';\nimport { ProductActionTypes } from '@state/features/common.types';\nimport analytics from '@utils/analytics';\nimport JsonLd from '@utils/JsonLd';\nimport { getSizeAvailability } from '@utils/product';\nimport React, { useEffect, useMemo, useReducer, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport ProductDetailsTab from './ProductDetailsTab';\nimport api from '@common/utils/api';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport customEventBus from '@common/scripts/libs/eventBus';\nimport ProductDiscoverMore from '@moncler/components/product/ProductDiscoverMore';\nimport ProductGallery from '@moncler/components/product/ProductGallery';\nimport ProductImageAnimated from '@moncler/components/product/ProductImageAnimated';\nimport useBreakpoint from '@common/utils/useBreakpoint';\nimport ProductShippingAndReturnsTabs from '@moncler/components/product/ProductShippingAndReturnsTabs';\nimport { throttle } from '@common/utils/functions';\nimport ScrollHandler from './ScrollHandler';\nimport GiftCardBalanceModal from './GiftCardBalanceModal';\nimport classNames from 'classnames';\nimport useProductEditorialContents from '@moncler/hooks/useProductEditorialContents';\nimport useQueryStringBoolean from '@common/utils/useQueryStringBoolean';\nconst ProductPage = (props) => {\n    var _a, _b, _c, _d, _e, _f;\n    const { t } = useTranslation();\n    let { pid } = useParams();\n    const dispatch = useDispatch();\n    const current = useSelector((state) => state.product).current;\n    const redirect = useSelector((state) => state.redirect);\n    const [galleryIsOpen, setGalleryIsOpen] = useState(false);\n    const [previousPid, setpreviousPid] = useState('');\n    const [previousPid2, setpreviousPid2] = useState('');\n    const [heroImageLoaded, setHeroImageLoaded] = useState(window.ssr ? true : false);\n    const [media, setMedia] = useState([]);\n    const [sizeguideOpen, setSizeguideOpen] = useState(false);\n    const [openVTO, setOpenVTO] = useState(location.search.includes('openVTO'));\n    const [detailsOpen, setDetailsOpen] = useState(false);\n    const [shippingOpen, setShippingOpen] = useState(false);\n    const [shippingAndReturns, setShippingAndReturns] = useState(null);\n    const [shippingAndReturnsCheck, setShippingAndReturnsCheck] = useState(false);\n    const [isScrolled, setIsScrolled] = useState(false);\n    const [isMounted, toggle] = useReducer((p) => !p, true);\n    const [checkBalanceOpen, setCheckBalanceOpen] = useQueryStringBoolean('openCBModal');\n    const currentBreakpoint = useBreakpoint();\n    useEffect(() => {\n        const handleScroll = throttle(() => {\n            if (window.scrollY > 0) {\n                setIsScrolled(true);\n            }\n            else {\n                setIsScrolled(false);\n            }\n        }, 100);\n        window.addEventListener('scroll', handleScroll);\n        return () => window.removeEventListener('scroll', handleScroll);\n    }, []);\n    // sticky behavior\n    useEffect(() => {\n        let lastScrollTop = 0;\n        let lastpos = 0;\n        const offsetScroll = 32;\n        let scrollAmout = 0;\n        let header = document.querySelector('header');\n        let firstTime = true;\n        if (currentBreakpoint < window.mqObj.md) {\n            const onScroll = () => {\n                if (firstTime) {\n                    firstTime = false;\n                    return;\n                }\n                scrollAmout = header && header.offsetHeight;\n                const translateAmount = scrollAmout + 16;\n                let st = window.pageYOffset || document.documentElement.scrollTop;\n                if (st > lastScrollTop) {\n                    if (st >= scrollAmout && st - lastpos >= offsetScroll) {\n                        lastpos = st <= 0 ? 0 : st;\n                        if (header)\n                            header.style.transform = `translateY(-${translateAmount}px)`;\n                    }\n                    // downscroll code\n                }\n                else {\n                    // upscroll code\n                    if (lastpos - st >= offsetScroll) {\n                        lastpos = st <= 0 ? 0 : st;\n                        header === null || header === void 0 ? void 0 : header.style.removeProperty('transform');\n                    }\n                }\n                lastScrollTop = st <= 0 ? 0 : st;\n            };\n            window.addEventListener('scroll', onScroll);\n            return () => {\n                header === null || header === void 0 ? void 0 : header.style.removeProperty('transform');\n                window.removeEventListener('scroll', onScroll);\n            };\n        }\n    }, [currentBreakpoint]);\n    const sendAnalyticsEvents = () => {\n        // composing subCategory as per OE-5541\n        let pageDesignValue = window.datalayerdata.pageDesign;\n        if (current.editorial && current.editorial.pageDesignerContent) {\n            pageDesignValue = 'pdp-editorial';\n        }\n        window.datalayerdata = Object.assign(Object.assign({}, window.datalayerdata), { pageCategory: 'pdp', subCategory: current.id, pageDesign: pageDesignValue ? pageDesignValue : 'pdp-standard' });\n        analytics.sendGeneralVariables();\n    };\n    useEffect(() => {\n        if (redirect.error && redirect.redirectOnError) {\n            window.location.href = redirect.redirectOnError;\n        }\n    }, [redirect]);\n    // deactivate Sprinklr chat on modal opening\n    useEffect(() => {\n        if ((typeof galleryIsOpen == 'boolean' && galleryIsOpen) || (typeof galleryIsOpen == 'number' && galleryIsOpen >= 0)) {\n            window.sprChat && window.sprChat('disable');\n        }\n        else {\n            window.sprChat && window.sprChat('enable');\n        }\n    }, [galleryIsOpen]);\n    const firstShow = useRef(true);\n    useEffect(() => {\n        // solo quando entro in PDP da una PLP (quindi dal routing client side)\n        if (firstShow.current && current) {\n            sendAnalyticsEvents();\n            analytics.productDetailViewsWithTransitions(current);\n            customEventBus.emit('PDP:loaded', {});\n            let header = document.querySelector('header');\n            header === null || header === void 0 ? void 0 : header.classList.add('header--pdp');\n            if (current.imageBackground === 'white') {\n                header === null || header === void 0 ? void 0 : header.classList.add('white-bg');\n            }\n        }\n        firstShow.current = false;\n        return () => {\n            firstShow.current = true;\n        };\n    }, []);\n    const refreshPDP = (pid, sendAnalytics) => {\n        ScrollTrigger.disable(true, true);\n        dispatch({\n            type: ProductActionTypes.FETCH_PRODUCT,\n            payload: {\n                pid,\n                sendAnalytics,\n            },\n        });\n    };\n    // handle load or refresh of the PDP\n    useEffect(() => {\n        document.documentElement.style.setProperty('--sm-first-vh', window.innerHeight + 'px');\n        if (current && pid) {\n            if (previousPid.includes(current.masterId) && pid.includes(current.masterId)) {\n                // Color change inside PDP\n                refreshPDP(pid);\n            }\n            else if (current.id != pid) {\n                // al back del browser\n                // PDP <-> PDP\n                refreshPDP(pid, 'withTransitions');\n            }\n        }\n        else if (pid) {\n            // Refresh/landing directily on PDP\n            // console.info('no current - Refresh/landing directily on PDP');\n            refreshPDP(pid, 'detail');\n        }\n        // change canonical url\n        const canonical = document.querySelector('link[rel=\"canonical\"]');\n        canonical && canonical.setAttribute('href', location.href);\n        setpreviousPid(pid);\n    }, [pid]);\n    const getSizeSchema = (variant, selectedColor) => {\n        var _a, _b, _c, _d;\n        return {\n            '@type': 'Product',\n            name: `${current === null || current === void 0 ? void 0 : current.productName} ${t('label.size')} : ${variant.displayValue}`,\n            image: (_a = current.imgs) === null || _a === void 0 ? void 0 : _a.urls,\n            description: `${current === null || current === void 0 ? void 0 : current.shortDescription} ${t('label.size')} : ${variant.displayValue}`,\n            color: selectedColor,\n            size: variant.displayValue,\n            offers: {\n                '@type': 'Offer',\n                url: `${location.href}?size=${variant.displayValue}`,\n                priceCurrency: (_c = (_b = current === null || current === void 0 ? void 0 : current.price) === null || _b === void 0 ? void 0 : _b.sales) === null || _c === void 0 ? void 0 : _c.currency,\n                price: variant.price,\n                itemCondition: 'https://schema.org/NewCondition',\n                availability: getSizeAvailability(variant, (_d = current.availability) === null || _d === void 0 ? void 0 : _d.preorder),\n            },\n        };\n    };\n    const getVariantsSchema = (variationAttributes) => {\n        const variantsSchema = [];\n        let colors = [];\n        let selectedColor;\n        variationAttributes.forEach((va) => {\n            if (va.attributeId === 'color') {\n                // Those last\n                selectedColor = va.displayValue;\n                va.values.forEach((color) => {\n                    var _a;\n                    // We only need the sizes of the other colors\n                    if (color.value !== va.value) {\n                        (_a = color.sizes) === null || _a === void 0 ? void 0 : _a.forEach((size) => {\n                            const url = location.origin + color.productUrl + `?size=${size}`;\n                            colors.push({ url: url });\n                        });\n                    }\n                });\n            }\n            else if (va.attributeId === 'size') {\n                // Those first\n                va.values.forEach((size) => {\n                    variantsSchema.push(getSizeSchema(size, selectedColor));\n                });\n            }\n        });\n        return variantsSchema.concat(colors);\n    };\n    const getProductGroupSchema = () => {\n        var _a;\n        return {\n            '@context': 'https://schema.org',\n            '@type': 'ProductGroup',\n            '@id': current === null || current === void 0 ? void 0 : current.masterId,\n            name: current === null || current === void 0 ? void 0 : current.productName,\n            image: (_a = current.imgs) === null || _a === void 0 ? void 0 : _a.urls,\n            description: current === null || current === void 0 ? void 0 : current.shortDescription,\n            brand: {\n                '@type': 'Brand',\n                name: 'Moncler',\n            },\n            productGroupID: current === null || current === void 0 ? void 0 : current.masterId,\n            variesBy: ['https://schema.org/size', 'https://schema.org/color'],\n            hasVariant: getVariantsSchema(current.variationAttributes),\n        };\n    };\n    const productSchemaData = useMemo(() => (current ? getProductGroupSchema() : undefined), [current]);\n    const getBreadcrumbSchemaData = () => {\n        return {\n            '@context': 'https://schema.org',\n            '@type': 'BreadcrumbList',\n            itemListElement: current.breadcrumbs.map((item, index) => ({\n                '@type': 'ListItem',\n                position: ++index,\n                name: item.htmlValue,\n                item: location.origin + item.url,\n            })),\n        };\n    };\n    const breadcrumbSchemaData = useMemo(() => { var _a; return (((_a = current === null || current === void 0 ? void 0 : current.breadcrumbs) === null || _a === void 0 ? void 0 : _a.length) > 0 ? getBreadcrumbSchemaData() : undefined); }, [current]);\n    // handle image loaded to start animations\n    const handleImageLoaded = () => {\n        const image = document.querySelector('.product-container .product-image img');\n        // console.info('immagine: ', image);\n        if (!image) {\n            setHeroImageLoaded(true);\n            return;\n        }\n        image.addEventListener('load', (event) => {\n            // let isLoaded = image.complete && image.naturalHeight !== 0;\n            // console.log('image loaded');\n            setHeroImageLoaded(true);\n        });\n    };\n    const setPlayButtonVideo = () => {\n        const videoPauseButton = document.querySelector('.product-video-pause');\n        if (videoPauseButton) {\n            videoPauseButton.setAttribute('aria-pressed', 'false');\n        }\n    };\n    const firstLoad = useRef(true);\n    useEffect(() => {\n        if (firstLoad.current && current) {\n            // masterId for live chat analytics event [OE-19829]\n            window.datalayerdata = Object.assign(Object.assign({}, window.datalayerdata), { masterId: current.masterId });\n            window.addEventListener('message', function (message) {\n                if (message.data && message.data.event_type === 'spottImpression') {\n                    analytics.hostsposts('hotspots view', current.masterId);\n                }\n                if (message.data && message.data.event_type === 'spottInteraction') {\n                    analytics.hostsposts('hotspots hover', current.masterId);\n                }\n            });\n            // setTimeout(() => {\n            // handleImageLoaded();\n            // }, 500);\n            // fallback per image loaded\n            setTimeout(() => {\n                if (!heroImageLoaded) {\n                    setHeroImageLoaded(true);\n                }\n            }, 3000);\n            firstLoad.current = false;\n        }\n    }, [current]);\n    // scroll top 0 nella navigazione tra PDP\n    useEffect(() => {\n        if (current && pid && previousPid2 != '' && previousPid2 != pid) {\n            // from a PDP to another by clicking on a carousel / shop the look product\n            sendAnalyticsEvents();\n            analytics.productDetailViewsWithTransitions(current);\n            shippingAndReturns && setShippingOpen(false);\n            if (!firstShow.current) {\n                window.scrollTo(0, 0);\n            }\n        }\n        setpreviousPid2(pid);\n    }, [current, pid]);\n    useEffect(() => {\n        var _a, _b, _c, _d, _e;\n        if (((_a = current === null || current === void 0 ? void 0 : current.imgs) === null || _a === void 0 ? void 0 : _a.urls) && ((_b = current === null || current === void 0 ? void 0 : current.imgs) === null || _b === void 0 ? void 0 : _b.urls.length) > 0) {\n            let newMedia = (_c = current === null || current === void 0 ? void 0 : current.imgs) === null || _c === void 0 ? void 0 : _c.urls.map((el) => el);\n            // exclude F duplicate of R on standard PDP\n            newMedia = newMedia.filter((el) => !el.includes('_F'));\n            if (current === null || current === void 0 ? void 0 : current.videos) {\n                for (const [key, value] of Object.entries(current === null || current === void 0 ? void 0 : current.videos)) {\n                    newMedia.splice(parseInt(key), 0, value);\n                }\n            }\n            // Filtro per le immagini MBM settate sulle custom preferences\n            if ((current === null || current === void 0 ? void 0 : current.isMbm) && props.mbmImageConfiguration) {\n                const mbmImageConfiguration = props.mbmImageConfiguration.split(',');\n                const isMBMPreferencesImage = (value) => {\n                    let mediaUrl;\n                    mbmImageConfiguration.forEach((el) => {\n                        if (value.includes('_' + el.trim())) {\n                            mediaUrl = value;\n                        }\n                    });\n                    return mediaUrl ? mediaUrl : false;\n                };\n                newMedia = newMedia.filter((el) => isMBMPreferencesImage(el));\n            }\n            // aggiunngo, se presenti, i media del MBM\n            if (((_e = (_d = current.mbm) === null || _d === void 0 ? void 0 : _d.palettes) === null || _e === void 0 ? void 0 : _e.length) > 0) {\n                newMedia = newMedia.concat(current.mbm.palettes.map((el) => { var _a; return `palette_${el.productVideo || ((_a = el === null || el === void 0 ? void 0 : el.productImage) === null || _a === void 0 ? void 0 : _a.path)}`; }));\n            }\n            setMedia(newMedia.map((el) => (el.startsWith('palette_') ? el.substring(8) : el)));\n            handleImageLoaded();\n            // exclude video at position 0\n            // let productGallery = newMedia.filter((url) => !url.includes('_V2'));\n        }\n    }, [(_a = current === null || current === void 0 ? void 0 : current.imgs) === null || _a === void 0 ? void 0 : _a.urls, (_b = current === null || current === void 0 ? void 0 : current.mbm) === null || _b === void 0 ? void 0 : _b.palettes]);\n    useEffect(() => {\n        var _a;\n        // add class to footer to increase space only mobile pdp\n        (_a = document.querySelector('.footer')) === null || _a === void 0 ? void 0 : _a.classList.add('footer-space-bottom');\n    });\n    const shippingAndReturnsType = useMemo(() => {\n        if (current) {\n            if (current === null || current === void 0 ? void 0 : current.isMbm) {\n                return 'mbm';\n            }\n            else if (current === null || current === void 0 ? void 0 : current.isBoutiqueExclusive) {\n                return 'boutique_exclusive';\n            }\n            else if ((current === null || current === void 0 ? void 0 : current.returnDisabled) && !(current === null || current === void 0 ? void 0 : current.isParfum)) {\n                return 'not_returnable';\n            }\n            else if (current === null || current === void 0 ? void 0 : current.isParfum) {\n                return 'parfum';\n            }\n            else {\n                return 'standard';\n            }\n        }\n        // OE-14837 Priority for content assets display\n    }, [current]);\n    useEffect(() => {\n        //if (!shippingAndReturns && shippingAndReturnsType) { removed shippingAndReturnsType because too late rendering OE-21163 }\n        if (!shippingAndReturns && shippingAndReturnsType) {\n            api.getShippingAndReturns(shippingAndReturnsType).then((data) => {\n                if (!(data === null || data === void 0 ? void 0 : data.errorMessage) && (data === null || data === void 0 ? void 0 : data.tabs)) {\n                    setShippingAndReturns(data);\n                    setShippingAndReturnsCheck(true);\n                }\n            });\n        }\n    }, [shippingAndReturnsType, current]);\n    const { promoSection, BottomSection } = useProductEditorialContents({\n        pid: 'pdp-'.concat((current === null || current === void 0 ? void 0 : current.id) || pid),\n        setDetailsOpen,\n        product: current,\n        pdContent: ((_c = current === null || current === void 0 ? void 0 : current.editorial) === null || _c === void 0 ? void 0 : _c.pageDesignerContent) ? current.editorial.pageDesignerContent : null,\n    });\n    return (React.createElement(React.Fragment, null,\n        React.createElement(Metatags, { pageMetaTags: current === null || current === void 0 ? void 0 : current.pageMetaTags, meta: current === null || current === void 0 ? void 0 : current.meta }),\n        productSchemaData && React.createElement(JsonLd, { data: productSchemaData }),\n        breadcrumbSchemaData && React.createElement(JsonLd, { data: breadcrumbSchemaData }),\n        isMounted && (React.createElement(\"div\", { className: classNames('product-container', 'product-container--hero', { 'white-bg': (current === null || current === void 0 ? void 0 : current.imageBackground) === 'white' }) },\n            React.createElement(\"div\", { className: \"a11y-action-bar\" },\n                React.createElement(\"a\", { href: \"#product-info-heading\" }, t('pdp.skiptoinfo')),\n                ((current === null || current === void 0 ? void 0 : current.id) || (current === null || current === void 0 ? void 0 : current.hasLook) || (current === null || current === void 0 ? void 0 : current.breadcrumbs)) && React.createElement(\"a\", { href: \"#product-related-content\" }, t('pdp.skiptorelated'))),\n            React.createElement(\"div\", { className: \"product-col product-col--gallery\" },\n                React.createElement(ProductImageAnimated, { direction: \"left\", imageLoaded: heroImageLoaded },\n                    React.createElement(React.Fragment, null,\n                        ((_e = (_d = current === null || current === void 0 ? void 0 : current.mbm) === null || _d === void 0 ? void 0 : _d.palettes) === null || _e === void 0 ? void 0 : _e.length) > 0 && React.createElement(\"span\", { className: \"palette-available\" }, t('mbm.paletteavailable', { 0: current.mbm.palettes.length })),\n                        React.createElement(ProductHero, { clicked: galleryIsOpen, onImageClick: setGalleryIsOpen, product: current, media: media, openVto: () => setOpenVTO(true) })))),\n            React.createElement(\"div\", { className: \"product-col product-col--selection\" },\n                React.createElement(\"div\", { className: \"product-selection-wrapper\" },\n                    React.createElement(ProductSelection, { size: props.size, contactformurl: props === null || props === void 0 ? void 0 : props.contactformurl, imageLoaded: heroImageLoaded, isScrolled: isScrolled, sizeguideOpen: sizeguideOpen, setSizeguideOpen: (open) => setSizeguideOpen(open), mbmBaa: props === null || props === void 0 ? void 0 : props.mbmBaa, openVto: () => setOpenVTO(true), setPlayButtonVideo: () => setPlayButtonVideo(), inPDP: true, setDetailsOpen: setDetailsOpen, setShippingOpen: setShippingOpen, shippingAndReturns: shippingAndReturnsCheck, openBalance: () => setCheckBalanceOpen(true), checkouturl: props.checkouturl })),\n                React.createElement(ProductDiscoverMore, { loaded: heroImageLoaded })))),\n        React.createElement(ScrollHandler, { current: current, loaded: heroImageLoaded }),\n        React.createElement(BottomSection, null),\n        React.createElement(\"div\", { className: \"product-container\", id: \"product-related-content\" },\n            (current === null || current === void 0 ? void 0 : current.hasLook) && React.createElement(ProductLook, { look: current === null || current === void 0 ? void 0 : current.look, product: current }),\n            (current === null || current === void 0 ? void 0 : current.id) && React.createElement(ProductRecommendation, { customClasses: \"pdp-recommendation\", product: current, slot: \"einstein-product-recommendations\" }),\n            (current === null || current === void 0 ? void 0 : current.id) && React.createElement(ProductRecommendation, { customClasses: \"pdp-recommendation\", product: current, slot: \"einstein-product-recommendations-2\" }),\n            (current === null || current === void 0 ? void 0 : current.breadcrumbs) && (React.createElement(\"div\", { className: \"container\" },\n                React.createElement(Breadcrumbs, { product: current })))),\n        current && (React.createElement(Drawers, { className: \"details-modal\", role: \"dialog\", isOpen: detailsOpen, onRequestClose: () => setDetailsOpen(false), contentLabel: t('pdp.detailsandcare.modal.title') },\n            React.createElement(ProductDetailsTab, { contactformurl: props === null || props === void 0 ? void 0 : props.contactformurl, product: current, imageLoaded: heroImageLoaded, sizeguideOpen: sizeguideOpen, setSizeguideOpen: (open) => setSizeguideOpen(open), aftercareurl: (props === null || props === void 0 ? void 0 : props.aftercareurl) + 'product', promobanner: promoSection }))),\n        shippingAndReturns && (React.createElement(Drawers, { className: \"details-modal\", role: \"dialog\", isOpen: shippingOpen, onRequestClose: () => setShippingOpen(false) },\n            React.createElement(ProductShippingAndReturnsTabs, { product: current, shippingAndReturns: shippingAndReturns }))),\n        React.createElement(ProductGallery, { isOpen: galleryIsOpen, scrollHeight: window.scrollY, onRequestClose: () => setGalleryIsOpen(false), product: current, media: media }),\n        props.vtoBin && (React.createElement(VtoModal, { product: current, open: openVTO, modalImage: (_f = current === null || current === void 0 ? void 0 : current.imgs) === null || _f === void 0 ? void 0 : _f.urls[0], onClose: () => setOpenVTO(false), basePath: props.basePath, vtoBin: props.vtoBin })),\n        React.createElement(GiftCardBalanceModal, { isOpen: checkBalanceOpen, pid: pid, onRequestClose: () => setCheckBalanceOpen(false) })));\n};\nexport default ProductPage;\n","export const TARGET_ORIGIN = 'https://d1ux9mupljc68q.cloudfront.net’;';\nexport const TARGET_PATH = '/1/index.html’;';\n","import { TARGET_ORIGIN } from '../../config';\nconst configKey = 'com.moncler';\nconst targetOrigin = TARGET_ORIGIN;\nasync function initializeVykingAR({ iframe, imgFile, showLoader, hideLoader, targetPath, options, selectedAccessories, loadConfig }) {\n    const { handleFeetDetection, pictureIframe, cameraIframe } = options;\n    let feetDetected = false;\n    function postConfig(config, clientWidth, clientHeight) {\n        let cameraWidth = 360;\n        let cameraHeight = 640;\n        if (clientWidth > clientHeight) {\n            cameraWidth = 640;\n            cameraHeight = 360;\n        }\n        iframe.contentWindow.postMessage({\n            type: 'VYKING_SNEAKER_WINDOW_CONFIG',\n            config: config,\n            key: configKey,\n            cameraWidth: cameraWidth,\n            cameraHeight: cameraHeight,\n            autoPlay: true,\n        }, targetOrigin);\n    }\n    function replaceAccessories(uri) {\n        iframe.contentWindow.postMessage({\n            type: 'VYKING_SNEAKER_WINDOW_REPLACE_ACCESSORIES',\n            accessoryDescriptionUrl: uri,\n        }, targetOrigin);\n    }\n    function postIframeMessage(message, transfer) {\n        iframe.contentWindow.postMessage(message, targetOrigin, transfer);\n    }\n    function startImage() {\n        showLoader();\n        createImageBitmap(imgFile).then((imageBitmap) => {\n            postIframeMessage({\n                type: 'VYKING_SNEAKER_WINDOW_START',\n                imageBitmap: imageBitmap,\n            }, [imageBitmap]);\n            imageBitmap.close();\n        });\n    }\n    async function pictureMessageHandler(event) {\n        const { data } = event;\n        switch (data.type) {\n            case 'VYKING_SNEAKER_WINDOW_WAITING_FOR_CONFIG':\n                const config = await loadConfig;\n                postConfig(config, window.innerWidth, window.innerHeight);\n                break;\n            case 'VYKING_SNEAKER_WINDOW_EXPIRY_TIME':\n                console.info(`Licence expiry date: ${data.expiryTime.toString()}`);\n                if (data.expiryTime.getTime() - new Date().getTime() < 1 * 24 * 60 * 60 * 1000) {\n                    console.error(`Expired on ${data.expiryTime.toString()}`);\n                    // fetch(configUri, {\n                    //   method: 'GET',\n                    //   cache: 'reload',\n                    // });\n                }\n                break;\n            case 'VYKING_SNEAKER_WINDOW_READY':\n                startImage();\n                break;\n            case 'VYKING_SNEAKER_WINDOW_START':\n                replaceAccessories(selectedAccessories);\n                break;\n            case 'VYKING_SNEAKER_WINDOW_FINISH':\n                hideLoader();\n                break;\n            case 'VYKING_SNEAKER_WINDOW_REPLACE_ACCESSORY_TEXTURES':\n                if (data.complete === 1) {\n                    hideLoader();\n                }\n                break;\n            case 'VYKING_SNEAKER_WINDOW_ARE_FEET_DETECTED':\n                feetDetected = true;\n                handleFeetDetection && handleFeetDetection(feetDetected);\n                break;\n            case 'VYKING_SNEAKER_WINDOW_BUSY_ERROR':\n                hideLoader();\n                break;\n            case 'VYKING_SNEAKER_WINDOW_ERROR':\n                hideLoader(true);\n                console.error(`${data.requestType} ${data.value}`);\n                break;\n        }\n    }\n    async function cameraMessageHandler(event) {\n        const { data } = event;\n        switch (data.type) {\n            case 'VYKING_SNEAKER_WINDOW_WAITING_FOR_CONFIG':\n                const config = await loadConfig;\n                postConfig(config, window.innerWidth, window.innerHeight);\n                break;\n            case 'VYKING_SNEAKER_WINDOW_EXPIRY_TIME':\n                console.info(`Licence expiry date: ${data.expiryTime.toString()}`);\n                if (data.expiryTime.getTime() - new Date().getTime() < 1 * 24 * 60 * 60 * 1000) {\n                    console.error(`Expired on ${data.expiryTime.toString()}`);\n                    // fetch(configUri, {\n                    //   method: 'GET',\n                    //   cache: 'reload',\n                    // });\n                }\n                break;\n            case 'VYKING_SNEAKER_WINDOW_READY':\n                replaceAccessories(selectedAccessories);\n                break;\n            case 'VYKING_SNEAKER_WINDOW_REPLACE_ACCESSORIES':\n                if (data.complete === 1) {\n                    hideLoader();\n                }\n                break;\n            case 'VYKING_SNEAKER_WINDOW_BUSY_ERROR':\n                hideLoader();\n                break;\n            case 'VYKING_SNEAKER_WINDOW_ERROR':\n                hideLoader(true);\n                console.error(`${data.requestType} ${data.value}`);\n                break;\n        }\n    }\n    function main() {\n        const targetUri = targetOrigin + targetPath;\n        window.onmessage = null;\n        if (pictureIframe) {\n            window.onmessage = (e) => {\n                pictureMessageHandler(e);\n            };\n        }\n        if (cameraIframe) {\n            window.onblur = () => {\n                pause();\n            };\n            window.onfocus = () => {\n                play();\n            };\n            // replaceAccessories(selectedAccessories);\n            // on ready\n            window.onmessage = (e) => {\n                if (e.data.type) {\n                    console.info('message from camera iframe: ', e.data.type);\n                }\n                cameraMessageHandler(e);\n            };\n        }\n        iframe.src = encodeURI(targetUri);\n    }\n    // Safari doesn't reload the page when navigating to it and its in the bfcache, so instead\n    // we explicitly reload the page to force the camera to be reactivated.\n    try {\n        window.onmessage = null;\n        showLoader();\n        main();\n    }\n    catch (e) {\n        console.error(e);\n        hideLoader(true);\n    }\n}\nfunction play() {\n    const iframe = document.getElementById('vyking-sneaker-window');\n    iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow.postMessage({\n        type: 'VYKING_SNEAKER_WINDOW_PLAY',\n    }, targetOrigin);\n}\nfunction pause() {\n    const iframe = document.getElementById('vyking-sneaker-window');\n    iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow.postMessage({\n        type: 'VYKING_SNEAKER_WINDOW_PAUSE',\n    }, targetOrigin);\n}\nasync function getConfig(uri) {\n    const response = await fetch(encodeURI(uri));\n    if (!response.ok) {\n        throw new Error(`Failed to load configuration from ${uri}. Status: ${response.status}`);\n    }\n    return response.arrayBuffer();\n}\nexport { getConfig, initializeVykingAR, pause, play };\n","import React, { useCallback, useEffect, useState } from 'react';\nimport api from '@common/utils/api';\nconst MiniPromo = React.lazy(() => import(/* webpackChunkName: \"component-editorial-module\" */ '@moncler/components/product/experience/MiniPromo'));\nconst EditorialModule = React.lazy(() => import(/* webpackChunkName: \"component-editorial-module\" */ '@moncler/components/product/experience/EditorialModule'));\nconst EditorialVideoPDP = React.lazy(() => import(/* webpackChunkName: \"component-editorial-video\" */ '@moncler/components/product/experience/EditorialVideoPDP'));\nconst DetailsSlider = React.lazy(() => import(/* webpackChunkName: \"component-details-slider\" */ '@moncler/components/product/experience/DetailsSlider'));\nconst DetailSlide = React.lazy(() => import(/* webpackChunkName: \"component-details-slide\" */ '@moncler/components/product/experience/DetailSlide'));\nconst VideoQuote = React.lazy(() => import(/* webpackChunkName: \"component-video-quote\" */ '@moncler/components/product/experience/VideoQuote'));\nconst editorialContentConfig = {\n    component_pdp_mini_promo: MiniPromo,\n    component_pdp_editorial_module: EditorialModule,\n    component_pdp_editorial_video: EditorialVideoPDP,\n    component_pdp_details_slider: DetailsSlider,\n    component_pdp_details_slide: DetailSlide,\n    component_pdp_editorial_video_quote: VideoQuote,\n};\nconst getEditorialComponent = (content) => {\n    if (!editorialContentConfig[content.typeid]) {\n        console.error(`Editorial component ${content.typeid} not found`);\n        return React.createElement(React.Fragment, null);\n    }\n    const Component = editorialContentConfig[content.typeid];\n    let componentregionprops = [];\n    if (content.regions) {\n        const regions = Object.values(content.regions);\n        componentregionprops = regions[0].components.map((component, index) => {\n            return getEditorialComponent(component);\n        });\n    }\n    const props = Object.assign(Object.assign(Object.assign(Object.assign({}, content), content.image), content.other), { componentregionprops });\n    return React.createElement(Component, Object.assign({}, props));\n};\nconst useProductEditorialContents = (props) => {\n    const { pid, setDetailsOpen, product, pdContent, isEditMode } = props;\n    const [promoSection, setPromoSection] = useState(null);\n    const [bottomSectionComponent, setBottomSectionComponents] = useState(null);\n    const setPageDesignerContent = useCallback((regions) => {\n        var _a;\n        if (regions) {\n            setPromoSection(null); // TODO: improve reset logic\n            setBottomSectionComponents(null);\n            if (regions.promobanner && regions.promobanner.components && ((_a = regions.promobanner.components) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n                setPromoSection(getEditorialComponent(regions.promobanner.components[0]));\n            }\n            if (regions.bottom && regions.bottom.components && regions.bottom.components.length) {\n                const bottomRegionComponents = regions.bottom.components.map((component) => {\n                    return getEditorialComponent(Object.assign(Object.assign({}, component), { other: { setDetailsOpen } }));\n                });\n                setBottomSectionComponents(bottomRegionComponents);\n            }\n        }\n    }, []);\n    useEffect(() => {\n        if (pdContent && pdContent != 'null') {\n            setPromoSection(null);\n            setBottomSectionComponents(null);\n            const { regions } = JSON.parse(pdContent);\n            setPageDesignerContent(regions);\n        }\n        else {\n            if (isEditMode) {\n                api.getPageJson(`${pid}`, false).then((data) => {\n                    if (data.page) {\n                        const { regions } = data.page;\n                        setPageDesignerContent(regions);\n                    }\n                });\n            }\n        }\n    }, [pdContent, pid]);\n    const BottomSection = useCallback(() => {\n        return React.createElement(\"div\", null, bottomSectionComponent && bottomSectionComponent.map((Section, index) => React.createElement(\"div\", { key: index + pid }, Section)));\n    }, [bottomSectionComponent, pid]);\n    return {\n        promoSection,\n        BottomSection,\n    };\n};\nexport default useProductEditorialContents;\n","import classNames from 'classnames';\nimport React from 'react';\nconst Button = (props) => {\n    const handleClick = (e) => {\n        if (props.usesDefault != undefined && !props.usesDefault && props.onClick) {\n            e.preventDefault();\n        }\n        props.onClick && props.onClick.call(this, e);\n    };\n    const handleKeyDown = (e) => {\n        if (props.usesDefault != undefined && !props.usesDefault && props.onKeyDown) {\n            e.preventDefault();\n        }\n        props.onKeyDown && props.onKeyDown.call(this, e);\n    };\n    return (React.createElement(\"button\", { ref: props.reference, onClick: handleClick, onFocus: props === null || props === void 0 ? void 0 : props.onFocus, onKeyDown: handleKeyDown, disabled: props.disabled, className: classNames('button', props.cls, props.className, { loading: props.isLoading }, { full: props.fullWidth }, { inverted: props.inverted }), type: props.type, \"aria-label\": props.ariaLabel, \"aria-expanded\": props.ariaExpanded, \"aria-haspopup\": props.ariaHaspopup, \"aria-controls\": props.ariaControls, \"aria-hidden\": props.ariaHidden, tabIndex: props.customTabIndex ? props.customTabIndex : undefined, id: props.id }, props.isLoading ? (React.createElement(React.Fragment, null,\n        React.createElement(\"div\", null))) : (React.createElement(\"span\", null, props.children))));\n};\nButton.defaultProps = {\n    cls: ['button--primary'],\n    className: '',\n};\nexport default Button;\n"],"names":["props","_a","_b","_c","pageMetaTags","Object","keys","map","key","startsWith","property","content","name","meta","hreflangs","rel","hrefLang","substring","indexOf","href","additionalMeta","src","className","draggable","alt","width","height","ariaHidden","data","type","JSON","stringify","initialValue","setQueryStringValue","value","values","window","location","search","newvalues","assign","qsValue","newurl","protocol","host","pathname","history","pushState","path","setQueryStringWithoutPageReload","onSetValue","useCallback","newValue","setValue","useState","getQueryStringValue","t","characteristics","setCharacteristics","materials","setMaterials","activities","setActivities","useEffect","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","_1","_2","_3","_4","product","grenoble","characteristicsList","waterepellent","push","waterproof","windproof","insulation","breathable","lightweight","packable","performanceComfortFit","activitiesList","grenobleActivities","skiingSnowboarding","trekkingHiking","apresSki","everyday","icons","length","materialsList","filter","icon","material","collections","characteristic","i","replace","act","toLowerCase","focusOnError","isOpen","onRequestClose","pid","modalOpen","setModalOpen","errors","setErrors","formdef","setFormdef","initialValues","setInitialValues","step","setStep","cardNumber","setCardNumber","pin","setPin","expirationDate","setExpirationDate","balance","setBalance","document","querySelectorAll","forEach","a","loadForm","addEventListener","val","then","validate","async","clearInputError","formErrors","cardNumberInput","getElementsByName","pinInput","clearCardNumber","all","clearPin","setAttribute","checkBalance","serverErrors","success","fields","dataErrors","err","expDate","catch","e","console","log","overlayClassName","contentLabel","onSubmit","decorators","render","handleSubmit","form","submitting","pristine","onChange","target","onFocus","def","autocomplete","accordionId","title","miniAccordion","onClick","disabled","cls","dispatch","breadcrumbs","shelf","state","shelfKeys","breadcrumbsList","cgid","includes","currentPage","pop","baseUrl","origin","currentPageUrl","url","item","payload","categoryId","resultsType","start","htmlValue","VtoCamera","currentBreakpoint","useBreakpoint","vykingConfig","setVykingConfig","enabledCamera","useMemo","isVtoEnabled","configUri","vtoBin","basePath","sprChat","open","VTOcode","ModalDialog","onClose","noPadding","hideHeader","Suspense","fallback","closeModal","loadConfig","modalImage","currentProduct","current","filterAttributes","attributeType","attributes","find","attribute","ID","characteristicsTextSelector","openPalette","setOpenPalette","createTitleMarkup","palette","paletteImage","Accordion","palettes","AccordionItem","autoHeight","isTitleMarkup","headerClass","subtitle","dangerouslySetInnerHTML","__html","text","image","undefined","id","characteristicsText","storesBadgesContainer","useRef","useInnerWidth","tabHead","element","link","currentTarget","analytics","masterId","gbotNormalizer","mqObj","sm","widthContainer","querySelector","offsetWidth","shippingReturnsDrawer","closest","classList","toggle","innerWidth","PromoBanner","promobanner","productDetailRef","inView","triggerOnce","renderDetails","attr","genius","productLineCode","shortDescription","longDescription","GrenobleDetails","style","isGiftCard","items","giftCardTermsURL","sizeAndFit","giftcard","isParfum","parfumAttributes","hasLed","ledPackagingImages","charger","refill","ledCase","ref","ledPackaging","ContentAsset","assetid","UUID","body","renderMbm","mbm","renderComposition","aftercareurl","compositionAndCare","description","showCareDescription","care","composition","printValuesCare","country","traceability","madeIn","firstProductDate","importedBy","isMbm","previousMaster","setpreviousMaster","hasDiscoverMore","setHasDiscoverMore","discoverMoreUrl","setDiscoverMoreUrl","technicalPage","api","errorMessage","page","perfumePageID","adidasImmPageID","loaded","imageLoaded","direction","children","promotionInfo","setPromotionInfo","campaignActive","setCampaingActive","hasFreeExpressShipping","setHasFreeExpressShipping","loginOpen","setLoginOpen","googleReady","setGoogleReady","activeCampaigns","promoFreeExpressShippingNewMembers","customerGroups","shippingAndReturns","tabs","renderPanel","tab","description_mbm","cta_text","cta_link","cta_link_mbm","cta_text_mbm","regions","shippings_methods","components","method","index","guest","price","LoginModal","incontext","reloadPage","modalStatus","updateStatus","status","buttonText","customClass","image_1_img","image_1_label","image_1_img_mobile","image_2_img","image_2_label","Lazyimg","image_2_img_mobile","faqs","faq","itemClass","faq_url","faq_label","title_analytics","easing","isSafari","navigator","userAgent","match","active","setActive","offsetY","setOffsetY","trackRef","thumbRef","initialY","currentY","trackLength","galleryBottom","scrollHandlerRef","wrapperRef","inViewRef","initialInView","fixed","setFixed","iOsLastClientY","iOsChangeDirectionCounter","iOsFirstClientY","iOsScrollDirection","setRefs","node","thumbBounds","getBoundingClientRect","y","clientHeight","removeEventListener","scrollThumbnail","scrollHandlerNeeded","dragStart","clientY","documentElement","dragMove","passive","dragEnd","once","event","isTouch","TouchEvent","touches","iOsFix","targetY","moveThumbnailTo","clampedClientY","Math","min","max","scrollTop","calculateScrollValue","preventDefault","stopPropagation","calculateThumbPosition","innerHeight","tabIndex","onMouseDown","transform","onTouchStart","Y","duration","easingFunction","callback","performance","now","elem","isNaN","from","requestAnimationFrame","scroll","timestamp","time","b","easedT","scrollTo","redirect","galleryIsOpen","setGalleryIsOpen","previousPid","setpreviousPid","previousPid2","setpreviousPid2","heroImageLoaded","setHeroImageLoaded","ssr","media","setMedia","sizeguideOpen","setSizeguideOpen","openVTO","setOpenVTO","detailsOpen","setDetailsOpen","shippingOpen","setShippingOpen","setShippingAndReturns","shippingAndReturnsCheck","setShippingAndReturnsCheck","isScrolled","setIsScrolled","isMounted","useReducer","p","checkBalanceOpen","setCheckBalanceOpen","useQueryStringBoolean","handleScroll","scrollY","lastScrollTop","lastpos","scrollAmout","header","firstTime","md","onScroll","offsetHeight","translateAmount","st","pageYOffset","removeProperty","sendAnalyticsEvents","pageDesignValue","datalayerdata","pageDesign","editorial","pageDesignerContent","pageCategory","subCategory","error","redirectOnError","firstShow","add","imageBackground","refreshPDP","sendAnalytics","ScrollTrigger","setProperty","canonical","getVariantsSchema","variationAttributes","variantsSchema","selectedColor","colors","va","attributeId","displayValue","color","sizes","size","productUrl","variant","productName","imgs","urls","offers","priceCurrency","sales","currency","itemCondition","availability","preorder","getSizeSchema","concat","productSchemaData","brand","productGroupID","variesBy","hasVariant","getProductGroupSchema","breadcrumbSchemaData","itemListElement","position","firstLoad","message","event_type","setTimeout","newMedia","el","videos","entries","splice","parseInt","mbmImageConfiguration","split","isMBMPreferencesImage","mediaUrl","trim","productVideo","productImage","handleImageLoaded","shippingAndReturnsType","isBoutiqueExclusive","returnDisabled","promoSection","BottomSection","useProductEditorialContents","pdContent","Metatags","JsonLd","hasLook","clicked","onImageClick","openVto","contactformurl","mbmBaa","setPlayButtonVideo","videoPauseButton","inPDP","openBalance","checkouturl","look","customClasses","slot","Breadcrumb","Drawers","role","ProductGallery","scrollHeight","GiftCardBalanceModal","TARGET_ORIGIN","TARGET_PATH","configKey","targetOrigin","initializeVykingAR","iframe","imgFile","showLoader","hideLoader","targetPath","options","selectedAccessories","handleFeetDetection","pictureIframe","cameraIframe","feetDetected","postConfig","config","clientWidth","cameraWidth","cameraHeight","contentWindow","postMessage","autoPlay","replaceAccessories","uri","accessoryDescriptionUrl","startImage","createImageBitmap","imageBitmap","transfer","close","onmessage","targetUri","info","expiryTime","toString","getTime","Date","complete","requestType","pictureMessageHandler","onblur","getElementById","pause","onfocus","play","cameraMessageHandler","encodeURI","main","getConfig","response","fetch","ok","Error","arrayBuffer","editorialContentConfig","component_pdp_mini_promo","component_pdp_editorial_module","component_pdp_editorial_video","component_pdp_details_slider","component_pdp_details_slide","component_pdp_editorial_video_quote","getEditorialComponent","typeid","Component","componentregionprops","component","other","isEditMode","setPromoSection","bottomSectionComponent","setBottomSectionComponents","setPageDesignerContent","bottom","bottomRegionComponents","parse","Section","Button","reference","usesDefault","call","onKeyDown","loading","isLoading","full","fullWidth","inverted","ariaLabel","ariaExpanded","ariaHaspopup","ariaControls","customTabIndex","defaultProps"],"sourceRoot":""}