{"version":3,"file":"js/461.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/components/common/ErrorBox.tsx","webpack:///./assets/common/src/components/common/Metatags.tsx","webpack:///./assets/common/src/components/error/ErrorModal.tsx","webpack:///./assets/common/src/components/listing/Breadcrumb.tsx","webpack:///./assets/common/src/utils/JsonLd.tsx","webpack:///./assets/common/src/utils/stringUtils.ts","webpack:///./assets/common/src/utils/urlutils.ts","webpack:///./assets/stone/src/components/product/ProductTilesRail.tsx","webpack:///./assets/stone/src/components/product/ProductTilesRailNavigation.tsx","webpack:///./assets/stone/src/components/storylisting/Story.tsx","webpack:///./assets/stone/src/components/storylisting/StoryListing.tsx","webpack:///./assets/stone/src/hooks/useProductsList.ts","webpack:///./assets/stone/src/scripts/contexts/ProductTilesListContext.ts","webpack:///./assets/stone/src/ui/button/ButtonPlayPause.tsx","webpack:///./assets/stone/src/ui/button/IconButton.tsx","webpack:///./assets/stone/src/ui/icon/Icon.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React from 'react';\nconst ErrorBox = (props) => {\n if (!props.errors || props.errors.length === 0 || props.errors.every((err) => err === '')) {\n return React.createElement(React.Fragment, null);\n }\n return (React.createElement(\"div\", { className: classNames('globalerrors', 'invalid-feedback', props.className), role: \"alert\" }, props.errors.map((e, i) => (React.createElement(\"div\", { key: i }, (e || '').toString())))));\n};\nexport default ErrorBox;\n","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 ModalDialog from '@ui/modal/ModalDialog';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nconst ErrorModal = (props) => {\n let { t } = useTranslation();\n return props.message ? (React.createElement(ModalDialog, { isOpen: true, overlayClassName: \"mobile-visible\", className: \"modal--fixed-small\", onRequestClose: () => props.onClose(), contentLabel: props.label ? props.label : t('label.sorry') },\n React.createElement(\"div\", { role: \"alert\", dangerouslySetInnerHTML: { __html: props.message } }))) : (React.createElement(React.Fragment, null));\n};\nexport default ErrorModal;\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';\nimport { useLangChecker } from '@common/utils/i18n';\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\", { ref: useLangChecker }, 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};\nconst BackHistory = (props) => {\n const { t } = useTranslation();\n return (React.createElement(Button, { type: \"button\", inverted: props.inverted, cls: [], onClick: () => {\n var _a;\n (_a = window.history) === null || _a === void 0 ? void 0 : _a.back();\n }, \"aria-label\": props.staticLabel || t('button-back'), className: props.className },\n React.createElement(React.Fragment, null,\n \"< \",\n props.staticLabel || t('button-back'))));\n};\nexport { Back, BackHistory };\nexport default Breadcrumbs;\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","export const slugify = (text) => text.toLowerCase().split(' ').join('-');\nexport const getElementFromHtmlString = (htmlString, selector) => {\n var _a;\n let textVal = null;\n let div = document.createElement('div');\n div.innerHTML = htmlString;\n textVal = (_a = div.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.innerHTML;\n return textVal;\n};\n// FIXME queste cose vanno fatte a backend, non qui\nexport const calculateDateforJP = (date) => {\n if (!date)\n return;\n const splitted = date.split('.');\n const year = splitted.pop();\n const days = splitted.shift();\n if (year.length == 4 && window.country == 'JP') {\n splitted.splice(0, 0, year);\n splitted.splice(2, 0, days);\n return splitted.join('.');\n }\n else {\n return date;\n }\n};\nexport const validateEmail = (email) => {\n return /^[\\w.%+-]+@[\\w.-]+\\.[\\w]{2,6}$/.test(email);\n};\nexport const capitalizeFirstLetter = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\nexport const getZeroPadNumber = (_number, digits = 2) => {\n return _number.toString().length >= digits ? _number.toString() : _number.toString().padStart(digits, '0');\n};\n// REF :: https://stackoverflow.com/questions/3942878/how-to-decide-font-color-in-white-or-black-depending-on-background-color\nexport const useStringRgbContrast = (rgbCssString, dark = 'rgb(0,0,0)', light = 'rgb(255,255,255)') => {\n if (!rgbCssString)\n return dark;\n //parso la stringa RGB\n let rgb = rgbCssString.replace('rgb(', '').replace(')', '').split(',');\n if (rgb.length < 3)\n return dark;\n //trasformo rgb in srgb\n let srgb = rgb.map((n) => {\n let c = Number(n) / 255;\n if (c <= 0.04045)\n return c / 12.92;\n return Math.pow((c + 0.055) / 1.055, 2.4);\n });\n //calcolo la luminescenza\n const L = 0.2126 * srgb[0] + 0.7152 * srgb[1] + 0.0722 * srgb[2];\n //calcolo se il colore di contrasto รจ light\n const useDark = L > Math.sqrt(1.05 * 0.05) - 0.05;\n // console.log(`%c${rgbCssString}`, `background-color: ${rgbCssString}; color: ${useDark ? '#000' : '#FFF'}; padding:4px; border: solid 1px red;`, L, srgb, rgb);\n //ritorno la stringa passata come parametro\n return useDark ? dark : light;\n};\nexport const getRandomUUID = (prefix) => {\n var _a, _b;\n let uuid = ((_a = window.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) && ((_b = window.crypto) === null || _b === void 0 ? void 0 : _b.randomUUID());\n if (!uuid)\n uuid = Math.random().toString(26);\n return `${prefix || ''}${uuid}`;\n};\n","/**\n *\n * @function updateURLParameter\n * update url parameter\n *\n * @example\n * //http://localhost:3000?category=primary&page=2\n * const urlParams = new URLSearchParams(location.search);\n * const currentPage = urlParams.get('page');\n * const nextPageUrl = updateURLParameter(location.href, 'page', currentPage++);\n * //http://localhost:3000?category=primary&page=3\n *\n * @param {string} url - url to update\n * @param param - param key\n * @param paramVal - param new value\n *\n * @returns {string} newUrl - newUrl with new value\n */\nexport const addURLParameter = (url, param, paramVal) => {\n if (url.indexOf('?') > -1) {\n return url + '&' + param + '=' + paramVal;\n }\n else {\n return url + '?' + param + '=' + paramVal;\n }\n};\nexport const addURLParameters = (baseUrl, queryParams) => {\n let newUrl = baseUrl;\n for (const [key, value] of Object.entries(queryParams)) {\n newUrl = addURLParameter(newUrl, key, value);\n }\n return newUrl;\n};\nexport const updateURLParameter = (url, param, paramVal) => {\n let newAdditionalURL = '';\n let tempArray = url.split('?');\n let baseURL = tempArray[0];\n let additionalURL = tempArray[1];\n let temp = '';\n if (additionalURL) {\n tempArray = additionalURL.split('&');\n for (let i = 0; i < tempArray.length; i++) {\n if (tempArray[i].split('=')[0] != param) {\n newAdditionalURL += temp + tempArray[i];\n temp = '&';\n }\n }\n }\n let rows_txt = temp + '' + param + '=' + paramVal;\n return baseURL + '?' + newAdditionalURL + rows_txt;\n};\n/**\n *\n * @function siteUrl\n * return the url stored as sirng in window.siteUrls if exists\n *\n * @param {string} urlName - the URL name in `siteUrls`\n *\n * @param {string} params - the params to add on result url\n *\n * @returns {string} urlString - the url or undefined if missing\n */\nexport const siteUrl = (urlName, ...params) => {\n if (!window.siteUrls)\n return undefined;\n let url = window.siteUrls[urlName];\n /* WITH PARAMS */\n if (params && params.length) {\n for (let i = 0; i < params.length / 2; i++) {\n const key = params[i * 2] || '';\n if (!!key) {\n const value = params[i * 2 + 1] || '';\n url = addURLParameter(url, key.toString(), value.toString());\n }\n }\n }\n return url;\n};\n","import React, { Suspense, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport ProductTilesListContext from '@stone/scripts/contexts/ProductTilesListContext';\nimport useMediaQueries from '@stone/hooks/useMediaQueries';\nimport { compileListName } from '@stone/utils/analytics';\nimport { getRandomUUID } from '@common/utils/stringUtils';\nimport ProductTile from '@stone/components/product/ProductTile';\nimport ProductTilesRailNavigation from './ProductTilesRailNavigation';\nimport useProductsList from '@stone/hooks/useProductsList';\nimport customEventBus from '@common/scripts/libs/eventBus';\nconst ProductTilesCarousel = React.lazy(() => import('@stone/components/product/ProductTilesCarousel'));\nconst LatestCarousel = React.lazy(() => import('../lastest/LatestCarousel'));\nconst ProductTilesRail = (props) => {\n // ANCHOR - HOOKS --------------------------------------------------------------------\n const { isMobile } = useMediaQueries();\n const { t } = useTranslation();\n // ANCHOR - USE REF --------------------------------------------------------------------\n const railContainer = useRef(null);\n // ANCHOR - USE STATE --------------------------------------------------------------------\n const [UUID] = useState(props.uuid || getRandomUUID());\n // ANCHOR - USE MEMO --------------------------------------------------------------------\n const isCarousel = useMemo(() => {\n return props.railType == 'CAROUSEL' || (props.railType == 'MOBILECAROUSEL' && isMobile) || props.railType == 'LATEST';\n }, [props.railType]);\n // const [products, setProducts] = useState([]);\n const ListContext = useContext(ProductTilesListContext);\n const railContextValue = useMemo(() => {\n if (!ListContext) {\n return {\n analyticsData: {\n item_list_name: compileListName(props.analyticsName || (props.railType == 'LATEST' && 'the latest') || 'editorial'),\n },\n };\n }\n return ListContext;\n }, []);\n const { products, getProducts, resetProducts, parseCategory, title, recomName } = useProductsList(railContextValue.analyticsData.item_list_name, props.limit, props.product, ListContext === null || ListContext === void 0 ? void 0 : ListContext.productList, {\n noTrackInps: props.railType === 'EDITORIALTILE',\n });\n const category = useMemo(() => {\n return parseCategory(props);\n }, [props.productTiles]);\n //check if context already exists\n const railClass = () => {\n return classNames({\n 'grid-container--3tiles': props.railType == 'EDITORIALTILE',\n 'grid-container': props.railType !== 'EDITORIALTILE',\n });\n };\n const wrapperClass = () => {\n return classNames(props.classname || 'container no-overflow-container', 'productTiles-rail', {\n latest_carousel: props.railType == 'LATEST',\n 'editorial-rail': props.railType == 'EDITORIALTILE',\n 'mobilecarousel-rail': props.railType == 'MOBILECAROUSEL',\n 'carousel-rail': props.railType == 'CAROUSEL',\n 'hasheader-rail': hasHeader,\n });\n };\n const customImage = (product) => {\n if (!product.assetOverride)\n return null;\n if (props.railType === 'EDITORIALTILE') {\n return product.assetOverride.plpeditorial;\n }\n if (props.pageType === 'PLP') {\n return product.assetOverride.plp;\n }\n };\n const railTitle = useMemo(() => {\n return props.title || title;\n }, [props.title, title]);\n // products fetch effect\n // priority rule\n // productsMultiline -> category -> recommenderId\n useEffect(() => {\n if (category) {\n getProducts(category);\n customEventBus.on('refresh:recommender', (args) => {\n if (args.handle === props.slot || (Array.isArray(args.handle) && args.handle.includes(props.slot))) {\n getProducts(category);\n }\n });\n }\n return () => {\n resetProducts();\n customEventBus.off('refresh:recommender', () => { });\n };\n }, [category, props.slot]);\n const generateKey = (data, i) => {\n return (props.keyGenerator && props.keyGenerator(data, i)) || data.uuid || i;\n };\n const hasHeader = !!railTitle || !!props.url || (!!props.autoplay && props.railType === 'LATEST') || props.forceHeader;\n const renderRail = useCallback(() => {\n if (props.railType == 'CAROUSEL' || (props.railType == 'MOBILECAROUSEL' && isMobile)) {\n return (React.createElement(Suspense, { fallback: React.createElement(React.Fragment, null) },\n React.createElement(ProductTilesCarousel, { products: products, headingLevel: (railTitle && 'h3') || 'h2', tileType: props.tileType || 'RECS', pageType: props.pageType, recommenderId: props === null || props === void 0 ? void 0 : props.recommenderId, wishlistShareEnabled: props.wishlistShareEnabled, uuid: UUID })));\n }\n if (props.railType == 'LATEST') {\n return (React.createElement(Suspense, { fallback: React.createElement(React.Fragment, null) },\n React.createElement(LatestCarousel, { uuid: UUID, products: products })));\n }\n return (React.createElement(\"ul\", { className: railClass() }, products === null || products === void 0 ? void 0 : products.map((product, i) => {\n var _a;\n return (React.createElement(\"li\", { key: generateKey(product, i) },\n React.createElement(ProductTile, { wishlist: ((_a = props.wishlist) === null || _a === void 0 ? void 0 : _a.length) && props.wishlist, updateWishlist: props.updateWishlist, type: props.tileType || 'RECS', headingLevel: (railTitle && 'h3') || 'h2', pageType: props.pageType, recommender: props === null || props === void 0 ? void 0 : props.recommenderId, product: product, index: i, wishlistShareEnabled: props.wishlistShareEnabled, inPublicWishlist: props.inPublicWishlist, fullExpanded: !!props.wishlist, customImage: customImage(product) })));\n })));\n }, [products]);\n if (!(products === null || products === void 0 ? void 0 : products.length))\n return React.createElement(React.Fragment, null);\n return (React.createElement(\"div\", { className: wrapperClass(), ref: railContainer },\n hasHeader && (React.createElement(\"div\", null,\n React.createElement(\"div\", { className: \"rail-topbar row\" },\n React.createElement(\"div\", { className: \"col-10 col-lg-16 rail-title\" },\n React.createElement(\"h2\", { className: \"font__title\", tabIndex: -1 }, railTitle)),\n !isMobile && (React.createElement(\"div\", { className: classNames('col-lg-fill rail-links', { 'text-right': !isCarousel }) }, props.url && (React.createElement(\"a\", { className: \"button button--tertiary\", \"aria-label\": props.urlAriaLabel, href: props.url },\n React.createElement(\"span\", null, props.urlText))))),\n isCarousel && (React.createElement(\"div\", { className: \"col-14 col-lg-4\" },\n React.createElement(ProductTilesRailNavigation, { autoplay: props.autoplay, uuid: UUID })))))),\n (products === null || products === void 0 ? void 0 : products.length) === 0 ? (React.createElement(React.Fragment, null, t('label.loading'))) : !ListContext ? (React.createElement(ProductTilesListContext.Provider, { value: railContextValue }, renderRail())) : ((recomName && React.createElement(\"section\", { \"data-recommender\": recomName }, renderRail())) || renderRail()),\n isMobile && (React.createElement(\"div\", { className: \"rail-links\" }, props.url && (React.createElement(\"a\", { className: \"button button--tertiary\", \"aria-label\": props.urlAriaLabel, href: props.url },\n React.createElement(\"span\", null, props.urlText)))))));\n};\nProductTilesRail.defaultProps = {\n railType: 'STANDARD',\n};\nexport default ProductTilesRail;\n","import React, { useLayoutEffect, useRef } from 'react';\nimport IconButton from '@stone/ui/button/IconButton';\nimport ButtonPlayPause from '@stone/ui/button/ButtonPlayPause';\nimport customEventBus from '@common/scripts/libs/eventBus';\nimport classNames from 'classnames';\nconst ProductTilesRailNavigation = (props) => {\n const swiperRef = useRef(null);\n const helperRef = useRef(null);\n useLayoutEffect(() => {\n const uuid = props.uuid;\n const carouselinit = (data) => {\n swiperRef.current = data === null || data === void 0 ? void 0 : data.swiper;\n helperRef.current = data === null || data === void 0 ? void 0 : data.helper;\n };\n customEventBus.on(`carouselinit:${uuid}`, carouselinit);\n return () => {\n customEventBus.off(`carouselinit:${uuid}`, carouselinit);\n };\n });\n const onClick = (index) => {\n var _a;\n (_a = helperRef.current) === null || _a === void 0 ? void 0 : _a.pauseCarousel();\n setTimeout(() => {\n var _a, _b;\n index > 0 ? (_a = swiperRef.current) === null || _a === void 0 ? void 0 : _a.slideNext(500) : (_b = swiperRef.current) === null || _b === void 0 ? void 0 : _b.slidePrev(500);\n }, 100);\n };\n return (React.createElement(\"div\", { className: classNames('rail-navigation', props.classNames) },\n props.autoplay && React.createElement(ButtonPlayPause, { initialState: 'pause', refUUID: props.uuid }),\n React.createElement(\"div\", { className: \"rail-navitation--actions\" },\n React.createElement(IconButton, { onClick: () => {\n onClick(-1);\n }, family: \"10\", icon: \"left-chevron\", type: 'button', className: `prev-${props.uuid}`, hideborder: true }),\n React.createElement(IconButton, { onClick: () => {\n onClick(1);\n }, family: \"10\", icon: \"right-chevron\", type: 'button', className: `next-${props.uuid}`, hideborder: true }))));\n};\nexport default ProductTilesRailNavigation;\n","import Image from '@stone/ui/image/Image';\nimport React, { useMemo } from 'react';\nconst Story = (props) => {\n var _a, _b;\n const emailPresence = props.emailLabel && props.emailLabel;\n const phonePresence = props.phoneLabel && props.phoneNumber;\n const data = useMemo(() => {\n if (props.data || props.custom)\n return Object.assign(Object.assign(Object.assign({}, props), props.data), props === null || props === void 0 ? void 0 : props.custom);\n return Object.assign({}, props);\n }, [props]);\n return (React.createElement(\"div\", { className: \"story\" },\n React.createElement(Image, { src: (_a = data.image) === null || _a === void 0 ? void 0 : _a.path, srcMobile: (_b = data.imageMobile) === null || _b === void 0 ? void 0 : _b.path, alt: data.imgAlt }),\n React.createElement(\"div\", { className: \"story__content\" },\n React.createElement(\"h3\", { className: \"story__content-title\" }, data.title),\n data.typeid === 'component_story' && data.subtitle && React.createElement(\"p\", { className: \"story__content-description\" }, data.subtitle),\n data.typeid === 'component_story_contacts' && (phonePresence || emailPresence) && (React.createElement(\"div\", { className: \"story__content-description\" },\n emailPresence && (React.createElement(\"a\", { href: `mailto:${data.emailAddress}` },\n data.emailLabel,\n \" \",\n data.emailAddress)),\n phonePresence && (React.createElement(\"a\", { href: `tel:${data.phoneNumber}` },\n data.phoneLabel,\n \" \",\n data.phoneNumber))))),\n data.link && data.linkText && (React.createElement(\"div\", { className: \"story__link\" },\n React.createElement(\"a\", { href: data.link, \"aria-label\": data.linkA11yText },\n React.createElement(\"span\", { \"aria-hidden\": !!data.linkA11yText || null }, data.linkText))))));\n};\nexport default Story;\n","import React from 'react';\nimport Story from './Story';\nimport useMediaQueries from '@stone/hooks/useMediaQueries';\nimport SwiperCore, { Navigation, A11y, Keyboard } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport Icon from '@stone/ui/icon/Icon';\nimport { useTranslation } from 'react-i18next';\nSwiperCore.use([Keyboard, Navigation, A11y]);\nconst StoryListing = (props) => {\n const { isMobile } = useMediaQueries();\n const { t } = useTranslation();\n const swiperProps = {\n watchOverflow: true,\n slidesPerView: 6 / 5,\n spaceBetween: 12,\n navigation: {\n prevEl: '.story-navigation--prev',\n nextEl: '.story-navigation--next',\n },\n };\n const renderNavigation = () => (React.createElement(\"div\", { className: \"navigation\" },\n React.createElement(\"button\", { className: \"button story-navigation--prev\", \"aria-label\": t('carousel.prevslidemessage') },\n React.createElement(Icon, { name: \"left-chevron\", family: \"10\" })),\n React.createElement(\"button\", { className: \"button story-navigation--next\", \"aria-label\": t('carousel.nextslidemessage') },\n React.createElement(Icon, { name: \"right-chevron\", family: \"10\" }))));\n const renderCarousel = () => {\n var _a;\n return (React.createElement(Swiper, Object.assign({}, swiperProps), ((_a = props.stories) === null || _a === void 0 ? void 0 : _a.length) &&\n props.stories.map((story) => (React.createElement(SwiperSlide, { key: story.ID || story.id },\n React.createElement(Story, Object.assign({}, story)))))));\n };\n const renderGrid = () => (React.createElement(\"div\", { className: \"row story-listing__row\" }, props === null || props === void 0 ? void 0 : props.stories.map((story) => (React.createElement(\"div\", { className: \"col-16 col-lg-8\", key: story.ID || story.id },\n React.createElement(Story, Object.assign({}, story)))))));\n return (React.createElement(\"div\", { className: \"story-listing\" },\n React.createElement(\"div\", { className: \"container\" },\n React.createElement(\"div\", { className: \"story-listing__title\" },\n React.createElement(\"h2\", { className: \"font__title\" }, props.title),\n isMobile && renderNavigation()),\n isMobile ? renderCarousel() : renderGrid())));\n};\nexport default StoryListing;\n","import { useCallback, useState } from 'react';\nimport axios from 'axios';\nimport api from '@common/utils/api';\nimport analytics from '@stone/utils/analytics';\nimport einsteinutils from '@common/utils/einsteinutils';\nconst useProductsList = (itemListName, limit, product, productList, options) => {\n const [products, setProducts] = useState([]);\n const [title, setTitle] = useState();\n const [loading, setLoading] = useState(true);\n const [recomName, setRecomName] = useState();\n const _limit = limit || 12;\n const sendAnalytics = useCallback((products) => {\n if ((products === null || products === void 0 ? void 0 : products.length) && itemListName && !(options === null || options === void 0 ? void 0 : options.noTrackInps)) {\n analytics.productImpressions({ products: products, index: 0, isScroll: true, item_list_name: itemListName });\n }\n }, [itemListName]);\n const cancelTokenSource = axios.CancelToken.source();\n const parseCategory = (category) => {\n var _a;\n return Object.assign(Object.assign({}, category), { recommender: category.recommender || category.recommenderId || category.reccomender, products_ids: (_a = ((category === null || category === void 0 ? void 0 : category.products_multiline) || (category === null || category === void 0 ? void 0 : category.productsMultiline) || category.listIds)) === null || _a === void 0 ? void 0 : _a.split(/\\r?\\n/), slot: category.slot });\n };\n const parseCategories = (categories) => {\n const arr = JSON.parse(categories);\n const newArr = [];\n arr.forEach((category) => {\n newArr.push(parseCategory(category));\n });\n return newArr;\n };\n const getProducts = async (category) => {\n var _a;\n if (category === null || category === void 0 ? void 0 : category.productTiles) {\n setProducts(category === null || category === void 0 ? void 0 : category.productTiles);\n setLoading(false);\n sendAnalytics(category === null || category === void 0 ? void 0 : category.productTiles);\n }\n else if ((_a = category === null || category === void 0 ? void 0 : category.products_ids) === null || _a === void 0 ? void 0 : _a.length) {\n const ids = category.products_ids.slice(0, _limit);\n await api.getProductTiles(ids).then((data) => {\n setProducts(data);\n setLoading(false);\n sendAnalytics(data);\n });\n }\n else if (category.category) {\n await api.searchProducts({ id: category.category, pageSize: _limit }).then((data) => {\n setProducts(data.products);\n setLoading(false);\n sendAnalytics(data.products);\n });\n }\n else if (category.recommender) {\n einsteinutils.productRecommendations(category.recommender, (rec) => {\n setProducts(rec.products);\n setLoading(false);\n sendAnalytics(rec.products);\n }, cancelTokenSource);\n }\n else if (category.slot) {\n einsteinutils.productRecommendationsFromSlot(category.slot, (recomName) => {\n setRecomName(recomName);\n }, (rec) => {\n var _a;\n const recommendedAreChanged = JSON.stringify(products === null || products === void 0 ? void 0 : products.map((el) => el.id).sort()) !== JSON.stringify((_a = rec === null || rec === void 0 ? void 0 : rec.products) === null || _a === void 0 ? void 0 : _a.map((el) => el.id).sort());\n if (recommendedAreChanged) {\n // best way to decode special characters\n let txt = document.createElement('textarea');\n txt.innerHTML = rec.displayMessage;\n setTitle(txt.value);\n setProducts(rec.products);\n sendAnalytics(rec.products);\n setLoading(false);\n }\n }, cancelTokenSource, product, productList);\n }\n else {\n // no products will be fetched\n setLoading(false);\n }\n };\n const resetProducts = () => {\n setProducts(null);\n cancelTokenSource.cancel();\n };\n return {\n products: products,\n getProducts: getProducts,\n loading: loading,\n resetProducts: resetProducts,\n parseCategories: parseCategories,\n parseCategory: parseCategory,\n title: title,\n recomName: recomName,\n };\n};\nexport default useProductsList;\n","import { createContext } from 'react';\nconst ProductTilesListcontext = createContext(null);\nexport default ProductTilesListcontext;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport customEventBus from '@common/scripts/libs/eventBus';\nimport Button from './Button';\nimport Icon from '../icon/Icon';\nimport classNames from 'classnames';\nimport { debounce } from '@common/utils/functions';\nimport { useLangChecker } from '@common/utils/i18n';\nconst ButtonPlayPause = (props) => {\n const [buttonState, setButtonState] = useState(props.initialState);\n const [waitResponse, setWaitResponse] = useState(false);\n const { t } = useTranslation();\n const updateStatus = (data) => {\n setButtonState(data.status);\n setWaitResponse(false);\n };\n //autoplay listener\n useEffect(() => {\n let uuid = props.refUUID;\n if (!!uuid) {\n customEventBus.on(`playerstatuschange:${uuid}`, updateStatus);\n }\n return () => {\n customEventBus.off(`playerstatuschange:${uuid}`, updateStatus);\n };\n }, []);\n const togglePlay = () => {\n if (waitResponse)\n return false;\n setWaitResponse(true);\n customEventBus.emit(`toggleplaypause:${props.refUUID}`, { uuid: props.refUUID, lockpause: true });\n };\n return (React.createElement(Button, { className: \"button--playpause\", cls: ['button--quaternary'], type: \"button\", ariaLabel: t('button.playpauseA11y'), ariaPressed: buttonState == 'play' ? true : false, onClick: debounce(togglePlay, 500) },\n React.createElement(React.Fragment, null,\n React.createElement(Icon, { family: '16', name: buttonState }),\n React.createElement(\"span\", { className: classNames('button--playpause_label', { 'visually-hidden': props.hidelabel }) }, (buttonState === 'pause' && t('button.pauseshort')) || React.createElement(\"span\", { ref: useLangChecker }, t('button.playshort'))))));\n};\nButtonPlayPause.defaultProps = {\n initialState: 'play',\n};\nexport default ButtonPlayPause;\n","import React from 'react';\nimport Icon from '../icon/Icon';\nimport Button from './Button';\nimport classNames from 'classnames';\nconst IconButton = (props) => {\n return (React.createElement(Button, Object.assign({ cls: classNames('button--icon', { hideborder: props.hideborder }) }, props),\n React.createElement(Icon, { name: `${props.icon}`, inverted: props.inverted, ariaHidden: true, family: props.family || '16' })));\n};\nexport default IconButton;\n","import React from 'react';\nconst Icon = (props) => {\n const icon = `${props.family}-${props.name}${props.inverted ? '-white' : ''}`;\n return React.createElement(\"span\", { \"aria-label\": props.ariaLabel, \"aria-hidden\": true, className: `icon icon--${icon} ${props.autoSize ? 'auto-size' : ''}` });\n};\nIcon.defaultProps = {\n family: '10',\n inverted: false,\n ariaHidden: false,\n};\nexport default Icon;\n"],"names":["props","errors","length","every","err","className","role","map","e","i","key","toString","_a","_b","_c","pageMetaTags","Object","keys","startsWith","property","content","name","meta","hreflangs","rel","hrefLang","substring","indexOf","href","additionalMeta","t","message","isOpen","overlayClassName","onRequestClose","onClose","contentLabel","label","dangerouslySetInnerHTML","__html","BackHistory","type","inverted","cls","onClick","window","history","back","staticLabel","_d","_e","dispatch","breadcrumbs","shelf","state","search","shelfKeys","breadcrumbsList","product","cgid","includes","currentPage","pop","baseUrl","location","origin","currentPageUrl","url","item","payload","categoryId","resultsType","start","htmlValue","data","JSON","stringify","getElementFromHtmlString","htmlString","selector","textVal","div","document","createElement","innerHTML","querySelector","calculateDateforJP","date","splitted","split","year","days","shift","country","splice","join","validateEmail","email","test","capitalizeFirstLetter","string","charAt","toUpperCase","slice","getZeroPadNumber","_number","digits","padStart","getRandomUUID","prefix","uuid","crypto","randomUUID","Math","random","addURLParameter","param","paramVal","addURLParameters","queryParams","newUrl","value","entries","siteUrl","urlName","params","siteUrls","ProductTilesCarousel","LatestCarousel","ProductTilesRail","isMobile","railContainer","useRef","UUID","useState","isCarousel","useMemo","railType","ListContext","useContext","railContextValue","analyticsData","item_list_name","analyticsName","products","getProducts","resetProducts","parseCategory","title","recomName","limit","productList","noTrackInps","category","productTiles","customImage","assetOverride","plpeditorial","pageType","plp","railTitle","useEffect","args","handle","slot","Array","isArray","generateKey","keyGenerator","hasHeader","autoplay","forceHeader","renderRail","useCallback","Suspense","fallback","headingLevel","tileType","recommenderId","wishlistShareEnabled","wishlist","updateWishlist","recommender","index","inPublicWishlist","fullExpanded","classname","latest_carousel","ref","tabIndex","urlAriaLabel","urlText","defaultProps","swiperRef","helperRef","useLayoutEffect","carouselinit","current","swiper","helper","pauseCarousel","setTimeout","slideNext","slidePrev","classNames","initialState","refUUID","family","icon","hideborder","emailPresence","emailLabel","phonePresence","phoneLabel","phoneNumber","custom","assign","Image","src","image","path","srcMobile","imageMobile","alt","imgAlt","typeid","subtitle","emailAddress","link","linkText","linkA11yText","useMediaQueries","useTranslation","swiperProps","watchOverflow","slidesPerView","spaceBetween","navigation","prevEl","nextEl","Icon","stories","story","ID","id","itemListName","options","setProducts","setTitle","loading","setLoading","setRecomName","_limit","sendAnalytics","isScroll","cancelTokenSource","reccomender","products_ids","products_multiline","productsMultiline","listIds","async","ids","then","pageSize","rec","el","sort","txt","displayMessage","cancel","parseCategories","categories","arr","parse","newArr","forEach","push","ProductTilesListcontext","createContext","ButtonPlayPause","buttonState","setButtonState","waitResponse","setWaitResponse","updateStatus","status","ariaLabel","ariaPressed","lockpause","hidelabel","ariaHidden","autoSize"],"sourceRoot":""}