{"version":3,"file":"js/3411.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/utils/JsonLd.tsx","webpack:///./assets/stone/src/components/storelocator/StoreSummary.tsx","webpack:///./assets/stone/src/components/storelocator/StoreSections.tsx","webpack:///./assets/stone/src/components/storelocator/StoreServices.tsx","webpack:///./assets/stone/src/hooks/useStoresServices.ts","webpack:///./assets/stone/src/components/storelocator/StoresNearby.tsx","webpack:///./assets/stone/src/components/storelocator/StorePage.tsx","webpack:///./assets/stone/src/hooks/useMediaQueries.tsx"],"sourcesContent":["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 analytics from '@utils/analytics';\nimport React from 'react';\nimport StoreGetDirections from '@components/storelocator/StoreGetDirections';\nconst StoreSummary = (props) => {\n const { store } = props;\n return (React.createElement(\"div\", { className: \"store-page__info row\" },\n React.createElement(\"div\", { className: \"col-lg-8\" },\n React.createElement(\"h2\", { className: \"font__title store-name\" }, store.name),\n React.createElement(StoreGetDirections, { store: store, className: \"button button--secondary full store__summary__directions\" }))));\n};\nexport default StoreSummary;\n","import { useLangChecker } from '@common/utils/i18n';\nimport React from 'react';\nexport const StorePageSection = (props) => {\n const renderTitle = () => (React.createElement(React.Fragment, null, props.introSection ? (React.createElement(\"h1\", { className: \"font__title store-page__section-title\", ref: useLangChecker }, props.title)) : (React.createElement(\"h2\", { className: \"font__title store-page__section-title\", ref: useLangChecker }, props.title))));\n return (React.createElement(\"section\", { className: \"store-page__section\", id: props.id },\n React.createElement(\"div\", { className: \"container\" },\n React.createElement(\"div\", { className: \"row section__content\" },\n React.createElement(\"div\", { className: \"col-24 col-lg-5 col-xxl-4 first-col\" }, renderTitle()),\n React.createElement(\"div\", { className: \"col-24 col-lg-14 col-xxl-12 offset-xxl-2 last-col\" }, props.children)))));\n};\nexport const StorePageInnerSection = (props) => {\n const TitleTag = `${props.titleTag || (props.hasIndexes ? 'p' : 'h3')}`;\n const renderTitle = () => (React.createElement(React.Fragment, null,\n React.createElement(TitleTag, { className: \"font__title store-page__inner-section-title\" }, props.title)));\n return (React.createElement(\"section\", { className: \"store-page__inner-section\" },\n React.createElement(\"div\", { className: \"row section__content\" },\n React.createElement(\"div\", { className: \"col-24 col-lg-4 first-col\" }, renderTitle()),\n React.createElement(\"div\", { className: \"col-24 col-lg-20 last-col\" }, props.children))));\n};\n","import useMediaQueries from '@stone/hooks/useMediaQueries';\nimport { useStoreServices } from '@stone/hooks/useStoresServices';\nimport React from 'react';\nimport { StorePageInnerSection } from './StoreSections';\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';\nimport { useLangChecker } from '@common/utils/i18n';\nSwiperCore.use([Keyboard, Navigation, A11y]);\nconst StoreServices = (props) => {\n const { isMobile } = useMediaQueries();\n const { t } = useTranslation();\n const services = useStoreServices(props.store);\n const swiperProps = {\n watchOverflow: true,\n slidesPerView: 6 / 5,\n spaceBetween: 12,\n navigation: {\n prevEl: '.services-navigation--prev',\n nextEl: '.services-navigation--next',\n },\n };\n const renderNavigation = () => (React.createElement(\"div\", { className: \"navigation\" },\n React.createElement(\"button\", { className: \"button services-navigation--prev\", \"aria-label\": t('carousel.prevslidemessage') },\n React.createElement(Icon, { name: \"left-chevron\", family: \"10\" })),\n React.createElement(\"button\", { className: \"button services-navigation--next\", \"aria-label\": t('carousel.nextslidemessage') },\n React.createElement(Icon, { name: \"right-chevron\", family: \"10\" }))));\n const renderList = () => (React.createElement(React.Fragment, null, services.map((service, i) => (React.createElement(StorePageInnerSection, { title: (i + 1).toString().padStart(2, '0'), key: service.key, hasIndexes: true },\n React.createElement(\"h3\", { className: \"font__title service-title\", ref: useLangChecker }, service.title),\n React.createElement(\"p\", null, service.desc))))));\n const renderCarousel = () => (React.createElement(React.Fragment, null,\n renderNavigation(),\n React.createElement(Swiper, Object.assign({}, swiperProps), services.map((service, i) => (React.createElement(SwiperSlide, { key: `slide-service-${service.key}`, className: \"store-page__services-slide\" },\n React.createElement(\"p\", { className: \"font__title service-index\" }, (i + 1).toString().padStart(2, '0')),\n React.createElement(\"p\", { className: \"font__title service-title\" }, service.title),\n React.createElement(\"p\", { className: \"description\" }, service.desc)))))));\n return React.createElement(React.Fragment, null, (services === null || services === void 0 ? void 0 : services.length) && React.createElement(\"div\", { className: \"store-page__services\" }, isMobile ? renderCarousel() : renderList()));\n};\nexport default StoreServices;\n","import { t } from 'i18next';\nimport { useEffect, useState } from 'react';\nimport { sortBy } from 'lodash';\nexport const useStoreServices = (store) => {\n const [services, setServices] = useState();\n const servicesMap = {\n clickAndReserve: {\n order: 1,\n title: t('store.clickAndReserve.title'),\n desc: t('store.clickAndReserve.desc'),\n },\n clickFromStore: {\n order: 2,\n title: t('store.clickFromStore.title'),\n desc: t('store.clickFromStore.desc'),\n },\n pickUpInStore: {\n order: 3,\n title: t('store.pickUpInStore.title'),\n desc: t('store.pickUpInStore.desc'),\n },\n returnInStore: {\n order: 4,\n title: t('store.returnInStore.title'),\n desc: t('store.returnInStore.desc'),\n },\n exchangeInStore: {\n order: 5,\n title: t('store.exchangeinstore.title'),\n desc: t('store.exchangeinstore.desc'),\n },\n bookAnAppointment: {\n order: 6,\n title: t('store.bookanappointment.title'),\n desc: t('store.bookanappointment.desc'),\n },\n distantSale: {\n order: 7,\n title: t('store.distantSale.title'),\n desc: t('store.distantSale.desc'),\n },\n GarmentKit: {\n order: 8,\n title: t('store.GarmentKit.title'),\n desc: t('store.GarmentKit.desc'),\n },\n personalizationRoom: {\n order: 9,\n title: t('store.personalizationRoom.title'),\n desc: t('store.personalizationRoom.desc'),\n },\n liveBoutique: {\n order: 10,\n title: t('store.liveBoutique.title'),\n desc: t('store.liveBoutique.desc'),\n },\n };\n useEffect(() => {\n if (store === null || store === void 0 ? void 0 : store.storeServices) {\n const availableServices = store === null || store === void 0 ? void 0 : store.storeServices;\n const servicesKeys = Object.keys(availableServices);\n const arr = [];\n if (servicesKeys.length) {\n servicesKeys.map((service) => {\n arr.push({\n key: service,\n title: servicesMap[service].title,\n desc: servicesMap[service].desc,\n });\n });\n }\n const sortedArr = sortBy(arr, (service) => servicesMap[service.key].order);\n setServices(sortedArr);\n }\n }, [store]);\n return services;\n};\n","import React from 'react';\nimport { StorePageInnerSection } from './StoreSections';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nconst StoresNearby = (props) => {\n var _a;\n const { t } = useTranslation();\n const { baseUrl } = useSelector((state) => state.storelocator);\n if (!((_a = props.stores) === null || _a === void 0 ? void 0 : _a.length))\n return null;\n return (React.createElement(\"div\", { className: \"store-page__nearby-list\" }, props.stores.map((store) => (React.createElement(\"div\", { className: \"store-page__nearby-store\", id: `nearby-store-${store.ID}`, key: `nearby-store-${store.ID}` },\n React.createElement(StorePageInnerSection, { title: store.name },\n React.createElement(\"p\", null, store.address1)),\n React.createElement(StorePageInnerSection, { title: t('store.details'), titleTag: \"h4\" },\n (store.storetype || store.email || store.phone) && (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"store-page__nearby-infos\" },\n store.storetype && React.createElement(\"p\", { className: \"font__subtitle\" }, store.storetype),\n store.phone && (React.createElement(\"p\", null,\n t('label.phone'),\n ' ',\n React.createElement(\"a\", { className: \"contact-link\", href: `tel:${store.phone}` }, store.phone))),\n store.email && (React.createElement(\"p\", null,\n t('label.email'),\n ' ',\n React.createElement(\"a\", { className: \"contact-link\", href: `tel:${store.email}` }, store.email)))))),\n React.createElement(\"div\", { className: \"links\" },\n React.createElement(\"a\", { className: \"button button--tertiary\", href: `${baseUrl}/storelocator/${store.slug}` },\n React.createElement(\"span\", null, t('button.viewdetails'))),\n React.createElement(\"a\", { className: \"button button--tertiary\", href: `${baseUrl}/storelocator` },\n React.createElement(\"span\", null, t('store.findothers'))))))))));\n};\nexport default StoresNearby;\n","import Metatags from '@components/common/Metatags';\nimport StoreLocatorMap from '@components/storelocator/StoreLocatorMap';\nimport { StoreLocatorActionTypes } from '@state/features/common.types';\nimport { currentStoreSelector } from '@state/features/storelocator.selectors';\nimport JsonLd from '@utils/JsonLd';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router';\nimport StoreBreadcrumb from '@components/storelocator/StoreBreadcrumb';\nimport StoreSummary from '@stone/components/storelocator/StoreSummary';\nimport { StorePageInnerSection, StorePageSection } from './StoreSections';\nimport { t } from 'i18next';\nimport StoreAddress from '@components/storelocator/StoreAddress';\nimport StoreServices from './StoreServices';\nimport StoresNearby from './StoresNearby';\nconst StorePage = (props) => {\n var _a;\n const { store, country, city } = useParams();\n const dispatch = useDispatch();\n useEffect(() => {\n if (store) {\n const slug = `${country}/${city}/${store}`;\n dispatch({ type: StoreLocatorActionTypes.FETCH_STORE_DETAILS, payload: slug });\n }\n }, []);\n const storedetail = useSelector(currentStoreSelector);\n if (!storedetail) {\n return React.createElement(React.Fragment, null);\n }\n return (React.createElement(\"div\", { className: \"store-page\" },\n React.createElement(Metatags, { pageMetaTags: storedetail.pageMetaTags, meta: storedetail.meta }),\n React.createElement(JsonLd, { data: {\n '@context': 'https://schema.org',\n '@type': 'Store',\n image: storedetail.image && false ? [storedetail.image] : [props.storedetailimage],\n // doesn't have to be a valid url, only a stable ID with the form of an url\n '@id': `http://store.moncler.com/${storedetail.ID}`,\n name: storedetail.name,\n // TODO openingHoursSpecification\n address: {\n '@type': 'PostalAddress',\n streetAddress: storedetail.address1,\n addressLocality: storedetail.city,\n addressRegion: storedetail.stateCode,\n postalCode: storedetail.postalCode,\n addressCountry: (_a = storedetail.countryCode) === null || _a === void 0 ? void 0 : _a.value,\n },\n geo: {\n '@type': 'GeoCoordinates',\n latitude: storedetail.latitude,\n longitude: storedetail.longitude,\n },\n url: `${window.homeurl}/storelocator/${storedetail.slug}`,\n telephone: storedetail.phone,\n } }),\n React.createElement(StorePageSection, { title: t('store.title'), id: \"intro\", introSection: true },\n React.createElement(StoreBreadcrumb, { store: storedetail, hideStoreName: true }),\n React.createElement(StoreSummary, { store: storedetail }),\n React.createElement(StoreLocatorMap, Object.assign({}, props, { localMap: true, stores: [storedetail], currentStore: storedetail }))),\n React.createElement(StorePageSection, { title: t('store.boutiqueinformation'), id: \"infos\" },\n React.createElement(StorePageInnerSection, { title: t('store.address') },\n React.createElement(StoreAddress, { store: storedetail })),\n storedetail.storetype && (React.createElement(StorePageInnerSection, { title: t('store.type') },\n React.createElement(\"p\", null, storedetail.storetype))),\n storedetail.storeHours && (React.createElement(StorePageInnerSection, { title: t('label.openinghours') }, storedetail.storeHours.map((sh) => (React.createElement(\"p\", { key: sh.day },\n sh.day,\n React.createElement(\"br\", null),\n sh.text)))))),\n (storedetail.phone || storedetail.email) && (React.createElement(StorePageSection, { title: t('store.contactinformation'), id: \"contacts\" },\n storedetail.phone && (React.createElement(StorePageInnerSection, { title: t('label.phone') },\n React.createElement(\"a\", { href: `tel:${storedetail.phone}`, className: \"contact-link\" }, storedetail.phone),\n React.createElement(\"p\", { className: \"phone-note\" },\n \"*\",\n t('storelocator.hasDOSService')))),\n storedetail.email && (React.createElement(StorePageInnerSection, { title: t('label.email') },\n React.createElement(\"a\", { href: `mailto:${storedetail.email}`, className: \"contact-link\" }, storedetail.email))))),\n storedetail.hasInStoreServices && (React.createElement(StorePageSection, { title: t('store.storeservices'), id: \"services\" },\n React.createElement(StoreServices, { store: storedetail }))),\n storedetail.hasNearbyStores && (React.createElement(StorePageSection, { title: t('store.nearby'), id: \"services\" },\n React.createElement(StoresNearby, { stores: storedetail.nearbyStores })))));\n};\nexport default StorePage;\n","import { throttle } from 'lodash';\nimport { useLayoutEffect, useEffect, useRef, useState } from 'react';\nconst REFLOW_CAP = 400;\nconst getInitialBreakpointValue = () => {\n // get initial breakpoint is called before the page is fully loaded and innerWith may be 0. windows.mqObj may not be set\n var _a;\n const mediaQueries = window.mqObj;\n const documentWidth = window.innerWidth || ((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.width);\n if (documentWidth == 0 || !mediaQueries) {\n return;\n }\n const filtered = Object.keys(mediaQueries).filter((key) => mediaQueries[key] <= documentWidth);\n const initalBr = filtered.length ? mediaQueries[filtered[filtered.length - 1]] : mediaQueries['xs'];\n // console.info('[getInitialBreakpointValue]: ', documentWidth, initalBr);\n return initalBr;\n};\nconst getReflowValue = () => {\n var _a;\n const documentHeight = window.innerHeight || ((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height);\n if (documentHeight == 0) {\n return;\n }\n return documentHeight < REFLOW_CAP ? 399 : REFLOW_CAP;\n};\nconst mediaQueries = Object.assign({ ' {\n const [breakpoint, setBreakpoint] = useState(getInitialBreakpointValue());\n const [breakpointHeight, setBreakpointHeight] = useState(getReflowValue());\n const [isTouch, setIsTouch] = useState(false);\n // const [isMotionReduced, setIsMotionReduced] = useState(false);\n const firstRender = useRef(true);\n function detectTouchscreen() {\n if (window.PointerEvent && 'maxTouchPoints' in navigator) {\n // if Pointer Events are supported, just check maxTouchPoints\n if (navigator.maxTouchPoints > 0) {\n setIsTouch(true);\n }\n }\n else {\n // no Pointer Events...\n if (window.matchMedia && window.matchMedia('(any-pointer:coarse)').matches) {\n // check for any-pointer:coarse which mostly means touchscreen\n setIsTouch(true);\n }\n else if (window.TouchEvent || 'ontouchstart' in window) {\n // last resort - check for exposed touch events API / event handler\n setIsTouch(true);\n }\n }\n }\n const getCurrentBreakpoint = () => {\n var _a;\n const documentWidth = window.innerWidth || ((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.width);\n if (documentWidth == 0) {\n return;\n }\n const filtered = Object.keys(mediaQueries).filter((key) => mediaQueries[key] <= documentWidth);\n return mediaQueries[filtered[filtered.length - 1]];\n };\n useEffect(() => {\n if (firstRender.current) {\n // setBreakpoint(window.innerWidth);\n firstRender.current = false;\n detectTouchscreen();\n }\n }, []);\n useLayoutEffect(() => {\n const handleResize = throttle(() => {\n const currentBr = getCurrentBreakpoint();\n if (currentBr && currentBr !== breakpoint) {\n setBreakpoint(currentBr);\n }\n const currentHBr = getReflowValue();\n if (currentHBr && currentHBr !== breakpointHeight) {\n setBreakpointHeight(currentHBr);\n }\n }, 200);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [breakpoint, breakpointHeight]);\n return {\n //@ts-ignore disable-next-line\n isTightMobile: breakpoint <= window.mqObj.xs,\n //@ts-ignore disable-next-line\n isMobile: breakpoint < window.mqObj.lg,\n //@ts-ignore disable-next-line\n isTablet: breakpoint >= window.mqObj.sm && breakpoint < window.mqObj.lg,\n //@ts-ignore disable-next-line\n isSmallDesktop: breakpoint >= window.mqObj.md,\n //@ts-ignore disable-next-line\n isDesktop: breakpoint >= window.mqObj.lg,\n //@ts-ignore disable-next-line\n isWideDesktop: breakpoint >= window.mqObj.xxl,\n isTouch: isTouch,\n isReflow: breakpointHeight < REFLOW_CAP,\n };\n};\nexport default useMediaQueries;\n"],"names":["data","type","JSON","stringify","props","store","className","name","StoreGetDirections","StorePageSection","id","introSection","ref","title","children","StorePageInnerSection","TitleTag","titleTag","hasIndexes","isMobile","useMediaQueries","t","useTranslation","services","setServices","useState","servicesMap","clickAndReserve","order","desc","clickFromStore","pickUpInStore","returnInStore","exchangeInStore","bookAnAppointment","distantSale","GarmentKit","personalizationRoom","liveBoutique","useEffect","storeServices","availableServices","servicesKeys","Object","keys","arr","length","map","service","push","key","sortedArr","sortBy","useStoreServices","swiperProps","watchOverflow","slidesPerView","spaceBetween","navigation","prevEl","nextEl","Icon","family","assign","i","toString","padStart","_a","baseUrl","state","storelocator","stores","ID","address1","storetype","email","phone","href","slug","country","city","dispatch","payload","storedetail","Metatags","pageMetaTags","meta","JsonLd","image","storedetailimage","address","streetAddress","addressLocality","addressRegion","stateCode","postalCode","addressCountry","countryCode","value","geo","latitude","longitude","url","window","homeurl","telephone","StoreBreadcrumb","hideStoreName","StoreLocatorMap","localMap","currentStore","StoreAddress","storeHours","sh","day","text","hasInStoreServices","hasNearbyStores","nearbyStores","getReflowValue","documentHeight","innerHeight","visualViewport","height","mediaQueries","mqObj","breakpoint","setBreakpoint","documentWidth","innerWidth","width","filtered","filter","getInitialBreakpointValue","breakpointHeight","setBreakpointHeight","isTouch","setIsTouch","firstRender","useRef","current","PointerEvent","navigator","maxTouchPoints","matchMedia","matches","TouchEvent","useLayoutEffect","handleResize","throttle","currentBr","getCurrentBreakpoint","currentHBr","addEventListener","removeEventListener","isTightMobile","xs","lg","isTablet","sm","isSmallDesktop","md","isDesktop","isWideDesktop","xxl","isReflow"],"sourceRoot":""}