{"version":3,"sources":["webpack:///./src/themes/stemichelle-new/views/overflow-container.view.tsx?5960","webpack:///./src/modules/cookbook-tagline/cookbook-tagline.tsx?1e45","webpack:///./src/modules/overflow-container/overflow-container.view.tsx?e822","webpack:///./src/modules/copyright/copyright.tsx?0bcb","webpack:///src/modules/place-holder-for-container-preview/place-holder-for-container-preview.tsx?b150","webpack:///./src/components/Price.tsx?5177","webpack:///./src/modules/product-price/product-price.tsx?6d5a","webpack:///src/modules/spacer/spacer.tsx?3b03","webpack:///./src/modules/home-carousel/home-carousel.tsx?ba62","webpack:///./src/modules/link-list/link-list.tsx?0ff7","webpack:///src/modules/starter/starter.tsx?2704","webpack:///src/modules/spacer/spacer.view.tsx?bd25","webpack:///./src/themes/elicit/views/overflow-container.view.tsx?c583","webpack:///./src/themes/fth/views/overflow-container.view.tsx?849c","webpack:///./src/themes/blend/views/overflow-container.view.tsx?a4b4","webpack:///./src/modules/single-product-container/single-product-container.tsx?fc63","webpack:///./src/themes/emp/emp.tsx?208f","webpack:///./src/modules/wine-club-content/wine-club-content.tsx?975d","webpack:///./src/modules/tasting-notes/tasting-notes.tsx?2c27","webpack:///./src/modules/overflow-container/overflow-container.tsx?219d","webpack:///./src/modules/product-link/product-link.tsx?c759","webpack:///./src/modules/cart-affiliations-maintainer/cart-affiliations-maintainer.tsx?7f37","webpack:///./src/modules/event-description/event-description.tsx?e41c"],"names":["OverflowContainerView","props","btn","content","currentClass","config","cssClassName","React","className","classnames","CookbookTagline","constructor","_productCookbookTagLine","render","this","data","productSpecificationData","result","productAttribute","filter","attribute","Name","toUpperCase","length","TextValue","RichTextComponent","text","Copyright","cssName","_copyrightTextFormatted","copyrightText","dateToUse","Date","getFullYear","toString","PlaceholderForContainerPreviewComponent","Price","_showStrikethroughPricing","_renderCurrentPriceWithOriginalPrice","_renderCurrentPrice","originalPrice","currentPrice","originalStartingPrice","startingValue","currentStartingPrice","originalEndingPrice","endingValue","currentEndingPrice","initialPrice","_formatCurrency","finalPrice","priceRange","_formatPriceRange","undefined","originalPriceText","currentPriceText","savingsText","includeClassName","classNames","isRange","_rangeHelper","concat","itemProp","price","freePriceText","currencyFormatter","Intl","NumberFormat","locale","style","currencyDisplay","currency","currencyCode","format","rangeFormatText","match","rangeRegex","replace","_","initial","ProductPriceModule","_onKeyedInPriceChange","targetPrice","priceInput","Number","target","value","getKeyedInPrice","createKeyedInPrice","context","actionContext","getKeyedInPriceError","createKeyedInPriceError","_renderKeyedInPrice","keyedInPrice","isNaN","hidden","htmlFor","Input","id","type","min","onChange","_mapPriceFromSimpleProductAction","productPrice","channelConfiguration","requestContext","priceType","priceDisplayType","_mapNumberToIPriceRange","CustomerContextualPrice","BasePrice","Math","max","TradeAgreementPrice","AdjustedPrice","Currency","resources","priceFree","reaction","product","RecordId","affiliationId","app","wineClubSetup","actionInput","PriceForSelectedVariantInput","apiSettings","channelId","request","user","customerAccountNumber","getPriceForSelectedVariant","catch","error","telemetry","warning","loginGated","isAuthenticated","e","priceData","Behavior","KeyInPriceValue","_getFormattedPrice","cultureFormatter","formatCurrency","observer","Spacer","spacerClass","spacerHeight","viewProps","renderView","HomeCarousel","super","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","_handleKeyPress","event","keyCode","_previousSlide","_nextSlide","currentSlide","slides","homeCarouselSlides","slide","scrollThreshold","_randomizeStart","bind","_autoAdvance","_restartAutoAdvance","_handleTouchStart","_handleTouchEnd","_selectorSlideChange","componentDidMount","document","addEventListener","homeCarouselRandomize","homeCarouselInterval","componentWillUnmount","removeEventListener","_getCarousel","currentClassName","selectorList","indicatorList","slideList","map","index","push","_getSelector","_getIndicator","_getSlide","onTouchStart","onTouchEnd","_getNext","homeCarousel_next","isCurrentSelector","role","onClick","key","slideSelector","isCurrentIndicator","isCurrentSlide","href","link","linkUrl","destinationUrl","ariaLabel","openInNewTab","rel","_getLogo","logo","_getLink","_getBackgroundImage","backgroundImage","logoMobile","backgroundImageMobile","linkText","image","Image","Object","gridSettings","imageSettings","startSlide","round","random","cycleInterval","setInterval","clearInterval","element","currentTarget","getAttribute","touches","scrollStart","screenX","changedTouches","delta","__decorate","observable","LinkList","classname","links","_renderContent","currentPage","url","requestUrl","pathname","cta","isActive","split","active","title","SpacerView","renderModuleAttributes","SingleProductContainer","productAttributes","slots","hasSlots","Emp","WineClubContent","leftRichText","wineClubPhoneNumber","rightRichText","TastingNotes","tastingNotesAttributeName","tastingNotes","find","toLowerCase","tastingNotesContent","_getContent","forEach","note","_getImage","src","imageSearchUrl","altText","OverflowContainer","_OPENED_CLASS","_CLOSED_CLASS","_handleClickOutsideOverflow","overflow","pulldownElement","getElementById","state","isOverflowExpandedState","contains","setState","openByDefault","_toggleExpansion","closeOnClickOff","body","_jsxContent","_jsxBtn","_currentClass","module","btnText","openText","closeText","ProductLink","_productLinkClick","window","location","parent","productUrl","status","getProductUrlSync","CartAffiliationsMaintainer","isLoggedIn","_runAffiliationCheck","currentAffils","customer","CustomerAffiliations","cachedAffils","_cachedAffiliations","_cacheAffiliations","_updateCart","curAffil","cachedAffil","cart","totalItemsInCart","firstLine","CartLines","line","updateCartLineQuantity","cartLineId","LineId","newQuantity","Quantity","isInitialized","initialize","setTimeout","async","cartInput","GlobalStateInput","BaseCartState","update","refreshCart","affilIds","affil","localStorage","setItem","AFFILIATION_LOCATION","JSON","stringify","affiliationStr","getItem","parse","EventDescription","eventDescription","intro","_renderEventDescription"],"mappings":"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","file":"static/js/9.ffddf2595060ec5f4aff.chunk.js","sourcesContent":["import classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IOverflowContainerViewProps } from '../../../modules/overflow-container/overflow-container';\r\n\r\nconst OverflowContainerView: React.FC = props => {\r\n const { btn, content, currentClass, config: { cssClassName } } = props;\r\n\r\n return (\r\n
\r\n {btn}\r\n {content}\r\n
\r\n );\r\n};\r\n\r\nexport default OverflowContainerView;\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\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { ICookbookTaglineData } from './cookbook-tagline.data';\r\nimport { ICookbookTaglineProps } from './cookbook-tagline.props.autogenerated';\r\n\r\n/**\r\n *\r\n * CookbookTagline component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CookbookTagline extends React.PureComponent<\r\n ICookbookTaglineProps\r\n> {\r\n private _productCookbookTagLine: string = 'COOKBOOKTAGLINE';\r\n public render(): JSX.Element | null {\r\n const content: ICookbookTaglineData = this.props.data;\r\n if (\r\n !(\r\n content &&\r\n content.productSpecificationData &&\r\n content.productSpecificationData.result\r\n )\r\n ) {\r\n return null;\r\n }\r\n const productAttributes = content.productSpecificationData.result;\r\n const productAttribute = productAttributes.filter(\r\n attribute =>\r\n attribute.Name!.toUpperCase() === this._productCookbookTagLine\r\n );\r\n if (\r\n productAttribute &&\r\n productAttribute.length &&\r\n productAttribute[0].TextValue\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default CookbookTagline;\r\n","\r\nimport * as React from 'react';\r\nimport { IOverflowContainerViewProps } from './overflow-container';\r\n\r\nconst OverflowContainerView: React.FC = props => {\r\n const { content, currentClass, config: { cssClassName } } = props;\r\n\r\n return (\r\n
\r\n {content}\r\n
\r\n );\r\n};\r\n\r\nexport default OverflowContainerView;","// ==============================================================================\r\n// ==============================================================================\r\nimport * as React from 'react';\r\n\r\nimport { ICopyrightData } from './copyright.data';\r\nimport { ICopyrightProps } from './copyright.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITION\r\n// ==============================================================================\r\n/**\r\n * Copyright component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass Copyright extends React.PureComponent> {\r\n\r\n // ==============================================================================\r\n // PUBLIC METHODS\r\n // ==============================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { cssName } = this.props.config;\r\n\r\n return (\r\n
\r\n {this._copyrightTextFormatted}\r\n
\r\n );\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _copyrightTextFormatted(): JSX.Element {\r\n const {\r\n copyrightText,\r\n } = this.props.config;\r\n\r\n const dateToUse = new Date().getFullYear().toString();\r\n\r\n return (\r\n \r\n © {dateToUse} {copyrightText}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Copyright;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PlaceholderForContainerPreviewComponent } from '@msdyn365-commerce/core';\n\nexport default PlaceholderForContainerPreviewComponent;\n","import classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IPriceProps } from './Price.props';\r\n\r\n/**\r\n * Price component\r\n * @extends {React.PureComponent}\r\n */\r\nexport default class Price extends React.PureComponent {\r\n public static defaultProps: Partial = {\r\n rangeFormatText: '{0} - {1}',\r\n originalPriceText: 'Original Price',\r\n currentPriceText: 'Current Price'\r\n };\r\n\r\n private static rangeRegex: RegExp = /(?:(\\{0\\})|(\\{1\\}))/gm;\r\n\r\n public render(): JSX.Element | null {\r\n // yield null on undefined result for enzyme\r\n return (this._showStrikethroughPricing() ? this._renderCurrentPriceWithOriginalPrice() : this._renderCurrentPrice(true)) || null;\r\n }\r\n\r\n private _showStrikethroughPricing(): boolean {\r\n const { originalPrice, currentPrice } = this.props;\r\n if (originalPrice && currentPrice) {\r\n const originalStartingPrice = originalPrice.startingValue;\r\n const currentStartingPrice = currentPrice.startingValue;\r\n const originalEndingPrice = originalPrice.endingValue ? originalPrice.endingValue : 0;\r\n const currentEndingPrice = currentPrice.endingValue ? currentPrice.endingValue : 0;\r\n\r\n return (originalStartingPrice > currentStartingPrice) ||\r\n (originalEndingPrice > currentEndingPrice);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _renderCurrentPriceWithOriginalPrice(): JSX.Element | null {\r\n const { startingValue, endingValue } = this.props.originalPrice!;\r\n const initialPrice = this._formatCurrency(startingValue);\r\n const finalPrice = this._formatCurrency(endingValue);\r\n const priceRange = initialPrice && finalPrice ? this._formatPriceRange(initialPrice, finalPrice) : undefined;\r\n\r\n return (\r\n \r\n {priceRange && (\r\n \r\n {priceRange}\r\n {this._renderCurrentPrice(false)}\r\n \r\n )}\r\n {!priceRange && (\r\n \r\n {this.props.originalPriceText} {initialPrice} {this.props.currentPriceText} {this._renderCurrentPrice(false)}\r\n \r\n \r\n \r\n )}\r\n {this.props.savingsText && {this.props.savingsText}}\r\n \r\n );\r\n }\r\n\r\n private _renderCurrentPrice(includeClassName: boolean): JSX.Element | undefined {\r\n const { currentPrice, className } = this.props;\r\n const classNames = className && includeClassName ? [className] : [];\r\n const initialPrice = currentPrice ? this._formatCurrency(currentPrice.startingValue) : undefined;\r\n const finalPrice = currentPrice ? this._formatCurrency(currentPrice.endingValue as number) : undefined;\r\n const isRange = initialPrice && finalPrice;\r\n const priceRange = isRange ? this._formatPriceRange(initialPrice!, finalPrice!) : undefined;\r\n return isRange\r\n ? (priceRange && this._rangeHelper({ className: classNames.concat('price-range'), text: priceRange })) as JSX.Element\r\n : (initialPrice && this._rangeHelper({ className: classNames, text: initialPrice })) as JSX.Element;\r\n }\r\n\r\n private _rangeHelper({ className, text }: { className: string[]; text: string }): JSX.Element {\r\n return {` ${text || ''}`};\r\n }\r\n\r\n private _formatCurrency(price: number | undefined): string | undefined {\r\n if (price === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (price === 0 && this.props.freePriceText) {\r\n return this.props.freePriceText;\r\n }\r\n\r\n if (this.props.currencyFormatter) {\r\n return this.props.currencyFormatter(price);\r\n }\r\n\r\n return new Intl.NumberFormat(\r\n this.props.locale,\r\n { style: 'currency', currencyDisplay: 'symbol', currency: this.props.currencyCode }).format(price);\r\n }\r\n\r\n private _formatPriceRange(initialPrice: string, finalPrice: string): string | undefined {\r\n if (!this.props.rangeFormatText!.match(Price.rangeRegex)) {\r\n return;\r\n }\r\n return this.props.rangeFormatText!.replace(Price.rangeRegex, (_: string, initial: string) => initial ? initialPrice : finalPrice);\r\n }\r\n}\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 { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { ChannelConfiguration, ProductPrice } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport Input from 'reactstrap/lib/Input';\r\nimport Price from '../../components/Price';\r\nimport getKeyedInPrice, { createKeyedInPrice } from '../../dataActions/get-keyed-in-price';\r\nimport getKeyedInPriceError, { createKeyedInPriceError } from '../../dataActions/get-keyed-in-price-error';\r\nimport getPriceForSelectedVariant, { PriceForSelectedVariantInput } from './data-actions/get-price-for-selected-variant';\r\nimport { IPrice, IPriceRange, IProductPriceData } from './product-price.data';\r\nimport { IProductPriceProps } from './product-price.props.autogenerated';\r\n\r\n/**\r\n *\r\n * ProductPrice component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass ProductPriceModule extends React.Component> {\r\n public async componentDidMount(): Promise {\r\n reaction(\r\n () => this.props.data.product.result ? this.props.data.product.result.RecordId : null,\r\n () => {\r\n if (this.props.context &&\r\n this.props.data.product.result &&\r\n this.props.config.priceDisplayType === 'affiliationPrice' &&\r\n (this.props.config.affiliationId || this.props.context.app.config.wineClubSetup.affiliationId)) {\r\n const actionInput = new PriceForSelectedVariantInput(\r\n this.props.data.product.result.RecordId,\r\n // @ts-ignore\r\n +this.props.context.actionContext.requestContext.apiSettings.channelId,\r\n this.props.data.product.result,\r\n this.props.context.request.user.customerAccountNumber,\r\n this.props.config.affiliationId || this.props.context.app.config.wineClubSetup.affiliationId\r\n );\r\n\r\n getPriceForSelectedVariant(actionInput, this.props.context.actionContext)\r\n .catch(error => {\r\n this.props.telemetry.warning('Unable to update Price for Product');\r\n this.props.telemetry.error(error);\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (this.props.config.loginGated && !this.props.context.request.user.isAuthenticated) {\r\n return null;\r\n }\r\n\r\n let content: IProductPriceData;\r\n try {\r\n content = this.props.data;\r\n } catch (e) {\r\n this.props.telemetry.error(`Something went wrong ------${e}`);\r\n return
{e}
;\r\n }\r\n\r\n const priceData = this._mapPriceFromSimpleProductAction(\r\n content.productPrice.result,\r\n content.channelConfiguration.result,\r\n this.props.context.request);\r\n\r\n const product = this.props.data.product.result;\r\n const isPriceKeyedIn = product && product.Behavior && product.Behavior.KeyInPriceValue;\r\n if (isPriceKeyedIn) {\r\n return (\r\n
\r\n {this._renderKeyedInPrice()}\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n {this._getFormattedPrice(priceData, this.props.context.cultureFormatter.formatCurrency)}\r\n
\r\n );\r\n }\r\n\r\n private _onKeyedInPriceChange = (targetPrice: React.ChangeEvent) => {\r\n const priceInput = Number(targetPrice && targetPrice.target && targetPrice.target.value);\r\n void getKeyedInPrice(createKeyedInPrice(priceInput), this.props.context.actionContext);\r\n\r\n if (priceInput < 25 || priceInput > 500) {\r\n void getKeyedInPriceError(createKeyedInPriceError('Please enter a price between $25 and $500.'), this.props.context.actionContext);\r\n } else {\r\n void getKeyedInPriceError(createKeyedInPriceError(''), this.props.context.actionContext);\r\n }\r\n };\r\n\r\n private _renderKeyedInPrice = () => {\r\n let price: number | undefined = this.props.data.keyedInPrice.result;\r\n if (!price || isNaN(price)) {\r\n price = undefined;\r\n }\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n private _getFormattedPrice(priceData: IPrice | null, currencyFormatter: (price: string | number, currencyCode?: string) => string): JSX.Element | null {\r\n if (!priceData) {\r\n return null;\r\n }\r\n const { currentPrice, originalPrice } = priceData;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _mapPriceFromSimpleProductAction = (productPrice: ProductPrice | undefined, channelConfiguration: ChannelConfiguration | undefined, requestContext: IRequestContext | undefined): IPrice | null => {\r\n if (productPrice && requestContext) {\r\n let priceType;\r\n if (this.props.config.priceDisplayType === 'affiliationPrice' || this.props.config.priceDisplayType === 'currentPrice') {\r\n priceType = this._mapNumberToIPriceRange(productPrice.CustomerContextualPrice);\r\n } else if (this.props.config.priceDisplayType === 'basePrice') {\r\n priceType = this._mapNumberToIPriceRange(productPrice.BasePrice || 0);\r\n }\r\n\r\n // if price type wasnt set, then set it to the default type used previously\r\n if (!priceType) {\r\n // AKA 'currentPrice' - this is by default\r\n priceType = this._mapNumberToIPriceRange(Math.max(productPrice.BasePrice || 0, productPrice.TradeAgreementPrice || 0, productPrice.AdjustedPrice || 0));\r\n }\r\n\r\n const originalPrice = priceType;\r\n const currentPrice = priceType;\r\n\r\n return {\r\n locale: requestContext.locale,\r\n currencyCode: (channelConfiguration && channelConfiguration.Currency) || 'USD',\r\n freePriceText: this.props.resources.priceFree,\r\n currentPrice,\r\n originalPrice\r\n };\r\n }\r\n\r\n return null;\r\n };\r\n\r\n private _mapNumberToIPriceRange = (price: number | undefined): IPriceRange | undefined => {\r\n if (price !== undefined) {\r\n return {\r\n startingValue: price\r\n };\r\n }\r\n\r\n return undefined;\r\n };\r\n}\r\n\r\nexport default ProductPriceModule;\r\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { ISpacerProps } from './spacer.props.autogenerated';\n\nexport interface ISpacerViewProps extends ISpacerProps<{}> {\n className?: string;\n}\n\n/**\n *\n * SpacerModule component\n * @extends {React.PureComponent}\n */\nclass Spacer extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n const spacerClass = this.props.config.spacerHeight ? `ms-${this.props.config.spacerHeight}` : 'ms-spacer';\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n className: className && classnames(spacerClass, className) || spacerClass,\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default Spacer;\n","import { IImageData, IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IHomeCarouselProps, IHomeCarouselSlidesData, ILinkData } from './home-carousel.props.autogenerated';\r\n\r\n/**\r\n *\r\n * HomeCarousel component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass HomeCarousel extends React.Component> {\r\n\r\n //==========================================================================\r\n // VARIABLES\r\n //==========================================================================\r\n\r\n @observable private currentSlide: number;\r\n private slides: IHomeCarouselSlidesData[];\r\n private scrollThreshold: number;\r\n private scrollStart: number | undefined;\r\n private cycleInterval?: ReturnType;\r\n private defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n //==========================================================================\r\n // LIFE CYCLE\r\n //==========================================================================\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n constructor(props: IHomeCarouselProps<{}>) {\r\n super(props);\r\n this.currentSlide = 0;\r\n this.slides = props.config.homeCarouselSlides ? props.config.homeCarouselSlides.filter(slide => (!slide.hidden)) : [];\r\n this.scrollThreshold = 100;\r\n this._randomizeStart = this._randomizeStart.bind(this);\r\n this._autoAdvance = this._autoAdvance.bind(this);\r\n this._restartAutoAdvance = this._restartAutoAdvance.bind(this);\r\n this._previousSlide = this._previousSlide.bind(this);\r\n this._nextSlide = this._nextSlide.bind(this);\r\n this._handleTouchStart = this._handleTouchStart.bind(this);\r\n this._handleTouchEnd = this._handleTouchEnd.bind(this);\r\n this._handleKeyPress = this._handleKeyPress.bind(this);\r\n this._selectorSlideChange = this._selectorSlideChange.bind(this);\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n public componentDidMount(): void {\r\n document.addEventListener('keyup', this._handleKeyPress);\r\n\r\n if (this.props.config.homeCarouselRandomize && this.slides) {\r\n this._randomizeStart(this.slides.length);\r\n }\r\n\r\n if (this.props.config.homeCarouselInterval && this.slides) {\r\n this._autoAdvance();\r\n }\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n public componentWillUnmount(): void {\r\n document.removeEventListener('keyup', this._handleKeyPress);\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n if (!this.slides) {\r\n return null;\r\n }\r\n return this._getCarousel;\r\n }\r\n\r\n //==========================================================================\r\n // RENDER METHODS\r\n //==========================================================================\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private get _getCarousel(): JSX.Element {\r\n const currentClassName = this.slides && this.slides[this.currentSlide].className;\r\n const selectorList = [] as JSX.Element[];\r\n const indicatorList = [] as JSX.Element[];\r\n const slideList = [] as JSX.Element[];\r\n this.slides.map((slide, index) => {\r\n selectorList.push(\r\n this._getSelector(slide, index)\r\n );\r\n indicatorList.push(\r\n this._getIndicator(index)\r\n );\r\n slideList.push(\r\n this._getSlide(slide, index)\r\n );\r\n });\r\n return (\r\n \r\n
\r\n {selectorList}\r\n {this._getNext(this.props.resources.homeCarousel_next)}\r\n
\r\n
\r\n {slideList}\r\n
\r\n
\r\n {indicatorList}\r\n
\r\n \r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getSelector(slide: IHomeCarouselSlidesData, index: number): JSX.Element {\r\n const isCurrentSelector = index === this.currentSlide;\r\n return (\r\n \r\n
{slide.slideSelector}
\r\n \r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getNext(text: string): JSX.Element {\r\n return (\r\n \r\n
\r\n
{text}
\r\n
\r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getIndicator(index: number): JSX.Element {\r\n const isCurrentIndicator = index === this.currentSlide;\r\n return (\r\n \r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getSlide(slide: IHomeCarouselSlidesData, index: number): JSX.Element {\r\n const isCurrentSlide = index === this.currentSlide;\r\n return (\r\n \r\n
\r\n
\r\n {this._getLogo(slide.logo)}\r\n \r\n {this._getLink(slide.link)}\r\n
\r\n
\r\n {this._getBackgroundImage(slide.backgroundImage)}\r\n
\r\n
\r\n
\r\n
\r\n {this._getLogo(slide.logoMobile || slide.logo)}\r\n
\r\n
\r\n {this._getBackgroundImage(slide.backgroundImageMobile)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getLink(link: ILinkData | undefined): JSX.Element | null {\r\n if (link && link.linkUrl.destinationUrl && link.linkText) {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getLogo(image: IImageData | undefined): JSX.Element | null {\r\n if (image) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _getBackgroundImage(image: IImageData | undefined): JSX.Element | null {\r\n if (image) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n //==========================================================================\r\n // HANDLE METHODS\r\n //==========================================================================\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _randomizeStart(max: number): void {\r\n // tslint:disable-next-line:insecure-random\r\n const startSlide: number = Math.round(Math.random() * (max - 1));\r\n this.currentSlide = startSlide;\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _autoAdvance(): void {\r\n const { homeCarouselInterval } = this.props.config;\r\n if (homeCarouselInterval && this.slides) {\r\n this.cycleInterval = setInterval(this._nextSlide, homeCarouselInterval);\r\n }\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _restartAutoAdvance(): void {\r\n if (this.cycleInterval) {\r\n clearInterval(this.cycleInterval);\r\n this._autoAdvance();\r\n }\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _selectorSlideChange(element: React.MouseEvent): void {\r\n const index = element.currentTarget.getAttribute('data-id')!;\r\n this.currentSlide = +index;\r\n this._restartAutoAdvance();\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _previousSlide(): void {\r\n this.currentSlide = (this.currentSlide > 0) ? this.currentSlide - 1 : this.slides.length - 1;\r\n this._restartAutoAdvance();\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _nextSlide(): void {\r\n this.currentSlide = (this.currentSlide < this.slides.length - 1) ? this.currentSlide + 1 : 0;\r\n this._restartAutoAdvance();\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _handleTouchStart(event: React.TouchEvent): void {\r\n if (event.touches.length === 0) {\r\n this.scrollStart = undefined;\r\n } else {\r\n this.scrollStart = event.touches[0].screenX;\r\n }\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n private _handleTouchEnd(event: React.TouchEvent): void {\r\n if (event.changedTouches.length > 0 && this.scrollStart !== undefined) {\r\n const newTarget: number = event.changedTouches[0].screenX;\r\n const delta = newTarget - this.scrollStart;\r\n\r\n if (delta > this.scrollThreshold) {\r\n this._previousSlide();\r\n }\r\n\r\n if (delta < -this.scrollThreshold) {\r\n this._nextSlide();\r\n }\r\n }\r\n\r\n this.scrollStart = undefined;\r\n\r\n return;\r\n }\r\n\r\n //------------------------------------------------------\r\n //------------------------------------------------------\r\n // tslint:disable-next-line:no-any\r\n private _handleKeyPress = (event: any) => {\r\n if (event.keyCode === 37) {\r\n this._previousSlide();\r\n } else if (event.keyCode === 39) {\r\n this._nextSlide();\r\n }\r\n };\r\n}\r\n\r\nexport default HomeCarousel;\r\n","import classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { ILinkData } from '../clickable-container/clickable-container.props.autogenerated';\r\nimport { ILinkListProps } from './link-list.props.autogenerated';\r\n\r\n/**\r\n *\r\n * LinkList component\r\n * @extends {React.Component>}\r\n */\r\nclass LinkList extends React.Component> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n return (\r\n
\r\n {config.links && this._renderContent(config.links)}\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderContent(links: ILinkData[]): JSX.Element {\r\n const currentPage = this.props.context.request.url.requestUrl.pathname;\r\n return (\r\n
\r\n {links.map((cta: ILinkData, index: number) => {\r\n const isActive = cta.linkUrl?.destinationUrl.split('?')[0] === currentPage;\r\n return \r\n {cta.linkText}\r\n ;\r\n })}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LinkList;\r\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from 'react';\n\n// TODO: Current build require at least one tsx file\nexport default () =>
;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from 'react';\nimport { ISpacerViewProps } from './spacer';\n\nconst SpacerView: React.FC = props => (\n
\n);\n\nexport default SpacerView;\n","\r\nimport * as React from 'react';\r\nimport { IOverflowContainerViewProps } from '../../../modules/overflow-container/overflow-container';\r\n\r\nconst OverflowContainerView: React.FC = props => {\r\n const { btn, content, currentClass, config: { cssClassName } } = props;\r\n\r\n return (\r\n
\r\n {btn}\r\n {content}\r\n
\r\n );\r\n};\r\n\r\nexport default OverflowContainerView;","import classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IOverflowContainerViewProps } from '../../../modules/overflow-container/overflow-container';\r\n\r\nconst OverflowContainerView: React.FC = props => {\r\n const { btn, content, currentClass, config: { cssClassName } } = props;\r\n\r\n return (\r\n
\r\n {btn}\r\n {content}\r\n
\r\n );\r\n};\r\n\r\nexport default OverflowContainerView;\r\n","\r\nimport * as React from 'react';\r\nimport { IOverflowContainerViewProps } from '../../../modules/overflow-container/overflow-container';\r\n\r\nconst OverflowContainerView: React.FC = props => {\r\n const { btn, content, currentClass, config: { cssClassName } } = props;\r\n\r\n return (\r\n
\r\n {btn}\r\n {content}\r\n
\r\n );\r\n};\r\n\r\nexport default OverflowContainerView;","import * as React from 'react';\r\n\r\nimport classname from 'classnames';\r\nimport { ISingleProductContainerData } from './single-product-container.data';\r\nimport { ISingleProductContainerProps } from './single-product-container.props.autogenerated';\r\n\r\n/**\r\n *\r\n * SingleProductContainer component\r\n * @extends {React.Component>}\r\n */\r\nclass SingleProductContainer extends React.Component> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n if (!this.props.data.productAttributes.result) { return null; }\r\n\r\n const { slots } = this.props;\r\n const hasSlots = slots && slots.content && slots.content.length;\r\n return (\r\n
\r\n {hasSlots && slots.content}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SingleProductContainer;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport * as React from 'react';\r\n\r\n /**\r\n * CoreComponent component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass Emp extends React.PureComponent {\r\n constructor(props: {}) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return