{"version":3,"file":"static/js/4e618ef16525bccd644e.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/Utilities/get-dynamic-image.tsx?8e0f","webpack://mattressfirm/./src/modules/d5-mfrm-suggestion-cards/d5-mfrm-suggestion-cards-content.tsx?c665","webpack://mattressfirm/./src/modules/d5-mfrm-suggestion-cards/d5-mfrm-suggestion-cards.tsx?40ec","webpack://mattressfirm/./src/modules/d5-mfrm-suggestion-cards/d5-mfrm-suggestion-cards.view.tsx?b608","webpack://mattressfirm/./lib/d5-mfrm-suggestion-cards/module-registration.js?3494","webpack://mattressfirm/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b"],"sourcesContent":["import MsDyn365, { IImageData } from '@msdyn365-commerce/core';\r\nimport _get from 'lodash/get';\r\nimport _cloneDeep from 'lodash/cloneDeep';\r\nimport * as React from 'react';\r\n\r\ninterface IImageDimension {\r\n width: string;\r\n height: string;\r\n}\r\ninterface IImageSettings {\r\n sm: IImageDimension;\r\n md: IImageDimension;\r\n lg: IImageDimension;\r\n}\r\nexport interface IResponsiveImage {\r\n desktop: IImageData | undefined;\r\n tablet: IImageData | undefined;\r\n mobile: IImageData | undefined;\r\n defaultImg: IImageData | undefined;\r\n imageSettingViewports?: IImageSettings | undefined;\r\n}\r\n\r\nexport interface IResponsiveImageFromSeoData {\r\n desktop: IImageData | undefined;\r\n tablet: IImageData | undefined;\r\n mobile: IImageData | undefined;\r\n imageSettingViewports?: IImageSettings | undefined;\r\n}\r\n\r\nexport const getResponsiveFromSeoData = ({ desktop, tablet, mobile }: IResponsiveImageFromSeoData) => {\r\n const desktopWidth = 1025;\r\n const tabletWidth = 768;\r\n\r\n const query = {\r\n desktop: '',\r\n tablet: '',\r\n mobile: ''\r\n };\r\n\r\n // Removing resizing for the time being to discuss with Microsoft\r\n // if (imageSettingViewports) {\r\n // const { sm, md, lg } = imageSettingViewports;\r\n // query.desktop = `&w=${lg.width}&h=${lg.height}`;\r\n // query.tablet = `&w=${md.width}&h=${md.height}`;\r\n // query.mobile = `&w=${sm.width}&h=${sm.height}`;\r\n // }\r\n\r\n return (\r\n \r\n <>\r\n {desktop?.src && }\r\n {tablet?.src && }\r\n {mobile?.src && }\r\n \r\n >\r\n \r\n );\r\n\r\n};\r\n\r\n// Note Responsive Image does not use Msdyn365 Image component\r\nexport const getResponsiveImage = ({ desktop, tablet, mobile, defaultImg }: IResponsiveImage): React.ReactNode => {\r\n // Note this is a temp solution as D365 does not support dynamic images across viewports\r\n\r\n const desktopWidth = 1025;\r\n const tabletWidth = 768;\r\n const lazyload = !defaultImg?.imageSettings?.disableLazyLoad;\r\n\r\n const query = {\r\n desktop: '',\r\n tablet: '',\r\n mobile: ''\r\n };\r\n\r\n // Removing resizing for the time being to discuss with Microsoft\r\n // if (imageSettingViewports) {\r\n // const { sm, md, lg } = imageSettingViewports;\r\n // query.desktop = `&w=${lg.width}&h=${lg.height}`;\r\n // query.tablet = `&w=${md.width}&h=${md.height}`;\r\n // query.mobile = `&w=${sm.width}&h=${sm.height}`;\r\n // }\r\n\r\n const defaultImgSrc = `${defaultImg?.src}${query.desktop}${\r\n defaultImg?.imageSettings?.quality ? `&q=${defaultImg.imageSettings.quality}` : ''\r\n }`;\r\n\r\n return (\r\n \r\n {lazyload ? (\r\n <>\r\n {desktop?.src && }\r\n {tablet?.src && }\r\n {mobile?.src && }\r\n \r\n >\r\n ) : (\r\n <>\r\n {desktop?.src && }\r\n {tablet?.src && }\r\n {mobile?.src && }\r\n \r\n >\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport interface IDynamicImageProps {\r\n moduleName: string;\r\n}\r\n\r\nexport const getDynamicImageSettings = ({ moduleName }: IDynamicImageProps) => {\r\n // This logic is directly from MsDyn Image Component src builder\r\n // just applied to get dynamic image settings if they are defined\r\n const imageSettings = { viewports: undefined };\r\n const themeSettingsForModule = MsDyn365.themeSettings?.mattressfirm?.modules?.[moduleName];\r\n if (themeSettingsForModule) {\r\n const themeSettingsForLayout = themeSettingsForModule.properties.dynamic;\r\n if (themeSettingsForLayout) {\r\n const imageViewportProperties = _get(themeSettingsForLayout.properties, ['image'], { properties: imageSettings }).properties;\r\n // Clone the image viewport properties from theme settings\r\n // so that the proxy traps do not affect the global themesettings\r\n imageSettings.viewports = _cloneDeep(imageViewportProperties);\r\n }\r\n }\r\n\r\n return imageSettings.viewports;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport MsDyn365, { IGridSettings, IImageData, Image, RichText, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { getDynamicImageSettings, getResponsiveImage } from '../../Utilities/get-dynamic-image';\r\nimport { IDynamicImagesData, ISuggestionCardLinkData } from './d5-mfrm-suggestion-cards.props.autogenerated';\r\n\r\nimport * as React from 'react';\r\n\r\ninterface ISuggestionCardData {\r\n image?: IImageData | undefined;\r\n cardIndex: number;\r\n heading: RichText | undefined;\r\n content: RichText | undefined;\r\n location?: RichText | undefined;\r\n gridSettings: IGridSettings;\r\n cardLink?: ISuggestionCardLinkData[] | undefined;\r\n isHorizontalCards: boolean | undefined;\r\n useDynamicImages: boolean | undefined;\r\n dynamicImages: IDynamicImagesData | undefined;\r\n}\r\n\r\nexport default (props: ISuggestionCardData) => {\r\n const styles = 'mfrm-suggestion-cards__';\r\n const { image, location = '', heading, content, cardLink, isHorizontalCards, gridSettings, useDynamicImages, dynamicImages } = props;\r\n\r\n let currentImage;\r\n\r\n // Only use Responsive Image if Dynamic Images are defined\r\n if (dynamicImages && useDynamicImages) {\r\n currentImage = getResponsiveImage({\r\n desktop: dynamicImages?.desktopImage,\r\n tablet: dynamicImages?.tabletImage,\r\n mobile: dynamicImages?.mobileImage,\r\n defaultImg: image,\r\n imageSettingViewports: getDynamicImageSettings({ moduleName: 'd5-mfrm-suggestion-cards' })\r\n });\r\n }\r\n\r\n const handleAnalytics = (cl: ISuggestionCardLinkData) => {\r\n if (MsDyn365.isBrowser && cl) {\r\n const openLinkInNewTab = cl.openInNewTab ? '_blank' : '_self';\r\n if (cl.linkUrl.destinationUrl) {\r\n if (cl.linkText?.includes('Call Us')) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'call-engagement-content-card',\r\n event_type: 'call_engagement',\r\n event_category: 'call',\r\n event_action: 'click from Vertical Suggestion Card',\r\n event_label: 'call engagement',\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n const phoneNumber = document.querySelector('.ms-header__topbar__link.fw-700') as HTMLAnchorElement;\r\n window.location.href = phoneNumber.href;\r\n } else if (cl.linkText?.includes('Chat Online')) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'chat-widget-initiated-content-card',\r\n event_type: 'chat_click',\r\n event_category: 'chat',\r\n event_action: 'click from Vertical Suggestion Card',\r\n event_label: 'chat engagement',\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n let c2c_counter = 0;\r\n const c2c_check = setInterval(() => {\r\n c2c_counter++;\r\n\r\n // @ts-ignore // The 3rd party script may not have yet loaded and initialized\r\n if (window.embedded_svc?.domInitInProgress === true) {\r\n clearInterval(c2c_check);\r\n\r\n // Trigger click event on live help button, minimized chat button, or sidebar minimized button\r\n document\r\n .querySelectorAll(\r\n '.uiButton.helpButtonEnabled, .minimizedContainer.helpButton, .sidebarHeader.minimizedContainer'\r\n )\r\n .forEach(_elem => {\r\n _elem.dispatchEvent(new Event('click'));\r\n });\r\n } else {\r\n // Stop trying for the button after 5 seconds\r\n c2c_counter > 10 && clearInterval(c2c_check);\r\n }\r\n }, 500);\r\n } else if (cl.linkText?.includes('Find A Store')) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'store-locator-content-card',\r\n event_type: 'Store Locator',\r\n event_category: 'click from Store Locator Content Card',\r\n event_action: 'click from Sleep Expert Pick Module',\r\n event_label: 'D5 store locator engagement',\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n window.open(cl.linkUrl.destinationUrl, openLinkInNewTab);\r\n } else if (cl.linkText?.includes('Find Your Match')) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'mattress-matcher-content-card',\r\n event_category: 'mattress matcher content card',\r\n event_action: 'start button CTA click',\r\n event_label: 'home page d5',\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n window.open(cl.linkUrl.destinationUrl, openLinkInNewTab);\r\n } else if (cl.linkText?.includes('Learn More')) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'sleepdotcom-app-content-card',\r\n event_category: 'sleepdotcom app content card',\r\n event_action: `CTA click to: ${cl.linkUrl.destinationUrl}`,\r\n event_label: `from: ${window.location.href}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n window.open(cl.linkUrl.destinationUrl, openLinkInNewTab);\r\n } else {\r\n window.open(cl.linkUrl.destinationUrl, openLinkInNewTab);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent | React.MouseEvent, cl: ISuggestionCardLinkData) => {\r\n event.preventDefault();\r\n handleAnalytics(cl);\r\n };\r\n\r\n const hasOneLinkOnly = cardLink?.length === 1;\r\n\r\n const suggestionCard = (\r\n \r\n {useDynamicImages ? (\r\n {currentImage}\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {content && (\r\n \r\n )}\r\n {location && (\r\n Tom's River 3.25 mi `}\r\n />\r\n )}\r\n \r\n {cardLink && (\r\n \r\n {hasOneLinkOnly ?\r\n \r\n {cardLink[0].linkText}\r\n :\r\n <>{cardLink.map(cl => (\r\n handleClick(e, cl)}\r\n >\r\n {cl.linkText}\r\n \r\n ))}>\r\n }\r\n \r\n )}\r\n \r\n \r\n );\r\n\r\n const singleCardLink = cardLink![0].linkUrl.destinationUrl || '';\r\n\r\n return (\r\n <>\r\n {!hasOneLinkOnly ? (suggestionCard) : (\r\n handleClick(e, cardLink[0])}\r\n href={singleCardLink}\r\n >\r\n {suggestionCard}\r\n \r\n )}\r\n >\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport SuggestionCard from './d5-mfrm-suggestion-cards-content';\r\n\r\nimport { ID5MfrmSuggestionCardsData } from './d5-mfrm-suggestion-cards.data';\r\nimport { ID5MfrmSuggestionCardsProps } from './d5-mfrm-suggestion-cards.props.autogenerated';\r\n\r\nexport interface ID5MfrmSuggestionCardsViewProps extends ID5MfrmSuggestionCardsProps {\r\n suggestionCards: React.ReactNode[];\r\n}\r\n\r\n/**\r\n *\r\n * D5MfrmSuggestionCards component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass D5MfrmSuggestionCards extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n if (!this.props.config.suggestionCardsList) {\r\n return null;\r\n }\r\n\r\n const viewProps: ID5MfrmSuggestionCardsViewProps = {\r\n ...(this.props as ID5MfrmSuggestionCardsProps),\r\n suggestionCards: this._getsuggestionCards()\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n\r\n private _getsuggestionCards = (): React.ReactNode[] => {\r\n const {\r\n config: { suggestionCardsList, isHorizontalCards },\r\n context: {\r\n request: { gridSettings }\r\n }\r\n } = this.props;\r\n\r\n return suggestionCardsList.map((sc, index) => {\r\n const {suggestionCardContent, suggestionCardHeading, suggestionCardImage, suggestionCardLink, suggestionCardLocationText, useDynamicImages, dynamicImages } = sc;\r\n return (\r\n \r\n );\r\n });\r\n };\r\n}\r\n\r\nexport default D5MfrmSuggestionCards;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport _getViewPort from '../../Utilities/get-view-port';\r\nimport { ID5MfrmSuggestionCardsViewProps } from './d5-mfrm-suggestion-cards';\r\n\r\nexport default (props: ID5MfrmSuggestionCardsViewProps) => {\r\n const styles = 'mfrm-suggestion-cards__';\r\n const {\r\n config: { heading , subHeading },\r\n suggestionCards\r\n } = props;\r\n\r\n let headingDisplay = null;\r\n if (heading && heading.text) {\r\n const HeadingTag = heading.tag ? (`${heading.tag}` as keyof JSX.IntrinsicElements) : 'h2';\r\n headingDisplay = (\r\n \r\n {heading.text}\r\n \r\n );\r\n }\r\n\r\n let subHeadingDisplay = null;\r\n if (subHeading && subHeading.text) {\r\n const HeadingTag = subHeading.tag ? (`${subHeading.tag}` as keyof JSX.IntrinsicElements) : 'h3';\r\n subHeadingDisplay = (\r\n \r\n {subHeading.text}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {headingDisplay}\r\n {subHeadingDisplay}\r\n \r\n {suggestionCards}\r\n \r\n \r\n );\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['d5-mfrm-suggestion-cards'] = {\n c: () => require('partner/modules/d5-mfrm-suggestion-cards/d5-mfrm-suggestion-cards.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'd5-mfrm-suggestion-cards',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/d5-mfrm-suggestion-cards'\n });\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|d5-mfrm-suggestion-cards|d5-mfrm-suggestion-cards'] = {\n c: () => require('partner/modules/d5-mfrm-suggestion-cards/d5-mfrm-suggestion-cards.view.tsx'),\n cn: '__local__-__local__-d5-mfrm-suggestion-cards'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["getResponsiveFromSeoData","desktop","tablet","mobile","query","React","src","media","srcSet","className","alt","altText","getResponsiveImage","defaultImg","lazyload","imageSettings","disableLazyLoad","defaultImgSrc","quality","getDynamicImageSettings","moduleName","viewports","undefined","themeSettingsForModule","MsDyn365","mattressfirm","modules","themeSettingsForLayout","properties","dynamic","imageViewportProperties","_get","_cloneDeep","props","styles","image","location","heading","content","cardLink","isHorizontalCards","gridSettings","useDynamicImages","dynamicImages","currentImage","desktopImage","tabletImage","mobileImage","imageSettingViewports","handleClick","event","cl","preventDefault","openLinkInNewTab","openInNewTab","linkUrl","destinationUrl","linkText","includes","window","utag","link","event_type","event_category","event_action","event_label","event_noninteraction","phoneNumber","document","querySelector","href","c2c_counter","c2c_check","setInterval","embedded_svc","domInitInProgress","clearInterval","querySelectorAll","forEach","_elem","dispatchEvent","Event","open","handleAnalytics","hasOneLinkOnly","length","suggestionCard","Image","RichTextComponent","text","Button","key","title","map","onClick","e","singleCardLink","D5MfrmSuggestionCards","constructor","_getsuggestionCards","config","suggestionCardsList","context","request","this","sc","index","suggestionCardContent","suggestionCardHeading","suggestionCardImage","suggestionCardLink","suggestionCardLocationText","SuggestionCard","cardIndex","render","viewProps","suggestionCards","renderView","subHeading","headingDisplay","HeadingTag","tag","subHeadingDisplay","binding","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}