{"version":3,"file":"static/js/40ca1f77f9f7b8d0125a.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/modules/mfrm-hero/mfrm-hero.tsx?689e","webpack://mattressfirm/./src/modules/mfrm-hero/mfrm-hero.view.tsx?7348","webpack://mattressfirm/./lib/mfrm-hero/module-registration.js?8768","webpack://mattressfirm/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IMfrmHeroData } from './mfrm-hero.data';\r\nimport { IMfrmHeroProps } from './mfrm-hero.props.autogenerated';\r\nimport { ICarouselState } from './mfrm-hero.state';\r\n\r\nexport interface ICarouselViewProps extends IMfrmHeroProps<{}>, ICarouselState {\r\n lazyLoad: boolean;\r\n containerWidth: string;\r\n closeAnimation: string;\r\n carouselContainer: IModuleProps;\r\n telemetryContent: ITelemetryContent;\r\n next(): void;\r\n previous(): void;\r\n onIndicatorsClickHandler(): void;\r\n handleDismissCarousel(): void;\r\n handleOnExited(): void;\r\n handleOnExiting(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CarouselModule component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CarouselModule extends React.PureComponent, ICarouselState> {\r\n private animating: boolean;\r\n private telemetryContent: ITelemetryContent;\r\n constructor(props: IMfrmHeroProps, state: ICarouselState) {\r\n super(props);\r\n this.state = { activeIndex: 0, closeNow: false, dismissCarousel: false };\r\n this.animating = false;\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.context && this.props.context.request && this.props.context.request.cookies) {\r\n if (this.props.context.request.cookies.get(`CarouselDismiss_${this.props.id}`) === undefined) {\r\n this.props.context.request.cookies.set(`CarouselDismiss_${this.props.id}`, 'false');\r\n this.setState({ dismissCarousel: false });\r\n }\r\n }\r\n\r\n if (this.props.config.lazyLoad === true) {\r\n function loadSlideImage(img:HTMLImageElement){\r\n const src = img.getAttribute(\"data-src\");\r\n if (!src) { return; }\r\n img.src= src;\r\n }\r\n\r\n const imageObserver = new IntersectionObserver((images, imgObserver) => {\r\n images.forEach((image) => {\r\n if (image.isIntersecting) {\r\n const lazyImage = image.target;\r\n loadSlideImage(lazyImage as HTMLImageElement);\r\n imgObserver.unobserve(lazyImage);\r\n } else {\r\n return;\r\n }\r\n });\r\n });\r\n\r\n const imageArray = document.querySelectorAll('.msc-carousel__inner img');\r\n imageArray.forEach((img) => {\r\n imageObserver.observe(img);\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (this.state.dismissCarousel) {\r\n return null;\r\n }\r\n const { className, containerWidth } = this.props.config;\r\n const viewProps = {\r\n\r\n // Context for telemetry and raw data for C1 to do customization\r\n // Including computed data, state data and methods\r\n containerWidth,\r\n ...this.props,\r\n ...this.state,\r\n telemetryContent: this.telemetryContent,\r\n carouselContainer: {\r\n moduleProps: this.props,\r\n className: classnames('ms-carousel', className)\r\n },\r\n closeAnimation: this.state.closeNow ? 'close-now' : '',\r\n next: this._next,\r\n previous: this._previous,\r\n onIndicatorsClickHandler: this._goToIndex,\r\n handleDismissCarousel: this._handleDismissCarousel,\r\n handleOnExited: this._onExited,\r\n handleOnExiting: this._onExiting\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * function implementation to dismiss the Carousel\r\n */\r\n private _handleDismissCarousel = (): void => {\r\n if (this.props.context && this.props.context.request && this.props.context.request.cookies) {\r\n this.props.context.request.cookies.set(`CarouselDismiss_${this.props.id}`, 'true');\r\n this.setState({ dismissCarousel: true });\r\n }\r\n };\r\n\r\n /**\r\n * function implementation to move to next slide\r\n */\r\n private _next = (): void => {\r\n const { slots } = this.props;\r\n const nextIndex = this.state.activeIndex === (slots && slots.content && slots.content.length - 1) ? 0 : this.state.activeIndex + 1;\r\n\r\n if (this.animating) {\r\n this.setState({ closeNow: true, activeIndex: nextIndex });\r\n } else {\r\n this.setState({ activeIndex: nextIndex });\r\n }\r\n };\r\n\r\n /**\r\n * function implementation to move to previous slide\r\n */\r\n private _previous = (): void => {\r\n const slots = this.props.slots && this.props.slots.content;\r\n const nextIndex = this.state.activeIndex === 0 ? (slots ? slots.length - 1 : 0) : this.state.activeIndex - 1;\r\n\r\n if (this.animating) {\r\n this.setState({ closeNow: true, activeIndex: nextIndex });\r\n } else {\r\n this.setState({ activeIndex: nextIndex });\r\n }\r\n };\r\n\r\n private _onExiting = (): void => {\r\n this.animating = true;\r\n };\r\n\r\n private _onExited = (): void => {\r\n this.animating = false;\r\n this.setState({ closeNow: false });\r\n };\r\n\r\n /**\r\n * function implementation to move to a given slide\r\n */\r\n private _goToIndex = (newIndex: number): void => {\r\n if (this.animating) {\r\n return;\r\n }\r\n this.setState({ activeIndex: newIndex });\r\n };\r\n}\r\n\r\nexport default CarouselModule;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { Carousel } from '@msdyn365-commerce/components';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICarouselViewProps } from './mfrm-hero';\r\n\r\nconst CarouselView: React.FC = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default CarouselView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['mfrm-hero'] = {\n c: () => require('partner/modules/mfrm-hero/mfrm-hero.tsx'),\n $type: 'containerModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'mfrm-hero',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/mfrm-hero'\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|mfrm-hero|mfrm-hero'] = {\n c: () => require('partner/modules/mfrm-hero/mfrm-hero.view.tsx'),\n cn: '__local__-__local__-mfrm-hero'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["CarouselModule","React","constructor","props","state","super","_handleDismissCarousel","this","context","request","cookies","set","id","setState","dismissCarousel","_next","slots","nextIndex","activeIndex","content","length","animating","closeNow","_previous","_onExiting","_onExited","_goToIndex","newIndex","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","componentDidMount","undefined","get","config","lazyLoad","imageObserver","IntersectionObserver","images","imgObserver","forEach","image","isIntersecting","lazyImage","target","img","src","getAttribute","loadSlideImage","unobserve","document","querySelectorAll","observe","render","className","containerWidth","viewProps","_objectSpread","carouselContainer","moduleProps","classnames","closeAnimation","next","previous","onIndicatorsClickHandler","handleDismissCarousel","handleOnExited","handleOnExiting","renderView","Module","Object","assign","renderModuleAttributes","Carousel","pause","pauseOnHover","ride","autoplay","interval","transitionType","items","hideFlipper","dismissEnabled","dismissCarouselAriaText","resources","ariaLabelForDismissButton","indicatorAriaText","ariaLabelForSlide","directionTextPrev","flipperPrevious","directionTextNext","flipperNext","showPaginationTooltip","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}