{"version":3,"file":"static/js/f4823de31db7f19e55de.bundle.js","mappings":";kMA6BO,MAAMA,EAA2BC,IAA6D,IAA5D,QAAEC,EAAO,OAAEC,EAAM,OAAEC,GAAqCH,EAC7F,MAGMI,EACO,GADPA,EAEM,GAFNA,EAGM,GAWZ,OACIC,EAAAA,cAAA,eACIA,EAAAA,cAAAA,EAAAA,SAAA,MACKJ,MAAAA,OAAO,EAAPA,EAASK,MAAOD,EAAAA,cAAA,UAAQE,MAAO,sBAAkCC,OAAQ,GAAGP,EAAQK,MAAMF,OAC1FF,MAAAA,OAAM,EAANA,EAAQI,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAAiCC,OAAQ,GAAGN,EAAOI,MAAMF,OACvFD,MAAAA,OAAM,EAANA,EAAQG,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAAiCC,OAAQ,GAAGL,EAAOG,MAAMF,MACxFC,EAAAA,cAAA,OAAKI,UAAU,+BAA+BD,OAAQP,MAAAA,OAAO,EAAPA,EAASK,IAAKI,IAAKT,MAAAA,OAAO,EAAPA,EAASU,aAQrFC,EAAqBC,IAA+E,IAAAC,EAAAC,EAAA,IAA9E,QAAEd,EAAO,OAAEC,EAAM,OAAEC,EAAM,WAAEa,GAA8BH,EAGxF,MAEMI,IAAYD,MAAAA,GAAyB,QAAfF,EAAVE,EAAYE,qBAAa,IAAAJ,GAAzBA,EAA2BK,iBAEvCf,EACO,GADPA,EAEM,GAFNA,EAGM,GAWNgB,EAAgB,GAAGJ,MAAAA,OAAU,EAAVA,EAAYV,MAAMF,IACvCY,MAAAA,GAAyB,QAAfD,EAAVC,EAAYE,qBAAa,IAAAH,GAAzBA,EAA2BM,QAAU,MAAML,EAAWE,cAAcG,UAAY,KAGpF,OACIhB,EAAAA,cAAA,eACKY,EACGZ,EAAAA,cAAAA,EAAAA,SAAA,MACKJ,MAAAA,OAAO,EAAPA,EAASK,MAAOD,EAAAA,cAAA,UAAQE,MAAO,sBAAgC,cAAe,GAAGN,EAAQK,MAAMF,OAC/FF,MAAAA,OAAM,EAANA,EAAQI,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAA+B,cAAe,GAAGL,EAAOI,MAAMF,OAC5FD,MAAAA,OAAM,EAANA,EAAQG,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAA+B,cAAe,GAAGJ,EAAOG,MAAMF,MAC7FC,EAAAA,cAAA,OACIC,IAAI,6EAA4E,WACtEc,EACVV,IAAKM,MAAAA,OAAU,EAAVA,EAAYL,QACjBF,UAAU,cAIlBJ,EAAAA,cAAAA,EAAAA,SAAA,MACKJ,MAAAA,OAAO,EAAPA,EAASK,MAAOD,EAAAA,cAAA,UAAQE,MAAO,sBAAkCC,OAAQ,GAAGP,EAAQK,MAAMF,OAC1FF,MAAAA,OAAM,EAANA,EAAQI,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAAiCC,OAAQ,GAAGN,EAAOI,MAAMF,OACvFD,MAAAA,OAAM,EAANA,EAAQG,MAAOD,EAAAA,cAAA,UAAQE,MAAO,qBAAiCC,OAAQ,GAAGL,EAAOG,MAAMF,MACxFC,EAAAA,cAAA,OAAKG,OAAQY,EAAeV,IAAKM,MAAAA,OAAU,EAAVA,EAAYL,aAWpDW,EAA0BC,IAAuC,IAAAC,EAAA,IAAtC,WAAEC,GAAgCF,EAGtE,MAAML,EAAgB,CAAEQ,eAAWC,GAC7BC,EAA+C,QAAzBJ,EAAGK,EAAAA,GAASC,qBAAa,IAAAN,GAAc,QAAdA,EAAtBA,EAAwBO,oBAAY,IAAAP,GAAS,QAATA,EAApCA,EAAsCQ,eAAO,IAAAR,OAAA,EAA7CA,EAAgDC,GAC/E,GAAIG,EAAwB,CACxB,MAAMK,EAAyBL,EAAuBM,WAAWC,QACjE,GAAIF,EAAwB,CACxB,MAAMG,EAA0BC,GAAAA,CAAKJ,EAAuBC,WAAY,CAAC,SAAU,CAAEA,WAAYhB,IAAiBgB,WAGlHhB,EAAcQ,UAAYY,GAAAA,CAAWF,IAI7C,OAAOlB,EAAcQ,2HC1GzB,QAAgBa,IACZ,MAAMC,EAAS,2BACT,MAAEC,EAAK,SAAEC,EAAW,GAAE,QAAEC,EAAO,QAAEC,EAAO,SAAEC,EAAQ,kBAAEC,EAAiB,aAAEC,EAAY,iBAAEC,EAAgB,cAAEC,GAAkBV,EAE/H,IAAIW,EAGAD,GAAiBD,IACjBE,GAAetC,EAAAA,EAAAA,IAAmB,CAC9BX,QAASgD,MAAAA,OAAa,EAAbA,EAAeE,aACxBjD,OAAQ+C,MAAAA,OAAa,EAAbA,EAAeG,YACvBjD,OAAQ8C,MAAAA,OAAa,EAAbA,EAAeI,YACvBrC,WAAYyB,EACZa,uBAAuBhC,EAAAA,EAAAA,IAAwB,CAAEG,WAAY,gCAIrE,MAoGM8B,EAAcA,CAACC,EAA0GC,KAC3HD,EAAME,iBArGeD,CAAAA,IACrB,GAAI5B,EAAAA,GAAS8B,WAAaF,EAAI,CAC1B,MAAMG,EAAmBH,EAAGI,aAAe,SAAW,QACvB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA/B,GAAIT,EAAGU,QAAQC,eACX,GAAe,QAAfN,EAAIL,EAAGY,gBAAQ,IAAAP,GAAXA,EAAaQ,SAAS,WAAY,CAE9B,SAAUC,QAEVC,KAAKC,KAAK,CACNjB,MAAO,+BACPkB,WAAY,kBACZC,eAAgB,OAChBC,aAAc,sCACdC,YAAa,kBACbC,qBAAsB,UAG9B,MAAMC,EAAcC,SAASC,cAAc,mCAC3CV,OAAO7B,SAASwC,KAAOH,EAAYG,UAChC,GAAe,QAAfnB,EAAIN,EAAGY,gBAAQ,IAAAN,GAAXA,EAAaO,SAAS,eAAgB,CAEzC,SAAUC,QAEVC,KAAKC,KAAK,CACNjB,MAAO,qCACPkB,WAAY,aACZC,eAAgB,OAChBC,aAAc,sCACdC,YAAa,kBACbC,qBAAsB,UAG9B,IAAIK,EAAc,EAClB,MAAMC,EAAYC,aAAY,KAAK,IAAAC,EAC/BH,KAG+C,KAAxB,QAAnBG,EAAAf,OAAOgB,oBAAY,IAAAD,OAAA,EAAnBA,EAAqBE,oBACrBC,cAAcL,GAGdJ,SACKU,iBACG,kGAEHC,SAAQC,IACLA,EAAMC,cAAc,IAAIC,MAAM,cAItCX,EAAc,IAAMM,cAAcL,KAEvC,UACe,QAAfpB,EAAIP,EAAGY,gBAAQ,IAAAL,GAAXA,EAAaM,SAAS,iBAEzB,SAAUC,QAEVC,KAAKC,KAAK,CACNjB,MAAO,6BACPkB,WAAY,gBACZC,eAAgB,wCAChBC,aAAc,sCACdC,YAAa,8BACbC,qBAAsB,UAG9BP,OAAOwB,KAAKtC,EAAGU,QAAQC,eAAgBR,IACrB,QAAfK,EAAIR,EAAGY,gBAAQ,IAAAJ,GAAXA,EAAaK,SAAS,oBAEzB,SAAUC,QAEVC,KAAKC,KAAK,CACNjB,MAAO,gCACPmB,eAAgB,gCAChBC,aAAc,yBACdC,YAAa,eACbC,qBAAsB,UAG9BP,OAAOwB,KAAKtC,EAAGU,QAAQC,eAAgBR,IACrB,QAAfM,EAAIT,EAAGY,gBAAQ,IAAAH,GAAXA,EAAaI,SAAS,eAEzB,SAAUC,QAEVC,KAAKC,KAAK,CACNjB,MAAO,+BACPmB,eAAgB,+BAChBC,aAAc,iBAAiBnB,EAAGU,QAAQC,iBAC1CS,YAAa,SAASN,OAAO7B,SAASwC,OACtCJ,qBAAsB,UAG9BP,OAAOwB,KAAKtC,EAAGU,QAAQC,eAAgBR,IAEvCW,OAAOwB,KAAKtC,EAAGU,QAAQC,eAAgBR,KAQnDoC,CAAgBvC,IAGdwC,EAAsC,KAArBpD,MAAAA,OAAQ,EAARA,EAAUqD,QAE3BC,EACF9F,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,QAAaM,EAAoB,cAAgB,MAC/DE,EACG3C,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,mBAAwBM,EAAoB,cAAgB,MAAOI,GAEtF7C,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,mBAAwBM,EAAoB,cAAgB,MAC3EzC,EAAAA,cAAC+F,EAAAA,GAAKC,OAAAC,OAAA,GACE7D,EAAK,CACT/B,IAAK+B,MAAAA,OAAK,EAALA,EAAO9B,QACZF,UAAW,GAAG+B,SAAcM,EAAoB,cAAgB,KAChExC,KAAKmC,MAAAA,OAAK,EAALA,EAAOnC,MAAO,GACnByC,aAAcA,MAI1B1C,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,kBAAuBM,EAAoB,cAAgB,MAC1EzC,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,2BACfnC,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,iBACfnC,EAAAA,cAACkG,EAAAA,GAAiB,CAACC,KAAM7D,KAE5BC,GACGvC,EAAAA,cAACkG,EAAAA,GAAiB,CAAC9F,UAAW,GAAG+B,gBAAqBM,EAAoB,cAAgB,KAAM0D,KAAM5D,IAEzGF,GACGrC,EAAAA,cAACkG,EAAAA,GAAiB,CACd9F,UAAW,GAAG+B,iBACdgE,KAAM,GAAG9D,2FAIpBG,GACGxC,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,mBAAwBM,EAAoB,cAAgB,MAC1EmD,EACG5F,EAAAA,cAACoG,EAAAA,OAAM,CACHC,IAAK7D,EAAS,GAAGwB,SACjB5D,UAAW,sBAAqBqC,EAAoB,cAAgB,IACpE6D,MAAO9D,EAAS,GAAGwB,UAElBxB,EAAS,GAAGwB,UAEjBhE,EAAAA,cAAAA,EAAAA,SAAA,KAAGwC,EAAS+D,KAAInD,GACZpD,EAAAA,cAACoG,EAAAA,OAAM,CACHC,IAAKjD,EAAGY,SACR5D,UAAW,sBAAqBqC,EAAoB,cAAgB,IACpE6D,MAAOlD,EAAGY,SACVwC,QAASC,GAAKvD,EAAYuD,EAAGrD,IAE5BA,EAAGY,gBAU9B0C,EAAiBlE,EAAU,GAAGsB,QAAQC,gBAAkB,GAE9D,OACI/D,EAAAA,cAAAA,EAAAA,SAAA,KACE4F,EACE5F,EAAAA,cAAA,KAAGI,UAAU,sCAEVoG,QAAUC,GAAMvD,EAAYuD,EAAGjE,EAAS,IACxCqC,KAAM6B,GAEJZ,GANWA,ykBC9L5B,MAAMa,UAA8B3G,EAAAA,cAApC4G,kCAcY,KAAAC,oBAAsB,KAC1B,MACIC,QAAQ,oBAAEC,EAAmB,kBAAEtE,GAC/BuE,SACIC,SAAS,aAAEvE,KAEfwE,KAAKhF,MAET,OAAO6E,EAAoBR,KAAI,CAACY,EAAIC,KAChC,MAAM,sBAACC,EAAqB,sBAAEC,EAAqB,oBAAEC,EAAmB,mBAAEC,EAAkB,2BAAEC,EAA0B,iBAAE9E,EAAgB,cAAEC,GAAkBuE,EAC9J,OACInH,EAAAA,cAAC0H,EAAc,CACXrB,IAAKe,EACLO,UAAWP,EACX1E,aAAcA,EACdJ,QAASgF,EACTlF,MAAOmF,EACPhF,QAAS8E,EACThF,SAAUoF,EACVjF,SAAUgF,EACV/E,kBAAmBA,EACnBE,iBAAkBA,EAClBC,cAAeA,QAnCxBgF,SACH,IAAKV,KAAKhF,MAAM4E,OAAOC,oBACnB,OAAO,KAGX,MAAMc,EAASC,EAAAA,EAAA,GACPZ,KAAKhF,OAAiE,IAC1E6F,gBAAiBb,KAAKL,wBAG1B,OAAOK,KAAKhF,MAAM8F,WAAWH,IAgCrC,mECtDA,QAAgB3F,IACZ,MAAMC,EAAS,2BAEX2E,QAAQ,QAAExE,EAAO,WAAG2F,GAAY,gBAChCF,GACA7F,EAEJ,IAAIgG,EAAiB,KACrB,GAAI5F,GAAWA,EAAQ6D,KAAM,CACzB,MAAMgC,EAAa7F,EAAQ8F,IAAO,GAAG9F,EAAQ8F,MAAwC,KACrFF,EACIlI,EAAAA,cAAA,OAAKI,UAAU,OACXJ,EAAAA,cAACmI,EAAU,CAAC/H,UAAW,GAAG+B,YAAkBG,EAAQ6D,OAKhE,IAAIkC,EAAoB,KACxB,GAAIJ,GAAcA,EAAW9B,KAAM,CAC/B,MAAMgC,EAAaF,EAAWG,IAAO,GAAGH,EAAWG,MAAwC,KAC3FC,EACIrI,EAAAA,cAAA,OAAKI,UAAU,OACXJ,EAAAA,cAACmI,EAAU,CAAC/H,UAAW,GAAG+B,eAAqB8F,EAAW9B,OAKtE,OACInG,EAAAA,cAAA,OAAKI,UAAU,wBAAuB,UAAS,oBAC1C8H,EACAG,EACDrI,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,cACXnC,EAAAA,cAAA,OAAKI,UAAW,GAAG+B,YAAkB4F,2mBCzCzD,MAAMO,EAAU,CAAE3G,QAAS,GAAI4G,YAAa,IAEvCD,EAAQ3G,QAAQ,4BAA8B,CAC3C6G,EAAGA,IAAMC,EAAQ,MACjBC,MAAO,gBACPC,GAAI,GAEJC,KAAK,EACLC,GAAI,YACJC,EAAG,2BACHC,EAAG,YAEHC,IAAK,GAGLC,GAAI,wCAKR/E,OAAOgF,aAAehF,OAAOgF,cAAgB,GAC7ChF,OAAOgF,aAAavH,QAAOmG,EAAAA,EAAA,GACpB5D,OAAOgF,aAAavH,SAAW,IAC/B2G,EAAQ3G,SAGXuC,OAAOgF,aAAaX,YAAWT,EAAAA,EAAA,GAC5B5D,OAAOgF,aAAaX,aAAe,IACnCD,EAAQC,aAEY,MAAMY,EAAiB,GAC9BA,EAAe,iFAAmF,CAC1GX,EAAGA,IAAMC,EAAQ,MACjBW,GAAI,gDAEpBlF,OAAOgF,aAAehF,OAAOgF,cAAgB,GAC7ChF,OAAOgF,aAAaC,eAAcrB,EAAAA,EAAA,GACP5D,OAAOgF,aAAaC,gBAAkB,IACtCA,UCtC3BE,EAAOC,QAAUtJ,cCAjBqJ,EAAOC,QAAUC","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","_ref","desktop","tablet","mobile","query","React","src","media","srcSet","className","alt","altText","getResponsiveImage","_ref2","_defaultImg$imageSett","_defaultImg$imageSett2","defaultImg","lazyload","imageSettings","disableLazyLoad","defaultImgSrc","quality","getDynamicImageSettings","_ref3","_MsDyn365$themeSettin","moduleName","viewports","undefined","themeSettingsForModule","MsDyn365","themeSettings","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","isBrowser","openLinkInNewTab","openInNewTab","_cl$linkText","_cl$linkText2","_cl$linkText3","_cl$linkText4","_cl$linkText5","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","_window$embedded_svc","embedded_svc","domInitInProgress","clearInterval","querySelectorAll","forEach","_elem","dispatchEvent","Event","open","handleAnalytics","hasOneLinkOnly","length","suggestionCard","Image","Object","assign","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","_objectSpread","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":""}