{"version":3,"file":"static/js/21.ec3f5e72c80a2a7c94a4.chunk.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/modules/container-with-header/container-with-header.tsx?a74d","webpack://msdyn365.commerce.online/./src/modules/mailing-list-redirect-form/mailing-list-redirect-form-input-group.tsx?21ec","webpack://msdyn365.commerce.online/./src/modules/mailing-list-redirect-form/mailing-list-redirect-form.tsx?9a67","webpack://msdyn365.commerce.online/./src/modules/sort-and-filter-container/sort-and-filter-container.tsx?ab2a","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-api-token.ts?6bc1","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-filterable-class.ts?9a15","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-mapper-class.ts?276f","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-international-location.ts?e976","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-location.ts?b897","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-products.ts?c9b9","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-dropdown-menu.tsx?3af1","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-query-location.tsx?ae33","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/actions/get-wine-countries.ts?b8a0","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-query-location-international.tsx?c193","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-form.props.autogenerated.ts?8249","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-wine-display.tsx?b4ad","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-display-item.tsx?e9ae","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-scrollable.tsx?3a21","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-pager.tsx?5207","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-wine-results.tsx?4f98","webpack://msdyn365.commerce.online/./src/modules/wine-finder-form/wine-finder-form.tsx?0afa","webpack://msdyn365.commerce.online/./src/themes/blend/views/header.view.tsx?d717","webpack://msdyn365.commerce.online/./src/themes/blend/views/sign-in.view.tsx?1b70","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/header.view.tsx?784f","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/sign-in.view.tsx?a785","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/header.view.tsx?afae","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/sign-in.view.tsx?3425","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/header.view.tsx?c2e7","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/sign-in.view.tsx?ec1f","webpack://msdyn365.commerce.online/./src/themes/elicit/views/header.view.tsx?2fb9","webpack://msdyn365.commerce.online/./src/themes/elicit/views/sign-in.view.tsx?7458","webpack://msdyn365.commerce.online/./src/themes/emp/views/header.view.tsx?abe8","webpack://msdyn365.commerce.online/./src/themes/emp/views/sign-in.view.tsx?234f","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/header.view.tsx?b980","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/sign-in.view.tsx?ae2a","webpack://msdyn365.commerce.online/./src/themes/erath/views/header.view.tsx?874b","webpack://msdyn365.commerce.online/./src/themes/erath/views/sign-in.view.tsx?07d3","webpack://msdyn365.commerce.online/./src/themes/fth/views/header.view.tsx?618b","webpack://msdyn365.commerce.online/./src/themes/fth/views/sign-in.view.tsx?6757","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/header.view.tsx?4695","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/sign-in.view.tsx?2f0c","webpack://msdyn365.commerce.online/./src/themes/h3-theme/views/header.view.tsx?7111","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/header.view.tsx?1a60","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/sign-in.view.tsx?536d","webpack://msdyn365.commerce.online/./src/themes/lql/views/header.view.tsx?a744","webpack://msdyn365.commerce.online/./src/themes/north-star/views/header.view.tsx?fe60","webpack://msdyn365.commerce.online/./src/themes/north-star/views/sign-in.view.tsx?fcf5","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/header.view.tsx?1180","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/sign-in.view.tsx?3656","webpack://msdyn365.commerce.online/./src/themes/smwe/views/header.view.tsx?e96e","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/header.view.tsx?028f","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/sign-in.view.tsx?0762","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/header.view.tsx?2420","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/sign-in.view.tsx?2453","webpack://msdyn365.commerce.online/./src/themes/stemichelle-new/views/header.view.tsx?fea8","webpack://msdyn365.commerce.online/./src/themes/stemichelle-new/views/sign-in.view.tsx?8c1f","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/header.view.tsx?f08f","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/sign-in.view.tsx?28ed","webpack://msdyn365.commerce.online/./src/themes/wine-estates/views/header.view.tsx?17a1","webpack://msdyn365.commerce.online/./src/themes/wine-estates/views/sign-in.view.tsx?c4c9","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://msdyn365.commerce.online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://msdyn365.commerce.online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://msdyn365.commerce.online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://msdyn365.commerce.online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://msdyn365.commerce.online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://msdyn365.commerce.online/./src/modules/iframe/iframe.tsx?65fe","webpack://msdyn365.commerce.online/./src/modules/iframe/iframe.view.tsx?a7d6"],"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\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { IContainerWithHeaderData } from './container-with-header.data';\r\nimport {\r\n IContainerWithHeaderConfig,\r\n IContainerWithHeaderProps,\r\n ITitleData\r\n} from './container-with-header.props.autogenerated';\r\n\r\n// ==============================================================================\r\n/**\r\n * ContainerWithHeader component\r\n * @extends {React.PureComponent>}\r\n */\r\n// ==============================================================================\r\nclass ContainerWithHeader extends React.PureComponent> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { config, slots } = this.props;\r\n const hasSlots = slots && slots.contentBlock && slots.contentBlock.length;\r\n\r\n return (\r\n
\r\n {config && this._renderHeader(config)}\r\n {slots.contentBlockNoHeadings && this._renderSlotItems(slots.contentBlockNoHeadings)}\r\n {hasSlots && this._renderSlotItems(slots.contentBlock)}\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderHeader(config: IContainerWithHeaderConfig): JSX.Element {\r\n return (\r\n
\r\n {config?.title && this._renderLinkedTitle(config)}\r\n {config?.text &&\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderLinkedTitle(config: IContainerWithHeaderConfig): JSX.Element | null {\r\n if (config?.link?.linkUrl?.destinationUrl) {\r\n return (\r\n \r\n {this._renderTitle(config.title!)}\r\n \r\n );\r\n } else {\r\n return this._renderTitle(config.title!);\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderTitle(title: ITitleData): JSX.Element | null {\r\n if (title && title?.text) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderSlotItems(items: React.ReactNode[]): JSX.Element {\r\n return (\r\n
\r\n {items.map((slot: React.ReactNode, index: number) => (\r\n \r\n {slot}\r\n \r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContainerWithHeader;","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\ninterface IMailingInputGroupProps {\r\n label?: string;\r\n name: string;\r\n isValid?: boolean;\r\n placeholder?:string;\r\n validationMessage?: string;\r\n initialValue: string;\r\n errorMessage: string;\r\n onValueChange(newValue: string): void;\r\n onLoseFirstFocus(labelBlurred: string): void;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * class definition for a control group for mailing\r\n */\r\n@observer\r\nexport class MailingInputGroup extends React.Component {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _internalValue: string = '';\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n public constructor(props: IMailingInputGroupProps) {\r\n super(props);\r\n this._internalValue = props.initialValue;\r\n\r\n this._onInputChange = this._onInputChange.bind(this);\r\n this._onBlur = this._onBlur.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n \r\n {this._renderValidation()}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n private _onBlur(): void {\r\n this.props.onLoseFirstFocus(this.props.name);\r\n }\r\n\r\n private _onInputChange(event: React.ChangeEvent): void {\r\n this._internalValue = event.target.value;\r\n this.props.onValueChange(event.target.value);\r\n }\r\n\r\n // ==========================================================================\r\n // PRIVATE METHODS\r\n // ==========================================================================\r\n\r\n private _renderValidation(): JSX.Element | void {\r\n if (!this.props.isValid && this.props.isValid !== undefined) {\r\n return (\r\n

\r\n {this._validationMessage}\r\n

\r\n );\r\n }\r\n }\r\n\r\n private get _validationMessage(): string {\r\n return (this.props.validationMessage) ? this.props.validationMessage : this.props.errorMessage;\r\n }\r\n\r\n}","import { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { 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 { MailingInputGroup } from './mailing-list-redirect-form-input-group';\r\n\r\nimport { IMailingListRedirectFormProps } from './mailing-list-redirect-form.props.autogenerated';\r\n\r\nexport interface IMailingListRedirectFormViewProps extends IMailingListRedirectFormProps<{}> {\r\n\r\n}\r\n\r\ntype validationField = {\r\n value: string;\r\n label: string;\r\n isValid?: boolean;\r\n errorMessage?: string;\r\n beenBlurred?: boolean;\r\n};\r\n\r\n/**\r\n *\r\n * MailingListRedirectForm component\r\n * @extends {React.Component}\r\n */\r\n@observer\r\nclass MailingListRedirectForm extends React.Component> {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _email: validationField = {\r\n label: 'Email',\r\n value: ''\r\n };\r\n\r\n private _emailRegex: RegExp = /^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]+(?:-+[a-z0-9]+)*\\.)+(?:xn--[a-z0-9]+|[a-z]{2,16})$/i;\r\n\r\n constructor(props: IMailingListRedirectFormProps<{}>) {\r\n super(props);\r\n this._onSubmitForm = this._onSubmitForm.bind(this);\r\n this._onEmailChange = this._onEmailChange.bind(this);\r\n this._lostFocus = this._lostFocus.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n title,\r\n description,\r\n className,\r\n formLabel,\r\n formPlaceholder,\r\n submitButtonText\r\n } = this.props.config;\r\n\r\n return (\r\n
\r\n {(title || description) &&\r\n
\r\n {title && }\r\n {description && }\r\n
\r\n }\r\n
\r\n \r\n \r\n {(submitButtonText) && submitButtonText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _onEmailChange(email: string): void {\r\n this._email.value = email;\r\n\r\n if (!this._email.beenBlurred) { return; }\r\n this._testForRequirement(this._email, 'Please enter your email address.');\r\n if (this._email.isValid) {\r\n this._testForRegex(this._email, this._emailRegex, 'Please enter a valid email address.');\r\n }\r\n }\r\n\r\n private _lostFocus(label: string): unknown {\r\n\r\n // also run all change events related to the field so that the proper\r\n // errors propogate on blur\r\n switch (label) {\r\n case this._email.label:\r\n this._email.beenBlurred = true;\r\n return this._onEmailChange(this._email.value);\r\n default:\r\n return console.warn('[mailing-list-redirect-form:MailingFormComponent._lostFocus] failed to link a field');\r\n }\r\n }\r\n\r\n private _testForRequirement(field: validationField, errorMessage: string): void {\r\n if (field.value.length === 0) {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\r\n } else {\r\n field.isValid = true;\r\n }\r\n this.setState({});\r\n }\r\n\r\n private _testForRegex(field: validationField, regex: RegExp, errorMessage: string): void {\r\n if (regex.test(field.value)) {\r\n field.isValid = true;\r\n } else {\r\n field.isValid = false;\r\n field.errorMessage = errorMessage;\r\n }\r\n }\r\n\r\n private _isButtonDisabled(): boolean {\r\n\r\n // button will only be disabled if all input fields are considered invalid\r\n // or undefined (meaning not filled out or touched)\r\n return !(this._email.value);\r\n }\r\n\r\n private _onSubmitForm(): void {\r\n if (!this._email.isValid) { return; }\r\n let redirectUrl = this.props.config.redirectUrl.linkUrl.destinationUrl;\r\n redirectUrl = redirectUrl.indexOf('?') === -1 ? `${redirectUrl}?mailFormEmail=${encodeURIComponent(this._email.value)}` : `${redirectUrl}&mailFormEmail=${encodeURIComponent(this._email.value)}`;\r\n window.location.assign(redirectUrl);\r\n }\r\n}\r\n\r\nexport default MailingListRedirectForm;\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 { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport classname from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ISortAndFilterContainerProps } from './sort-and-filter-container.props.autogenerated';\r\nimport { GridSize, ISortAndFilterContainerState } from './sort-and-filter-container.state';\r\n\r\n/**\r\n *\r\n * SortAndFilterContainer component.\r\n * @extends {React.Component, ISortAndFilterContainerState>}\r\n */\r\n@observer\r\nclass SortAndFilterContainer extends React.Component, ISortAndFilterContainerState> {\r\n @observable\r\n private _viewport: GridSize;\r\n\r\n private _modalExampleBtn: React.RefObject;\r\n\r\n constructor(props: ISortAndFilterContainerProps<{}>) {\r\n super(props);\r\n\r\n this._viewport = 'lg';\r\n this._modalExampleBtn = React.createRef();\r\n this._toggleModal = this._toggleModal.bind(this);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n\r\n this.state = {\r\n modalIsOpen: false\r\n };\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return (this._viewport === 'xs' || this._viewport === 'sm' || this._viewport === 'md');\r\n }\r\n\r\n public componentDidMount(): void {\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.addEventListener) {\r\n window.addEventListener('resize', this._updateViewport);\r\n this._updateViewport();\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.addEventListener) {\r\n window.removeEventListener('resize', this._updateViewport);\r\n }\r\n }\r\n\r\n /**\r\n * Renders both desktop and mobile versions of this container. The expectation is for the theme\r\n * to show/hide each based on viewport size.\r\n */\r\n public render(): JSX.Element {\r\n if (this.isMobile) {\r\n return this._renderMobile();\r\n }\r\n return this._renderDesktop();\r\n }\r\n\r\n private _renderDesktop(): JSX.Element {\r\n const { slots } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {slots.refineMenu}\r\n
\r\n
\r\n
\r\n
\r\n {slots.choiceSummary}\r\n
\r\n
\r\n {slots.sorting}\r\n
\r\n
\r\n
\r\n
\r\n {slots.products}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderMobile(): JSX.Element {\r\n const { slots, resources } = this.props;\r\n const { modalIsOpen } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {slots.choiceSummary}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {resources.mobileModalTitle}\r\n \r\n \r\n {resources.mobileModalTitle}\r\n \r\n
{slots.sorting}
\r\n
\r\n
{slots.refineMenu}
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {slots.products}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _toggleModal(): void {\r\n this.setState({\r\n modalIsOpen: !this.state.modalIsOpen\r\n });\r\n }\r\n\r\n private _updateViewport(): void {\r\n this._viewport = this._getViewport();\r\n\r\n if (this.isMobile && this.state.modalIsOpen && !this.isMobile) {\r\n this._toggleModal();\r\n }\r\n }\r\n\r\n // TODO: if DCR 22025838 is approved then move this logic to SDK and reuse across Starter Kit modules\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n\r\n return 'xs';\r\n }\r\n}\r\n\r\nexport default SortAndFilterContainer;\r\n","export const apiToken: string = 'cd6dd0b2c43c360ae4d59b5147d52fd3';","import * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { apiToken } from './get-wine-api-token';\r\n\r\n/**\r\n * Class Definition for constructing the wine location query\r\n */\r\nexport class GetWineFilterable extends Msdyn365.CommerceEntityInput implements Msdyn365.IActionInput {\r\n\r\n public queryFilters: Filters;\r\n\r\n private readonly _token: string = apiToken;\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n constructor(filters: Filters) {\r\n super({\r\n dataCacheType: 'request',\r\n cacheObjectType: 'IGetWineLocationData',\r\n cacheKey: JSON.stringify(filters)\r\n });\r\n this.queryFilters = filters;\r\n return this;\r\n }\r\n\r\n get token(): string {\r\n return this._token;\r\n }\r\n\r\n /**\r\n * generates an http styled query string to append to the end of a url\r\n *\r\n * @returns http query string\r\n */\r\n public filtersToHTTPQueryString(): string {\r\n let queryString = '';\r\n Object.keys(this.queryFilters).forEach(queryKey => {\r\n const queryValue = this.queryFilters[queryKey];\r\n queryString += `${queryKey}=${queryValue}&`;\r\n });\r\n queryString = queryString.substr(0, queryString.length - 1);\r\n return (queryString.length > 0) ? `?${queryString}` : '';\r\n }\r\n}","/**\r\n * Class definition for the output controller of the API. Acts as a middle layer\r\n * and ensures that the data stays consistent internally\r\n */\r\nexport class WineMapper {\r\n protected _input: Input;\r\n constructor(input: Input) {\r\n this._input = input;\r\n }\r\n\r\n protected _applyMap(\r\n inputData: data,\r\n inputMap: map\r\n ): T {\r\n const mappedOutput = {};\r\n Object.keys(inputMap).forEach(key => {\r\n mappedOutput[key] = inputData[inputMap[key]];\r\n });\r\n return mappedOutput;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { GetWineFilterable } from './get-wine-filterable-class';\r\nimport { WineMapper } from './get-wine-mapper-class';\r\n\r\n/**\r\n * GetWineInternationalLocation Input Action\r\n */\r\n\r\nexport class GetWineInternationalLocationInput extends GetWineFilterable {\r\n\r\n private readonly _url: string = 'https://api.smwe.com';\r\n\r\n public get url(): string {\r\n const { brand_code, country } = this.queryFilters;\r\n\r\n const fullUrl = `${this._url}/v1/${brand_code}/distributors?country=${country}`;\r\n if (!brand_code) {\r\n console.error('Brand Code is not declared. This is required for the module to do calls');\r\n }\r\n return fullUrl;\r\n }\r\n}\r\n\r\n// =============================================================================\r\n// MAPPER\r\n// =============================================================================\r\n\r\nenum GetWineInternationalLocationMap {\r\n totalResults = 'total_results',\r\n totalPages = 'total_pages',\r\n page = 'page'\r\n}\r\n\r\nenum GetWineInternationalLocationDistributorMap {\r\n jdeDistributorNumber = 'jde_distributor_number',\r\n brandCode = 'brand_code',\r\n name = 'name',\r\n city = 'city',\r\n state = 'state',\r\n zip = 'zip',\r\n phone = 'phone',\r\n url = 'url'\r\n}\r\n\r\nenum GetWineInternationalLocationCountryMap {\r\n iso = 'iso',\r\n name = 'name',\r\n printableName = 'printable_name',\r\n iso3 = 'iso3',\r\n numCode = 'numcode'\r\n}\r\n\r\n/**\r\n * Class definition for the output controller of the API. Acts as a middle layer\r\n * and ensures that the data stays consistent internally\r\n */\r\nclass GetWineLocationInternationalMapper extends WineMapper {\r\n public get output(): IGetWineInternationalLocationOutput {\r\n const output: IGetWineInternationalLocationOutput = {\r\n data: [],\r\n totalPages: this._input[GetWineInternationalLocationMap.totalPages],\r\n totalResults: this._input[GetWineInternationalLocationMap.totalResults],\r\n page: this._input[GetWineInternationalLocationMap.page]\r\n };\r\n\r\n this._input.distributors.forEach(distributor => {\r\n const distributorOutput =\r\n this._applyMap(distributor, GetWineInternationalLocationDistributorMap);\r\n distributorOutput.country =\r\n this._applyMap(distributor.country, GetWineInternationalLocationCountryMap);\r\n output.data.push(distributorOutput);\r\n });\r\n return output;\r\n }\r\n}\r\n\r\n// =============================================================================\r\n// INTERFACES\r\n// =============================================================================\r\n\r\nexport interface IGetWineInternationalQueryFilters {\r\n brand_code?: string;\r\n country: string;\r\n pagination?: boolean;\r\n page?: number;\r\n per_page?: number;\r\n}\r\n\r\n// =============================================================================\r\n// OUTPUT INTERFACES\r\n// =============================================================================\r\n\r\nexport interface IGetWineInternationalLocationOutput {\r\n totalResults: number;\r\n totalPages: number;\r\n page: number;\r\n data: IGetWineInternationalDistributorOuput[];\r\n}\r\n\r\nexport interface IGetWineInternationalDistributorOuput {\r\n jdeDistributorNumber: number;\r\n brandCode: string;\r\n name: string;\r\n city: string;\r\n state: string;\r\n country: IGetWineInternationalDistributorCountryOutput;\r\n zip: string;\r\n phone: string;\r\n url: string;\r\n}\r\n\r\ninterface IGetWineInternationalDistributorCountryOutput {\r\n iso: string;\r\n name: string;\r\n printableName: string;\r\n iso3: string;\r\n numCode: number;\r\n}\r\n\r\n// =============================================================================\r\n// INPUT INTERFACES\r\n// =============================================================================\r\n\r\ninterface IGetWineInternationalLocationInput {\r\n total_results: number;\r\n total_pages: number;\r\n distributors: IGetWineInternationalDistributorInput[];\r\n}\r\n\r\ninterface IGetWineInternationalDistributorInput {\r\n jde_distributor_number: number;\r\n brand_code: string;\r\n name: string;\r\n city: string;\r\n state: string;\r\n country: IGetWineInternationalDistributorCountryInput;\r\n zip: string;\r\n phone: string;\r\n url: string;\r\n}\r\n\r\ninterface IGetWineInternationalDistributorCountryInput {\r\n iso: string;\r\n name: string;\r\n printable_name: string;\r\n iso3: string;\r\n numcode: number;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the API call\r\n */\r\nconst createWineInternationalLocationInput =\r\n (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n if (!args.config) {\r\n throw new Error(`[createWineInternationalLocationInput] configuration was invalid: ${args.config}`);\r\n }\r\n return new GetWineInternationalLocationInput(args.config);\r\n };\r\n\r\n/**\r\n * TODO: Use this function to call your API and process the results as needed\r\n */\r\nasync function action(input: GetWineInternationalLocationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n const response = await Msdyn365.sendRequest(input.url, 'get', apiSettings, {\r\n headers: {\r\n Authorization: `Token token=\"${input.token}\"`\r\n }\r\n });\r\n return new GetWineLocationInternationalMapper(response.data).output;\r\n}\r\n\r\nexport default Msdyn365.createDataAction({\r\n action: >action,\r\n input: createWineInternationalLocationInput\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { GetWineFilterable } from './get-wine-filterable-class';\r\nimport { WineMapper } from './get-wine-mapper-class';\r\n\r\n// =============================================================================\r\n// API CONSTRUCTION\r\n// =============================================================================\r\n/**\r\n * Class Definition for constructing the wine location query\r\n */\r\nexport class GetWineLocationInput extends GetWineFilterable {\r\n\r\n private readonly _url: string = 'https://api.smwe.com/v1/XXX/retailers';\r\n\r\n get url(): string {\r\n return this._url;\r\n }\r\n}\r\n\r\n// =============================================================================\r\n// API MAPPER\r\n// =============================================================================\r\n\r\nenum GetWineLocationMap {\r\n totalResults = 'total_results',\r\n totalPages = 'total_pages',\r\n page = 'page'\r\n}\r\n\r\nenum GetWineLocationRetailerMap {\r\n code = 'code',\r\n name = 'name',\r\n address = 'address',\r\n city = 'city',\r\n state = 'state',\r\n zip = 'zip',\r\n lon = 'lon',\r\n lat = 'lat',\r\n onPremise = 'on_premise',\r\n distance = 'distance'\r\n}\r\n\r\nenum GetWineLocationProductMap {\r\n productKey = 'product_key',\r\n brandCode = 'brand_code',\r\n productCode = 'product_code',\r\n description = 'description',\r\n}\r\n\r\n/**\r\n * Class definition for the output controller of the API. Acts as a middle layer\r\n * and ensures that the data stays consistent internally\r\n */\r\nclass GetWineLocationMapper extends WineMapper {\r\n public get output(): IGetWineLocationDataOutput {\r\n const output: IGetWineLocationDataOutput = {\r\n data: [],\r\n totalPages: this._input[GetWineLocationMap.totalPages],\r\n totalResults: this._input[GetWineLocationMap.totalResults],\r\n page: this._input[GetWineLocationMap.page]\r\n };\r\n\r\n this._input.retailers.forEach(retailer => {\r\n const retailerProducts: IGetWineLocationProductOutput[] = [];\r\n const mappedRetailer =\r\n this._applyMap(retailer, GetWineLocationRetailerMap);\r\n mappedRetailer.products = retailerProducts;\r\n output.data.push(mappedRetailer);\r\n\r\n retailer.products.forEach(product => {\r\n retailerProducts.push(\r\n this._applyMap(product, GetWineLocationProductMap)\r\n );\r\n });\r\n });\r\n\r\n return output;\r\n }\r\n}\r\n\r\n// =============================================================================\r\n// WINE LOCATION INTERFACE OUTPUT\r\n// =============================================================================\r\n\r\nexport interface IGetWineLocationDataOutput {\r\n 'totalResults': number;\r\n 'totalPages': number;\r\n 'page': number;\r\n 'data': IGetWineLocationRetailerOutput[];\r\n}\r\n\r\nexport interface IGetWineLocationRetailerOutput {\r\n 'code': number;\r\n 'name': string;\r\n 'address': string;\r\n 'city': string;\r\n 'state': string;\r\n 'zip': string;\r\n 'lon': number;\r\n 'lat': number;\r\n 'onPremise': boolean;\r\n 'distance': number;\r\n 'products': IGetWineLocationProductOutput[];\r\n}\r\n\r\nexport interface IGetWineLocationProductOutput {\r\n 'productKey': string;\r\n 'brandCode': string;\r\n 'productCode': string;\r\n 'description': string;\r\n}\r\n\r\n// =============================================================================\r\n// WINE LOCATION INTERFACE INPUT\r\n// =============================================================================\r\n\r\ninterface IGetWineLocationDataInput {\r\n 'total_results': number;\r\n 'total_pages': number;\r\n 'page': number;\r\n 'retailers': IGetWineLocationRetailerInput[];\r\n}\r\n\r\ninterface IGetWineLocationRetailerInput {\r\n 'code': number;\r\n 'name': string;\r\n 'address': string;\r\n 'city': string;\r\n 'state': string;\r\n 'zip': string;\r\n 'lon': number;\r\n 'lat': number;\r\n 'on_premise': boolean;\r\n 'distance': number;\r\n 'products': IGetWineLocationProductInput[];\r\n}\r\n\r\ninterface IGetWineLocationProductInput {\r\n 'product_key': string;\r\n 'brand_code': string;\r\n 'product_code': string;\r\n 'description': string;\r\n}\r\n\r\n/**\r\n * query filter definition\r\n */\r\nexport interface IGetWineLocationQueryFilters {\r\n product?: string;\r\n brand?: string;\r\n radius?: number;\r\n pagination?: boolean;\r\n page?: number;\r\n per_page?: number;\r\n on_premise?: boolean;\r\n location: string;\r\n}\r\n\r\n// =============================================================================\r\n// CREATE INPUT\r\n// =============================================================================\r\n/**\r\n * constructs a wine location query and returns it to the action\r\n */\r\nconst createWineLocationInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n if (!args.config) { throw new Error(`[createWineLocationInput] configuration was invalid: ${args.config}`); }\r\n return new GetWineLocationInput(args.config);\r\n};\r\n\r\n// =============================================================================\r\n// RUN INPUT / ACTION\r\n// =============================================================================\r\n/**\r\n * api runner\r\n * @returns the location data\r\n */\r\nasync function getWineLocationAction(input: GetWineLocationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // query request and return response full of locations to purchase wine\r\n const response = await Msdyn365.sendRequest(`${input.url}${input.filtersToHTTPQueryString()}`, 'get', apiSettings, {\r\n headers: {\r\n Authorization: `Token token=\"${input.token}\"`\r\n }\r\n });\r\n return new GetWineLocationMapper(response.data).output;\r\n}\r\n\r\nexport default Msdyn365.createDataAction({\r\n action: >getWineLocationAction,\r\n input: createWineLocationInput\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { GetWineFilterable } from './get-wine-filterable-class';\r\n\r\n/**\r\n * query filter definition\r\n */\r\nexport interface IGetWineProductQueryFilters {\r\n brand?: string;\r\n}\r\n\r\n/**\r\n * GetWineProducts Input Action\r\n */\r\n\r\nexport class GetWineProductsInput extends GetWineFilterable {\r\n\r\n private readonly _url: string = 'https://api.smwe.com';\r\n\r\n public get url(): string {\r\n const { brand } = this.queryFilters;\r\n\r\n const fullUrl = `${this._url}/v1/${brand}/products`;\r\n if (!brand) {\r\n console.error('Brand Code is not declared. This is required for the module to do calls');\r\n }\r\n return fullUrl;\r\n }\r\n}\r\n\r\nexport interface IGetWineProductsData {\r\n product_key: string;\r\n brand_code: string;\r\n product_code: string;\r\n description: string;\r\n}\r\n\r\nexport interface IGetWineCountriesDataOutput {\r\n iso: string;\r\n iso3: string;\r\n name: string;\r\n printableName: string;\r\n numCode: number;\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n if (!args.config) { throw new Error(`[createWineProductsInput] configuration was invalid: ${args.config}`); }\r\n return new GetWineProductsInput(args.config);\r\n};\r\n\r\n/**\r\n * action that retrieves the list of wine products\r\n */\r\nasync function action(input: GetWineProductsInput, ctx: Msdyn365.IActionContext): Promise {\r\n const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n const response = await Msdyn365.sendRequest(input.url, 'get', apiSettings, {\r\n headers: {\r\n Authorization: `Token token=\"${input.token}\"`\r\n }\r\n });\r\n return response.data;\r\n}\r\n\r\nexport default Msdyn365.createDataAction({\r\n action: >action,\r\n input: createInput\r\n});\r\n","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport type FindWineDropdownItem = { label: string | number; value: string | number };\r\n\r\ninterface IFindWineDropdownMenuProps {\r\n itemList: FindWineDropdownItem[];\r\n defaultValue?: string;\r\n id?: string;\r\n onChange(newItem: FindWineDropdownItem | undefined): unknown;\r\n}\r\n\r\n/**\r\n * class definition for creating a dropdown menu for the wine page\r\n */\r\n@observer\r\nexport class FindWineDropdownMenu extends React.Component {\r\n\r\n /**\r\n * field representation on the current value of what is selected\r\n */\r\n @observable private _value: string = this.props.defaultValue || '';\r\n public constructor(props: IFindWineDropdownMenuProps) {\r\n super(props);\r\n\r\n this._handleOnChange = this._handleOnChange.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n let items = this._constructItems();\r\n if (!this._value) {\r\n items = [\r\n (\r\n \r\n {'Select Country'}\r\n \r\n )\r\n , ...items];\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n /**\r\n * handles for changing selection\r\n *\r\n * @param event change event\r\n */\r\n private _handleOnChange(event: React.ChangeEvent): void {\r\n const newItem = this.props.itemList.find(item => event.target.value === item.value.toString());\r\n this._value = event.target.value;\r\n this.props.onChange(newItem);\r\n }\r\n\r\n /**\r\n * constructs a list of JSX elements representing options for a select tag\r\n */\r\n private _constructItems(): JSX.Element[] {\r\n return this.props.itemList.map(\r\n (item, index) => {\r\n const isAriaSelected = item.value === this._value;\r\n return (\r\n \r\n {item.label}\r\n \r\n );\r\n }\r\n );\r\n }\r\n}","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IGetWineLocationQueryFilters } from './actions/get-wine-location';\r\nimport { IGetWineProductsData } from './actions/get-wine-products';\r\nimport { FindWineDropdownItem, FindWineDropdownMenu } from './wine-finder-dropdown-menu';\r\nimport { IPlaceholdersData, IWineFinderFormConfig, IWineFinderFormResources } from './wine-finder-form.props.autogenerated';\r\n\r\ninterface IWineFinderQueryLocationProps {\r\n defaultRadius: number;\r\n resources: IWineFinderFormResources;\r\n displayFilters: boolean;\r\n placeholders?: IPlaceholdersData;\r\n config: IWineFinderFormConfig;\r\n products: IGetWineProductsData[] | undefined;\r\n active?: boolean;\r\n onQuerySearch(filters: IGetWineLocationQueryFilters): unknown;\r\n}\r\n\r\ninterface IWineFinderState{\r\n loading?:boolean;\r\n}\r\n\r\n/**\r\n * Class definition responsible for generating valid queries for getting wine\r\n */\r\n@observer\r\nclass WineFinderQueryLocation extends React.Component {\r\n\r\n // =========================================================================\r\n // OBSERVABLES AND FIELDS\r\n // =========================================================================\r\n\r\n /**\r\n * field representing the location being typed in by the user\r\n */\r\n @observable private _queryLocation: string = '';\r\n\r\n /**\r\n * field represneting the radius or furthest distance from the location\r\n * typed in by the user\r\n */\r\n @observable private _queryRadius: number = 5;\r\n\r\n @observable private _allowRetail: boolean = false;\r\n @observable private _allowRestaurant: boolean = false;\r\n\r\n /**\r\n * keeps the selected product in the wine product dropdownlist\r\n */\r\n @observable private _product: string = '';\r\n\r\n /**\r\n * list of choosable radii to select in dropdown menu\r\n */\r\n private _queryRadii: number[] = [5, 10, 20, 50];\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public constructor(props: IWineFinderQueryLocationProps) {\r\n super(props);\r\n this._handleQueryLocationChange = this._handleQueryLocationChange.bind(this);\r\n this._handleSearchRadiusChange = this._handleSearchRadiusChange.bind(this);\r\n this._toggleRetail = this._toggleRetail.bind(this);\r\n this._toggleRestaurant = this._toggleRestaurant.bind(this);\r\n this._doQuery = this._doQuery.bind(this);\r\n this._handleOnChange = this._handleOnChange.bind(this);\r\n\r\n this._allowRetail = !!props.config.defaultFilters?.retail;\r\n this._allowRestaurant = !!props.config.defaultFilters?.restaurant;\r\n this.state={\r\n loading: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const itemList = this._queryRadii.map(radii => { return { label: radii, value: radii }; });\r\n const allowRadiiDisplay = this.props.defaultRadius === 0;\r\n const {\r\n resources: {\r\n wineFinder__domesticTitle,\r\n wineFinder__domesticSearchRadiusLabel,\r\n wineFinder__retailFilterText,\r\n wineFinder__restaurantFilterText\r\n }\r\n } = this.props;\r\n const { domesticSearch, enablePlaceholders } = this.props.placeholders || {};\r\n const isActive = this.props.active || false;\r\n\r\n const cssClass = isActive?'find-wine-query active':'find-wine-query';\r\n\r\n const onFormSubmit=(e: { preventDefault: any; })=>{\r\n e.preventDefault();\r\n this._doQuery();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {wineFinder__domesticTitle &&

{wineFinder__domesticTitle}

}\r\n \r\n {enablePlaceholders ? domesticSearch : ''}\r\n \r\n \r\n {allowRadiiDisplay &&\r\n
\r\n \r\n {wineFinder__domesticSearchRadiusLabel}\r\n\r\n \r\n \r\n
\r\n }\r\n {this.props.config.showChooseWineInput && this._renderProductsDropdownList()}\r\n {\r\n (this.props.displayFilters && this._hasFilterActive) &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n \r\n
\r\n {(this._isInvalid() && this._queryLocation.length >= 5) &&
{'Zip Code is invalid'}
}\r\n {this.state.loading ?
Loading Results...
: ''}\r\n
\r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n /**\r\n * process to send the query with appropriate fields to the parent component\r\n */\r\n private _doQuery(): undefined {\r\n this.setState({loading: true});\r\n let queryRadius = this.props.defaultRadius;\r\n if (queryRadius === 0) {\r\n queryRadius = this._queryRadius;\r\n }\r\n\r\n const filters: IGetWineLocationQueryFilters = {\r\n location: this._queryLocation,\r\n radius: queryRadius,\r\n on_premise: this._allowRestaurant\r\n };\r\n\r\n // if both are checked or both are unchecked search for everything\r\n if (this._allowRestaurant === this._allowRetail) {\r\n delete filters.on_premise;\r\n }\r\n\r\n if (!this._hasFilterActive) {\r\n const { filterState } = this.props.config;\r\n\r\n // idea here is essentially the author has forced the premise type boolean\r\n // through the configuration state by disabling all adjustable filters. thats\r\n // why logic looks small\r\n filters.on_premise = !!filterState?.restaurantActive;\r\n\r\n // just to make sure that it returns everything if both are unchecked\r\n if (!filterState?.restaurantActive && !filterState?.retailActive) {\r\n delete filters.on_premise;\r\n }\r\n }\r\n\r\n if (this.props.config.showChooseWineInput && this._product) {\r\n filters.product = this._product;\r\n }\r\n\r\n this.props.onQuerySearch(filters);\r\n return undefined;\r\n }\r\n\r\n private get _hasFilterActive(): boolean {\r\n const { filterState } = this.props.config;\r\n return !!(filterState?.restaurantActive && filterState?.retailActive);\r\n }\r\n\r\n /**\r\n * handles changes for the radius\r\n */\r\n private _handleSearchRadiusChange(item: FindWineDropdownItem | undefined): void {\r\n if (item) {\r\n this._queryRadius = Number(item.value);\r\n }\r\n }\r\n\r\n private _toggleRetail(): void {\r\n this._allowRetail = !this._allowRetail;\r\n }\r\n\r\n private _toggleRestaurant(): void {\r\n this._allowRestaurant = !this._allowRestaurant;\r\n }\r\n\r\n /**\r\n * handles changes for the location entered\r\n */\r\n private _handleQueryLocationChange(event: React.ChangeEvent): void {\r\n this._queryLocation = event.target.value;\r\n return undefined;\r\n }\r\n\r\n private _isInvalid(): boolean {\r\n const regex = /^\\d{5}$/;\r\n return (!regex.test(this._queryLocation));\r\n }\r\n\r\n /**\r\n * Display a Wine products dropdownlist\r\n */\r\n private _renderProductsDropdownList(): JSX.Element {\r\n return(\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n /**\r\n * handles for changing selection on the wine products dropdownlist\r\n *\r\n * @param event change event\r\n */\r\n private _handleOnChange(event: React.ChangeEvent): void {\r\n this._product = event.target.value;\r\n }\r\n\r\n // Render dropdown options from array.\r\n private _renderProductOptions(): JSX.Element[] {\r\n const options: IGetWineProductsData[] | undefined = this.props.products ? this.props.products : [];\r\n return options.map((option, index) => {\r\n return (\r\n \r\n {option.description}\r\n \r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default WineFinderQueryLocation;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { apiToken } from './get-wine-api-token';\r\nimport { WineMapper } from './get-wine-mapper-class';\r\n\r\n/**\r\n * GetWineCountries Input Action\r\n */\r\n\r\nexport class GetWineCountriesInput extends Msdyn365.CommerceEntityInput implements Msdyn365.IActionInput {\r\n\r\n private readonly _url: string = 'https://api.smwe.com/v1/SLR/countries';\r\n\r\n private readonly _token: string = apiToken;\r\n\r\n constructor() {\r\n super({ shouldCacheOutput: true, cacheObjectType: 'IGetWineCountriesData', cacheKey: 'SINGLE' });\r\n }\r\n\r\n public get url(): string { return this._url; }\r\n public get token(): string { return this._token; }\r\n}\r\n\r\nenum IGetWineCountriesMap {\r\n iso = 'iso',\r\n iso3 = 'iso3',\r\n name = 'name',\r\n printableName = 'printable_name',\r\n numCode = 'numcode'\r\n}\r\n\r\n/**\r\n * class definition for the output controller of the API\r\n */\r\nclass GetWineCountriesMapper extends WineMapper {\r\n public get output(): IGetWineCountriesDataOutput[] {\r\n return this._input.map(country => {\r\n return this._applyMap<\r\n IGetWineCountriesDataOutput,\r\n IGetWineCountriesData,\r\n typeof IGetWineCountriesMap\r\n >(country, IGetWineCountriesMap);\r\n });\r\n }\r\n}\r\n\r\nexport interface IGetWineCountriesData {\r\n iso: string;\r\n iso3: string;\r\n name: string;\r\n printable_name: string;\r\n numcode: number;\r\n}\r\n\r\nexport interface IGetWineCountriesDataOutput {\r\n iso: string;\r\n iso3: string;\r\n name: string;\r\n printableName: string;\r\n numCode: number;\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetWineCountriesInput();\r\n};\r\n\r\n/**\r\n * action that retrieves the list of countries\r\n */\r\nasync function action(input: GetWineCountriesInput, ctx: Msdyn365.IActionContext): Promise {\r\n const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n const response = await Msdyn365.sendRequest(input.url, 'get', apiSettings, {\r\n headers: {\r\n Authorization: `Token token=\"${input.token}\"`\r\n }\r\n });\r\n return new GetWineCountriesMapper(response.data).output;\r\n}\r\n\r\nexport default Msdyn365.createDataAction({\r\n action: >action,\r\n input: createInput\r\n});\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport WineCountries, { GetWineCountriesInput, IGetWineCountriesDataOutput } from './actions/get-wine-countries';\r\nimport { IGetWineInternationalQueryFilters } from './actions/get-wine-international-location';\r\nimport { FindWineDropdownItem, FindWineDropdownMenu } from './wine-finder-dropdown-menu';\r\nimport { IWineFinderFormResources } from './wine-finder-form.props.autogenerated';\r\n\r\ninterface IWineFinderQueryLocationInternational {\r\n actionContext: IActionContext;\r\n resources: IWineFinderFormResources;\r\n submitText: string | undefined;\r\n active?: boolean;\r\n onQuerySearch(filters: IGetWineInternationalQueryFilters): unknown;\r\n}\r\n/**\r\n * class definition for the component responsible for querying internationally\r\n */\r\n@observer\r\nclass WineFinderQueryLocationInternational extends React.Component {\r\n\r\n /**\r\n * field representing the country key currently selected by the selector\r\n */\r\n @observable private _selectedCountry: string | undefined;\r\n\r\n @observable private _countries: IGetWineCountriesDataOutput[] = [];\r\n\r\n constructor(props: IWineFinderQueryLocationInternational) {\r\n super(props);\r\n\r\n this._handleCountrySelectionChange = this._handleCountrySelectionChange.bind(this);\r\n this._doQuery = this._doQuery.bind(this);\r\n\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._queryCountries().catch(err => console.warn(err));\r\n }\r\n\r\n public render(): JSX.Element {\r\n const itemList = this._countries.map(country => {\r\n return {\r\n label: country.name,\r\n value: country.iso\r\n } as FindWineDropdownItem;\r\n });\r\n\r\n const {\r\n wineFinder__internationalTitle,\r\n wineFinder__internationalCountryLabel\r\n } = this.props.resources;\r\n const isActive = this.props.active || false;\r\n\r\n const cssClass = isActive?'find-wine-query-int active':'find-wine-query-int';\r\n\r\n return (\r\n
\r\n

{wineFinder__internationalTitle}

\r\n \r\n {wineFinder__internationalCountryLabel}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n /**\r\n * triggers the api call for country\r\n */\r\n private _doQuery(): void {\r\n if (!this._isInvalid) {\r\n this.props.onQuerySearch({\r\n country: this._selectedCountry as string\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * sets the selected country to a new country code\r\n *\r\n * @param newCountry new country to switch to\r\n */\r\n private _handleCountrySelectionChange(newCountry: FindWineDropdownItem | undefined): void {\r\n if (newCountry) {\r\n this._selectedCountry = newCountry.value as string;\r\n }\r\n }\r\n\r\n private get _isInvalid(): boolean {\r\n return !this._selectedCountry;\r\n }\r\n\r\n private async _queryCountries(): Promise {\r\n const input = new GetWineCountriesInput();\r\n const countries = await WineCountries(input, this.props.actionContext);\r\n this._countries = countries;\r\n }\r\n}\r\n\r\nexport default WineFinderQueryLocationInternational;","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IWineFinderForm contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum resultsDisplay {\r\n paginate = 'paginate',\r\n append = 'append'\r\n}\r\n\r\nexport const enum showProductsConfiguration {\r\n showButton = 'showButton',\r\n hideProductsHideButton = 'hideProductsHideButton',\r\n showProductsHideButton = 'showProductsHideButton'\r\n}\r\n\r\nexport interface IWineFinderFormConfig extends Msdyn365.IModuleConfig {\r\n perPage?: number;\r\n resultsDisplay?: resultsDisplay;\r\n singlePage?: boolean;\r\n brand?: string;\r\n title?: ITitleData;\r\n searchText?: Msdyn365.RichText;\r\n hideInternational?: boolean;\r\n searchRadius: number;\r\n showFilterButtons: boolean;\r\n showProductsConfiguration?: showProductsConfiguration;\r\n showChooseWineInput?: boolean;\r\n showAllProductsToggle?: boolean;\r\n showAllProductsLabel?: IShowAllProductsLabelData;\r\n showProductsLabel?: IShowProductsLabelData;\r\n placeholders?: IPlaceholdersData;\r\n defaultFilters?: IDefaultFiltersData;\r\n filterState?: IFilterStateData;\r\n wineFinderSubmit?: string;\r\n mapText?: string;\r\n hideNumbers?: boolean;\r\n USLabelText?: string;\r\n internationalLabelText?: string;\r\n}\r\n\r\nexport interface IWineFinderFormResources {\r\n wineFinder__internationalTitle: string;\r\n wineFinder__internationalCountryLabel: string;\r\n wineFinder__domesticTitle: string;\r\n wineFinder__domesticSearchRadiusLabel: string;\r\n wineFinder__backToFind: string;\r\n wineFinder__noResults: string;\r\n wineFinder__searchAgain: string;\r\n wineFinder__showMoreButton: string;\r\n wineFinder__showProducts: string;\r\n wineFinder__hideProducts: string;\r\n wineFinder__internationalWebsiteLabel: string;\r\n wineFinder__retailFilterText: string;\r\n wineFinder__restaurantFilterText: string;\r\n}\r\n\r\nexport const enum TitleTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface ITitleData {\r\n text: string;\r\n tag?: TitleTag;\r\n}\r\n\r\nexport interface IShowAllProductsLabelData {\r\n hideAllProducts?: string;\r\n showAllProducts?: string;\r\n}\r\n\r\nexport interface IShowProductsLabelData {\r\n hideProducts?: string;\r\n showProducts?: string;\r\n}\r\n\r\nexport interface IPlaceholdersData {\r\n enablePlaceholders?: boolean;\r\n domesticSearch?: string;\r\n}\r\n\r\nexport interface IDefaultFiltersData {\r\n retail?: boolean;\r\n restaurant?: boolean;\r\n}\r\n\r\nexport interface IFilterStateData {\r\n retailActive?: boolean;\r\n restaurantActive?: boolean;\r\n}\r\n\r\nexport interface IWineFinderFormProps extends Msdyn365.IModule {\r\n resources: IWineFinderFormResources;\r\n config: IWineFinderFormConfig;\r\n}\r\n","import { observable, reaction, toJS } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IExpandedState } from './wine-finder-form';\r\nimport { IWineFinderFormConfig, IWineFinderFormResources, showProductsConfiguration } from './wine-finder-form.props.autogenerated';\r\n\r\ninterface IWineFinderWineDisplayProps {\r\n wines?: string[];\r\n resources: IWineFinderFormResources;\r\n config: IWineFinderFormConfig;\r\n allOpen: boolean;\r\n}\r\n\r\n/**\r\n * displays a list of wines\r\n */\r\n@observer\r\nclass WineFinderWineDisplay extends React.Component {\r\n @observable private _isOpen: boolean = false;\r\n\r\n private _wines?: string[];\r\n\r\n constructor(props: IWineFinderWineDisplayProps) {\r\n super(props);\r\n this._wines = props.wines;\r\n reaction(\r\n () => this.props.allOpen,\r\n (open) => {\r\n this._isOpen = open;\r\n }\r\n );\r\n\r\n this.state={\r\n expandedState:false\r\n };\r\n\r\n this._closeToggle = this._closeToggle.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n hideProducts,\r\n showProducts\r\n } = this.props.config.showProductsLabel || {hideProducts:'Hide Products', showProducts:'Show Products'};\r\n return (\r\n
\r\n {\r\n this._showButton && \r\n {(this._isOpen) ? hideProducts : showProducts}\r\n \r\n }\r\n {this._renderWineList()}\r\n
\r\n );\r\n }\r\n\r\n private get _showButton(): boolean {\r\n return this.props.config.showProductsConfiguration === showProductsConfiguration.showButton;\r\n }\r\n\r\n private get _showProducts(): boolean {\r\n return this.props.config.showProductsConfiguration === showProductsConfiguration.showProductsHideButton;\r\n }\r\n\r\n private _closeToggle(): void {\r\n this._isOpen = !this._isOpen;\r\n this.setState({\r\n expandedState: !this.state.expandedState\r\n });\r\n }\r\n\r\n private _renderWineList(): JSX.Element | undefined {\r\n\r\n const list: string[] = toJS(this._wines) as string[];\r\n list.sort();\r\n\r\n const wineList = (\r\n
    \r\n {list.map((wine, index) => (
  • {wine}
  • ))}\r\n
\r\n );\r\n\r\n if (this._showProducts && this._wines) { return wineList; }\r\n\r\n if (!this._isOpen || !this._wines) {\r\n return;\r\n }\r\n\r\n return wineList;\r\n }\r\n}\r\n\r\nexport default WineFinderWineDisplay;\r\n","import * as React from 'react';\r\nimport { IWineFinderFormConfig, IWineFinderFormResources } from './wine-finder-form.props.autogenerated';\r\nimport WineFinderWineDisplay from './wine-finder-wine-display';\r\n\r\ninterface IFindWineItemProps {\r\n distance?: number;\r\n website?: string;\r\n phoneNumber?: string;\r\n location: string;\r\n name: string;\r\n numberInList?: number;\r\n type: 'international' | 'US';\r\n mapData?: {\r\n address: string;\r\n zip: string;\r\n };\r\n wines?: string[];\r\n config: IWineFinderFormConfig;\r\n resources: IWineFinderFormResources;\r\n allOpen: boolean;\r\n hideNumbers?: boolean;\r\n}\r\n\r\n/**\r\n * creates tsx for a single retailer, READ ONLY\r\n *\r\n * @param props data on retailers\r\n */\r\nexport const FindWineItem = (props: IFindWineItemProps): JSX.Element => {\r\n const hideNumbers = props.hideNumbers || false;\r\n if (props.type === 'US') {\r\n return (\r\n
\r\n

\r\n {!hideNumbers && `${props.numberInList}.`} {props.name}\r\n

\r\n
\r\n
{props.location}
\r\n
\r\n
{props.distance} miles
\r\n {props.config.mapText || 'Show Map'}\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n

{!hideNumbers && `${props.numberInList}.`} {props.name}

\r\n
\r\n
{props.location}
\r\n
{props.phoneNumber}
\r\n {\r\n // hack for getting the '↵' symbol when no website is here\r\n (props.website && props.website.length > 2) ? (\r\n \r\n {props.resources.wineFinder__internationalWebsiteLabel}\r\n \r\n ) : (
)\r\n }\r\n
\r\n
\r\n );\r\n }\r\n};","import React from 'react';\r\nimport {\r\n IGetWineInternationalDistributorOuput,\r\n IGetWineInternationalLocationOutput,\r\n IGetWineInternationalQueryFilters\r\n} from './actions/get-wine-international-location';\r\nimport {\r\n IGetWineLocationDataOutput,\r\n IGetWineLocationProductOutput,\r\n IGetWineLocationQueryFilters,\r\n IGetWineLocationRetailerOutput\r\n} from './actions/get-wine-location';\r\nimport { FindWineItem } from './wine-finder-display-item';\r\nimport { IWineFinderFormConfig, IWineFinderFormResources } from './wine-finder-form.props.autogenerated';\r\n\r\ntype wineResultContent = (IGetWineLocationRetailerOutput | IGetWineInternationalDistributorOuput)[];\r\n\r\ninterface IWineFinderScrollableProps {\r\n showMoreText: string;\r\n resultType: 'retailer' | 'distributor';\r\n queryFilters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters;\r\n wineLocationData: IGetWineLocationDataOutput | IGetWineInternationalLocationOutput;\r\n wineResults: wineResultContent;\r\n config: IWineFinderFormConfig;\r\n resources: IWineFinderFormResources;\r\n allOpen: boolean;\r\n hideNumbers?: boolean;\r\n onGetMoreContent(filters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters): Promise;\r\n}\r\n\r\n/**\r\n * uses a \"show more\" feature to add to the current wine results instead of\r\n * pagination\r\n */\r\nexport class WineFinderScrollable extends React.Component {\r\n\r\n constructor(props: IWineFinderScrollableProps) {\r\n super(props);\r\n\r\n this._onAddMore = this._onAddMore.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const pageCount = this.props.wineLocationData.totalPages;\r\n const page = this.props.queryFilters.page || 1;\r\n return (\r\n
\r\n
\r\n {this._renderWineResults()}\r\n
\r\n {\r\n page < pageCount &&\r\n \r\n {this.props.showMoreText}\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * renders a list of wine locations\r\n *\r\n * @returns array of JSX Elements to render\r\n */\r\n private _renderWineResults(): JSX.Element[] {\r\n const hideNumbers = this.props.hideNumbers || false;\r\n\r\n if (!this.props.wineResults.length) {\r\n return [(
{this.props.resources.wineFinder__noResults}
)];\r\n }\r\n\r\n if (this.props.resultType === 'retailer') {\r\n return (this.props.wineResults as IGetWineLocationRetailerOutput[]).\r\n map((retailer, key) =>\r\n (\r\n \r\n )\r\n );\r\n } else {\r\n // mapping function that returns an array of jsx retailers\r\n return (this.props.wineResults as IGetWineInternationalDistributorOuput[])\r\n .map((distributor) =>\r\n (\r\n \r\n )\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * returns the name of products, if it exists\r\n *\r\n * @param productArray array of wines\r\n */\r\n private _getProducts(productArray: IGetWineLocationProductOutput[]): string[] {\r\n return productArray.map(product => product.description);\r\n }\r\n\r\n private async _onAddMore(): Promise {\r\n await this.props.onGetMoreContent(this.props.queryFilters);\r\n }\r\n}","import * as React from 'react';\r\n\r\ninterface IWineFinderPagerProps {\r\n totalPages: number;\r\n currentPage: number;\r\n onPageChange(pageChange: number): undefined;\r\n}\r\n\r\n/**\r\n * Component responsible for rendering the pagination aspect of the get wine\r\n * page\r\n */\r\nclass WineFinderPager extends React.Component {\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public render(): JSX.Element {\r\n\r\n const goAsMin = () => {\r\n this._goToMinMaxPage('min');\r\n };\r\n\r\n const goAsMax = () => {\r\n this._goToMinMaxPage('max');\r\n };\r\n\r\n return (\r\n
\r\n {/* tslint:disable-next-line: react-this-binding-issue */}\r\n \r\n {this._renderPages()}\r\n {/* tslint:disable-next-line: react-this-binding-issue */}\r\n \r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n private get _isFirstPagination(): boolean {\r\n return this.range.lower === 0;\r\n }\r\n\r\n private get _isLastPagination(): boolean {\r\n return this.range.higher === this.props.totalPages;\r\n }\r\n /**\r\n * jump to the lowest or highest page\r\n */\r\n private _goToMinMaxPage(minOrMax: 'min' | 'max'): void {\r\n if (minOrMax === 'min') {\r\n this.props.onPageChange(1);\r\n } else {\r\n this.props.onPageChange(this.props.totalPages);\r\n }\r\n }\r\n\r\n /**\r\n * get the range (in bounds) of what indexes are to be rendered\r\n *\r\n * @returns bounds\r\n */\r\n private get range(): { lower: number; higher: number } {\r\n const currentPage = Number(this.props.currentPage);\r\n const lowerBound = Math.max(0, currentPage - 3);\r\n const higherBound = Math.min(this.props.totalPages, lowerBound + 5);\r\n return { lower: lowerBound, higher: higherBound };\r\n }\r\n\r\n /**\r\n * returns JSX elements representing a list of pages clickable and to go to\r\n */\r\n private _renderPages(): JSX.Element[] {\r\n const range = this.range;\r\n return Array(range.higher - range.lower).fill(0).map((value, index) => {\r\n const pageValue = range.lower + index + 1;\r\n if (pageValue === Number(this.props.currentPage)) {\r\n return (\r\n // tslint:disable-next-line: jsx-no-lambda react-this-binding-issue\r\n \r\n );\r\n } else {\r\n return (\r\n // tslint:disable-next-line: jsx-no-lambda react-this-binding-issue\r\n \r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default WineFinderPager;","//import { observable, toJS } from 'mobx';\r\n//import { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IGetWineInternationalLocationOutput, IGetWineInternationalQueryFilters } from './actions/get-wine-international-location';\r\nimport { IGetWineLocationDataOutput, IGetWineLocationProductOutput, IGetWineLocationQueryFilters } from './actions/get-wine-location';\r\nimport { FindWineItem } from './wine-finder-display-item';\r\nimport { IWineFinderFormConfig, IWineFinderFormResources } from './wine-finder-form.props.autogenerated';\r\nimport WineFinderPager from './wine-finder-pager';\r\n\r\ninterface IWineFinderResultsProps {\r\n resultType: 'retailer' | 'distributor';\r\n queryFilters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters;\r\n wineLocation: IGetWineLocationDataOutput | IGetWineInternationalLocationOutput;\r\n resources: IWineFinderFormResources;\r\n config: IWineFinderFormConfig;\r\n allOpen: boolean;\r\n hideNumbers?: boolean;\r\n onPageChange(filters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters): void;\r\n}\r\n\r\n/**\r\n * displays results from a get wine location query\r\n */\r\nclass WineFinderResults extends React.Component {\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public constructor(props: IWineFinderResultsProps) {\r\n super(props);\r\n\r\n this._handlePageChange = this._handlePageChange.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n
\r\n {this._renderWineLocations()}\r\n
\r\n
\r\n {\r\n this.props.wineLocation.data.length &&\r\n
Displaying {this.props.wineLocation.page} of {this.props.wineLocation.totalPages} pages
\r\n\r\n }\r\n {\r\n this.props.wineLocation.data.length &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n /**\r\n * handler for changing page\r\n *\r\n * @param pageChange the number that the page will change to\r\n */\r\n private _handlePageChange(pageChange: number): undefined {\r\n const newQuery = this.props.queryFilters;\r\n newQuery.page = pageChange;\r\n this.props.onPageChange(newQuery);\r\n return undefined;\r\n }\r\n\r\n /**\r\n * renders a list of wine locations\r\n *\r\n * @returns array of JSX Elements to render\r\n */\r\n private _renderWineLocations(): JSX.Element[] {\r\n const hideNumbers = this.props.hideNumbers || false;\r\n if (!this.props.wineLocation.data.length) {\r\n return [(
{this.props.resources.wineFinder__noResults}
)];\r\n }\r\n switch (this.props.resultType) {\r\n case 'retailer':\r\n return (this.props.wineLocation as IGetWineLocationDataOutput).data.\r\n map((retailer, key) =>\r\n (\r\n \r\n )\r\n );\r\n default:\r\n // mapping function that returns an array of jsx retailers\r\n return (this.props.wineLocation as IGetWineInternationalLocationOutput).data\r\n .map((distributor) =>\r\n (\r\n \r\n )\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * returns the name of products, if it exists\r\n *\r\n * @param productArray array of wines\r\n */\r\n private _getProducts(productArray: IGetWineLocationProductOutput[]): string[] {\r\n return productArray.map(product => product.description);\r\n }\r\n}\r\n\r\nexport default WineFinderResults;","/*---------------------------------------------------------------------------------------------\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 * as React from 'react';\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { observable, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport GetInternationalWineLocation, { GetWineInternationalLocationInput, IGetWineInternationalDistributorOuput, IGetWineInternationalLocationOutput, IGetWineInternationalQueryFilters } from './actions/get-wine-international-location';\r\nimport GetWineLocation, { GetWineLocationInput, IGetWineLocationDataOutput, IGetWineLocationQueryFilters, IGetWineLocationRetailerOutput } from './actions/get-wine-location';\r\nimport getWineProducts, { GetWineProductsInput, IGetWineProductQueryFilters, IGetWineProductsData } from './actions/get-wine-products';\r\nimport { IWineFinderFormConfig, IWineFinderFormProps } from './wine-finder-form.props.autogenerated';\r\nimport WineFinderQueryLocation from './wine-finder-query-location';\r\nimport WineFinderQueryLocationInternational from './wine-finder-query-location-international';\r\nimport { WineFinderScrollable } from './wine-finder-scrollable';\r\nimport WineFinderResults from './wine-finder-wine-results';\r\n\r\n// =============================================================================\r\n// INTERFACES AND CONSTANTS\r\n// =============================================================================\r\nconst enum selectedTab {\r\n us = 'us',\r\n international = 'international'\r\n}\r\nexport interface IExpandedState{\r\n expandedState:boolean;\r\n}\r\n\r\n/**\r\n * GetWine component: Component responsible for displaying local wineries based\r\n * on the query input\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass FindWine extends React.Component, IExpandedState> {\r\n\r\n\r\n // =========================================================================\r\n // OBSERVABLES AND FIELDS\r\n // =========================================================================\r\n\r\n /**\r\n * manages which type of page is supposed to be currently rendered\r\n *\r\n * - query: when _pageState is query the search page, will be rendered\r\n * - results: when _pageState is results a list of results will be rendered\r\n */\r\n @observable private _pageState: 'query' | 'results' = 'query';\r\n\r\n /**\r\n * keep the state of the 'Show All Products' toggle\r\n */\r\n @observable private _allOpen: boolean = false;\r\n\r\n /**\r\n * List of wine products\r\n */\r\n @observable private _products: IGetWineProductsData[] | undefined;\r\n\r\n /**\r\n * contains data on the previous domestic wine locations api request\r\n */\r\n @observable private wineLocation: IGetWineLocationDataOutput | undefined;\r\n\r\n /**\r\n * Indicates which is the current selected tab\r\n */\r\n @observable private _selectedTab: string = 'us';\r\n\r\n private _wineLocationDataSet: (IGetWineInternationalDistributorOuput | IGetWineLocationRetailerOutput)[] = [];\r\n\r\n /**\r\n * contains data on the previous international wine locations api request\r\n */\r\n @observable private internationalWineLocation: IGetWineInternationalLocationOutput | undefined;\r\n\r\n /**\r\n * the filters previously used for the last api request\r\n */\r\n private _querySearchFilters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters = {\r\n country: 'all',\r\n location: '',\r\n brand: this.props.config.brand\r\n };\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n public constructor(props: IWineFinderFormProps) {\r\n super(props);\r\n\r\n // bindings for all functions used within the render\r\n this._setWineLocation = this._setWineLocation.bind(this);\r\n this._setWineProducts = this._setWineProducts.bind(this);\r\n this._handleBackToFind = this._handleBackToFind.bind(this);\r\n this._setInternationalWineLocation = this._setInternationalWineLocation.bind(this);\r\n this._handlePageChange = this._handlePageChange.bind(this);\r\n this._getMoreWineLocations = this._getMoreWineLocations.bind(this);\r\n this._closeToggle = this._closeToggle.bind(this);\r\n this._selectUSTab = this._selectUSTab.bind(this);\r\n this._selectInternationalTab = this._selectInternationalTab.bind(this);\r\n\r\n // safeguard product list\r\n reaction(\r\n () => { return this._products; },\r\n () => { this.setState({}); }\r\n );\r\n this.state={\r\n expandedState:false\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.config.showChooseWineInput) {\r\n void this._setWineProducts();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n if (this.props.config.singlePage) {\r\n return (\r\n
\r\n {this._renderQuery()}\r\n {this._pageState === 'results' && this._renderResults()}\r\n
\r\n );\r\n }\r\n\r\n if (this._pageState === 'query') {\r\n return this._renderQuery();\r\n } else {\r\n return this._renderJSXResult();\r\n }\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n private _renderJSXResult(): JSX.Element {\r\n // if we are rendering retailer and the search returned nothing,\r\n // display a special error page stating no results were found\r\n const wineType = (this.wineLocation) ? 'retailer' : 'distributor';\r\n if (wineType === 'retailer' && this.wineLocation && this.wineLocation.data.length === 0) {\r\n return this._renderNoResults();\r\n }\r\n return this._renderResults();\r\n }\r\n\r\n // Select US tab with US search form\r\n private _selectUSTab(): void {\r\n this._selectedTab = 'us';\r\n }\r\n\r\n // Select International tab with International search form\r\n private _selectInternationalTab(): void {\r\n this._selectedTab = 'international';\r\n }\r\n\r\n private _renderQuery(): JSX.Element {\r\n const {\r\n hideInternational,\r\n searchRadius,\r\n showFilterButtons,\r\n placeholders,\r\n USLabelText,\r\n internationalLabelText\r\n } = this.props.config;\r\n const USCssClass = this._selectedTab === selectedTab.us?'find-wine-tab-us active':'find-wine-tab-us';\r\n const internationalCssClass = this._selectedTab === selectedTab.international?'find-wine-tab-international active':'find-wine-tab-international';\r\n return (\r\n
\r\n
\r\n
\r\n {this._title}\r\n {this._searchText}\r\n
\r\n\r\n {\r\n !hideInternational &&\r\n
\r\n \r\n \r\n
\r\n }\r\n\r\n \r\n {\r\n !hideInternational &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * JSX for the result page\r\n */\r\n private _renderResults(): JSX.Element {\r\n const { wineFinder__backToFind, wineFinder__showMoreButton } = this.props.resources;\r\n const wineType = (this.wineLocation) ? 'retailer' : 'distributor';\r\n const wineLocation = (this.wineLocation) ? this.wineLocation : this.internationalWineLocation;\r\n const resultDisplay = (this.props.config.resultsDisplay === 'paginate') ?\r\n (\r\n \r\n ) :\r\n (\r\n \r\n );\r\n return (\r\n
\r\n
\r\n {\r\n !this.props.config.singlePage &&\r\n {wineFinder__backToFind}\r\n }\r\n {this.props.config.showAllProductsToggle && this._renderAllProductsToggle()}\r\n {resultDisplay}\r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * JSX for the 'Show All Products' toggle\r\n */\r\n private _renderAllProductsToggle(): JSX.Element {\r\n const {\r\n hideAllProducts,\r\n showAllProducts\r\n } = this.props.config.showAllProductsLabel || {hideAllProducts:'Hide All Products', showAllProducts:'Show All Products'};\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _closeToggle(): void {\r\n this._allOpen = !this._allOpen;\r\n this.setState({\r\n expandedState: !this.state.expandedState\r\n });\r\n }\r\n\r\n /**\r\n * JSX for results failed page\r\n *\r\n * this is only for retailer / domestic search\r\n */\r\n private _renderNoResults(): JSX.Element {\r\n const {\r\n wineFinder__backToFind,\r\n wineFinder__noResults,\r\n wineFinder__searchAgain\r\n } = this.props.resources;\r\n return (\r\n
\r\n
\r\n {wineFinder__backToFind}\r\n
\r\n {this._title}\r\n

{wineFinder__noResults}

\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private get _title(): JSX.Element | null {\r\n const title = this.props.config.title;\r\n if (title && title.text) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private get _searchText(): JSX.Element | null {\r\n const { searchText } = this.props.config;\r\n if (searchText) {\r\n return (\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * return back to query page\r\n */\r\n private _handleBackToFind(): undefined {\r\n this._pageState = 'query';\r\n return undefined;\r\n }\r\n\r\n /**\r\n * handles a re-request to change pages\r\n *\r\n * @param filters query filter for either domestic or international searching\r\n */\r\n private async _handlePageChange(filters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters): Promise {\r\n if (this.wineLocation) {\r\n await this._setWineLocation(filters as IGetWineLocationQueryFilters);\r\n } else {\r\n await this._setInternationalWineLocation(filters as IGetWineInternationalQueryFilters);\r\n }\r\n return undefined;\r\n }\r\n\r\n private async _getMoreWineLocations(filters: IGetWineLocationQueryFilters | IGetWineInternationalQueryFilters): Promise {\r\n if (!filters.page) {\r\n filters.page = 2;\r\n } else {\r\n filters.page++;\r\n }\r\n if (this.wineLocation) {\r\n (filters as IGetWineLocationQueryFilters).brand = this.props.config.brand;\r\n const wineLocationInput = new GetWineLocationInput(filters as IGetWineLocationQueryFilters);\r\n const moreData = await GetWineLocation(wineLocationInput, this.props.context.actionContext);\r\n this._wineLocationDataSet = [...this._wineLocationDataSet, ...moreData.data];\r\n } else {\r\n (filters as IGetWineInternationalQueryFilters).brand_code = this.props.config.brand;\r\n const wineLocationInput = new GetWineInternationalLocationInput(filters as IGetWineInternationalQueryFilters);\r\n const moreData = await GetInternationalWineLocation(wineLocationInput, this.props.context.actionContext);\r\n this._wineLocationDataSet = [...this._wineLocationDataSet, ...moreData.data];\r\n }\r\n this.setState({});\r\n }\r\n\r\n // =========================================================================\r\n // DATA ACTIONS AND QUERIES\r\n // =========================================================================\r\n\r\n /**\r\n * runs the users data query and applies the new results to the component\r\n *\r\n * @param filters query filters for the call\r\n */\r\n private async _setWineLocation(filters: IGetWineLocationQueryFilters): Promise {\r\n this._allOpen = false;\r\n filters.brand = this.props.config.brand;\r\n filters.per_page = this.props.config.perPage || 5;\r\n const wineLocationInput = new GetWineLocationInput(filters);\r\n this._querySearchFilters = filters;\r\n const newLocation = await GetWineLocation(wineLocationInput, this.props.context.actionContext);\r\n this._wineLocationDataSet = newLocation.data;\r\n this.wineLocation = newLocation;\r\n // must be set to undefined to keep which was previous call consistent\r\n this.internationalWineLocation = undefined;\r\n this._pageState = 'results';\r\n return this.wineLocation;\r\n }\r\n\r\n /**\r\n * runs the users data query and applies the new results to the component\r\n *\r\n * @param filters query filters for the call\r\n */\r\n private async _setInternationalWineLocation(filters: IGetWineInternationalQueryFilters): Promise {\r\n filters.brand_code = this.props.config.brand;\r\n filters.per_page = this.props.config.perPage || 5;\r\n const wineLocationInput = new GetWineInternationalLocationInput(filters);\r\n const newLocation = await GetInternationalWineLocation(wineLocationInput, this.props.context.actionContext);\r\n this._wineLocationDataSet = newLocation.data;\r\n this.internationalWineLocation = newLocation;\r\n this._querySearchFilters = filters;\r\n // must be set to undefined to keep which was previous call consistent\r\n this.wineLocation = undefined;\r\n this._pageState = 'results';\r\n return this.internationalWineLocation;\r\n }\r\n\r\n /**\r\n * get a list of products\r\n *\r\n * @param filters query filters for the call\r\n */\r\n private async _setWineProducts(): Promise {\r\n const filter: IGetWineProductQueryFilters = {brand: this.props.config.brand};\r\n const wineLocationInput = new GetWineProductsInput(filter);\r\n const products = await getWineProducts(wineLocationInput, this.props.context.actionContext);\r\n this._products = products;\r\n }\r\n}\r\n\r\nexport default FindWine;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Button, Module, Node, Popover } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport React, {useState} from 'react';\r\nimport { IHeaderProps, IStoreSwitcherData } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n const { activeStore, activeStoreClass, activeStoreIndex, storeSwitcher } = config;\r\n const [storePopoverOpen, _togglePopover] = useState(false);\r\n const storePopoverRef: React.RefObject = React.createRef();\r\n const activeLink = {linkText: activeStore, linkUrl: {destinationUrl: ''}, ariaLabel: 'active'};\r\n const activeLinkIndex = activeStoreIndex || 0;\r\n const storeSwitcherDesktop = storeSwitcher && storeSwitcher.length && _insertStoreSwitcher(storeSwitcher, activeLink, activeLinkIndex);\r\n const storeSwitcherMobileId = 'storeSwitcherDropdown';\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n\r\n return (\r\n \r\n {storeSwitcherDesktop && storeSwitcherDesktop.length &&\r\n
\r\n {_renderStoreSwitcher(storeSwitcherDesktop, 'ms-header__storeswitcher')}\r\n
\r\n }\r\n \r\n {props.logo}\r\n
\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderAccountBlock(props)}\r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {storeSwitcher && storeSwitcher.length &&\r\n
\r\n _togglePopover(!storePopoverOpen)}\r\n aria-expanded={storePopoverOpen}\r\n >\r\n {activeStore}\r\n \r\n _togglePopover(!storePopoverOpen)}\r\n >\r\n {_renderStoreSwitcher(storeSwitcher, 'ms-header__storeswitcher')}\r\n \r\n
\r\n }\r\n {showCartIcon && props.cartIcon}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nfunction _renderStoreSwitcher(links: IStoreSwitcherData[], className: string): JSX.Element | null {\r\n return (\r\n
\r\n
    \r\n {links && links.length ? links.map((link: IStoreSwitcherData, index: number) => {\r\n return (\r\n
  • \r\n \r\n {link.linkText}\r\n \r\n
  • \r\n );\r\n }) : null}\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction _insertStoreSwitcher(\r\n links: IStoreSwitcherData[],\r\n activeLink: IStoreSwitcherData,\r\n activeLinkIndex: number\r\n): IStoreSwitcherData[] {\r\n // Grabbing links from the start of array to active link index\r\n const startLinks = links.slice(0, activeLinkIndex);\r\n\r\n // Grabbing links from active link index to end of array\r\n const endLinks = links.slice(activeLinkIndex);\r\n\r\n // Making a new array with start links, new active link to be inserted, and end links\r\n return [...startLinks, activeLink, ...endLinks];\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots?.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.logo}\r\n
\r\n {props.logo}\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showCartIcon && !props.slots?.smweCartIcon && props.cartIcon}\r\n {showCartIcon && props.slots?.smweCartIcon && props.slots.smweCartIcon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n ISignInSocialAccount,\r\n ISignInSocialItem,\r\n ISignInViewProps,\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton,\r\n}) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = (props) => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type =\r\n passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className =\r\n iconElement.className === 'icon-show-password'\r\n ? 'icon-hide-password'\r\n : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n *\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n *\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' : 'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n {props.logo}\r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer } = props;\r\n\r\n return (\r\n \r\n \r\n {props.logo}\r\n
\r\n
\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.slots && props.slots.smweSideBar && _renderReactFragment(props.slots.smweSideBar)}\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n \r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n\r\n\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
{forgetPassword}
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots?.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.logo}\r\n
\r\n {props.logo}\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showCartIcon && !props.slots?.smweCartIcon && props.cartIcon}\r\n {showCartIcon && props.slots?.smweCartIcon && props.slots.smweCartIcon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/dist/types/modules/header/header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\n// tslint:disable-next-line: max-func-body-length\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer, MobileMenuContainer, MobileMenuBodyContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n \r\n {props.logo}\r\n
\r\n {config.storeHours &&
{config.storeHours}
}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n
\r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {showCartIcon && props.cartIcon}\r\n
\r\n \r\n {props.logo}\r\n \r\n \r\n \r\n { props.MobileMenuHeader }\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n \r\n \r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots && props.slots.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import * as React from 'react';\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n
\r\n {forgetPassword}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signInSocialAccount,\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {SocialAccount(signInSocialAccount)}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('sign-in-password-icon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = passwordState.type === 'password' ? 'text' : 'password';\r\n iconElement.className = iconElement.className === 'icon-show-password' ? 'icon-hide-password' :'icon-show-password';\r\n }\r\n};\r\n\r\nexport default SignInView;\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 { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { config, HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n const showCartIcon = config.cartIcon;\r\n const showAccountBlock = config.accountBlock;\r\n\r\n return (\r\n \r\n \r\n
\r\n {props.menuBar && _renderReactFragment(props.menuBar)}\r\n {props.slots?.smweMenuBar && _renderReactFragment(props.slots.smweMenuBar)}\r\n {props.logo}\r\n
\r\n {props.logo}\r\n \r\n {showAccountBlock && _renderDesktopAccountBlock(props)}\r\n {_renderReactFragment(props.search)}\r\n {props.slots && props.slots.smweSearch && _renderReactFragment(props.slots.smweSearch)}\r\n {showCartIcon && !props.slots?.smweCartIcon && props.cartIcon}\r\n {showCartIcon && props.slots?.smweCartIcon && props.slots.smweCartIcon}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map(link => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\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 {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/sign-in';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n if (item.key === 'password') {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n {forgetPassword}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpLink\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n \r\n \r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = () => {\r\n const passwordState = document.getElementById('password') as HTMLInputElement;\r\n const iconElement = document.getElementById('showPasswordIcon');\r\n if (passwordState && iconElement) {\r\n passwordState.type = (passwordState.type === 'password') ? 'text' : 'password';\r\n iconElement.className = (iconElement.className === 'ms-sign-in__password-icon ms-sign-in__password-icon-show')\r\n ? 'ms-sign-in__password-icon ms-sign-in__password-icon-hide'\r\n : 'ms-sign-in__password-icon ms-sign-in__password-icon-show';\r\n }\r\n};\r\n\r\nexport default SignInView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
\n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
\n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n"],"names":["ContainerWithHeader","React","render","config","slots","this","props","hasSlots","contentBlock","length","className","classname","_renderHeader","contentBlockNoHeadings","_renderSlotItems","title","_renderLinkedTitle","text","dangerouslySetInnerHTML","getRichTextHtml","_config$link","link","linkUrl","destinationUrl","href","ariaLabel","target","openInNewTab","undefined","rel","_renderTitle","Heading","headingTag","tag","items","map","slot","index","key","MailingInputGroup","constructor","super","_internalValue","initialValue","_onInputChange","bind","_onBlur","label","type","value","onChange","onBlur","placeholder","_renderValidation","onLoseFirstFocus","name","event","onValueChange","isValid","_validationMessage","validationMessage","errorMessage","__decorate","observable","observer","MailingListRedirectForm","_email","_emailRegex","_onSubmitForm","_onEmailChange","_lostFocus","description","formLabel","formPlaceholder","submitButtonText","classnames","Object","assign","RichTextComponent","resources","mailingListRedirectForm__errorMessage","onClick","disabled","_isButtonDisabled","email","beenBlurred","_testForRequirement","_testForRegex","console","warn","field","setState","regex","test","redirectUrl","indexOf","encodeURIComponent","window","location","SortAndFilterContainer","_viewport","_modalExampleBtn","_toggleModal","_updateViewport","state","modalIsOpen","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","isMobile","_renderMobile","_renderDesktop","refineMenu","choiceSummary","sorting","products","Button","innerRef","color","mobileModalTitle","Modal","autoFocus","fade","applicationNode","returnFocusRef","isOpen","toggle","horizontalPosition","verticalPosition","modalClassName","zIndex","ModalHeader","ModalBody","ModalFooter","mobileModalCloseButtonText","_getViewport","context","request","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","computed","apiToken","GetWineFilterable","Msdyn365","filters","dataCacheType","cacheObjectType","cacheKey","JSON","stringify","_token","queryFilters","filtersToHTTPQueryString","queryString","keys","forEach","queryKey","queryValue","substr","WineMapper","input","_input","_applyMap","inputData","inputMap","mappedOutput","GetWineInternationalLocationInput","_url","brand_code","country","fullUrl","error","GetWineInternationalLocationMap","GetWineInternationalLocationDistributorMap","GetWineInternationalLocationCountryMap","GetWineLocationInternationalMapper","output","data","totalPages","totalResults","page","distributors","distributor","distributorOutput","push","action","async","ctx","apiSettings","response","url","headers","Authorization","token","args","Error","GetWineLocationMap","GetWineLocationRetailerMap","GetWineLocationProductMap","GetWineLocationInput","GetWineLocationMapper","retailers","retailer","retailerProducts","mappedRetailer","product","GetWineProductsInput","brand","FindWineDropdownMenu","_value","defaultValue","_handleOnChange","_constructItems","newItem","itemList","find","item","toString","isAriaSelected","WineFinderQueryLocation","_props$config$default","_props$config$default2","_queryLocation","_queryRadius","_allowRetail","_allowRestaurant","_product","_queryRadii","_handleQueryLocationChange","_handleSearchRadiusChange","_toggleRetail","_toggleRestaurant","_doQuery","defaultFilters","retail","restaurant","loading","radii","allowRadiiDisplay","defaultRadius","wineFinder__domesticTitle","wineFinder__domesticSearchRadiusLabel","wineFinder__retailFilterText","wineFinder__restaurantFilterText","domesticSearch","enablePlaceholders","placeholders","cssClass","active","onSubmit","e","preventDefault","htmlFor","id","required","showChooseWineInput","_renderProductsDropdownList","displayFilters","_hasFilterActive","checked","_isInvalid","onKeyPress","wineFinderSubmit","role","queryRadius","radius","on_premise","filterState","restaurantActive","retailActive","onQuerySearch","Number","_renderProductOptions","option","product_key","GetWineCountriesInput","shouldCacheOutput","IGetWineCountriesMap","GetWineCountriesMapper","WineFinderQueryLocationInternational","_countries","_handleCountrySelectionChange","_queryCountries","catch","err","iso","wineFinder__internationalTitle","wineFinder__internationalCountryLabel","submitText","_selectedCountry","newCountry","countries","WineCountries","actionContext","resultsDisplay","showProductsConfiguration","TitleTag","WineFinderWineDisplay","_isOpen","_wines","wines","reaction","allOpen","open","expandedState","_closeToggle","hideProducts","showProducts","showProductsLabel","_showButton","_renderWineList","showButton","showProductsHideButton","list","toJS","sort","wineList","wine","_showProducts","FindWineItem","hideNumbers","numberInList","distance","mapData","address","zip","mapText","phoneNumber","website","wineFinder__internationalWebsiteLabel","WineFinderScrollable","_onAddMore","pageCount","wineLocationData","_renderWineResults","showMoreText","wineResults","resultType","city","code","perPage","_getProducts","phone","jdeDistributorNumber","wineFinder__noResults","productArray","onGetMoreContent","WineFinderPager","_isFirstPagination","goAsMin","_goToMinMaxPage","_renderPages","_isLastPagination","goAsMax","range","lower","higher","minOrMax","onPageChange","currentPage","lowerBound","Math","max","min","Array","fill","pageValue","WineFinderResults","_handlePageChange","_renderWineLocations","wineLocation","pageChange","newQuery","selectedTab","FindWine","_pageState","_allOpen","_selectedTab","_wineLocationDataSet","_querySearchFilters","_setWineLocation","_setWineProducts","_handleBackToFind","_setInternationalWineLocation","_getMoreWineLocations","_selectUSTab","_selectInternationalTab","_products","singlePage","_renderQuery","_renderResults","_renderJSXResult","_renderNoResults","hideInternational","searchRadius","showFilterButtons","USLabelText","internationalLabelText","USCssClass","us","internationalCssClass","international","_title","_searchText","wineFinder__backToFind","wineFinder__showMoreButton","wineType","internationalWineLocation","resultDisplay","tabIndex","showAllProductsToggle","_renderAllProductsToggle","hideAllProducts","showAllProducts","showAllProductsLabel","wineFinder__searchAgain","searchText","wineLocationInput","moreData","GetWineLocation","GetInternationalWineLocation","per_page","newLocation","filter","getWineProducts","_renderReactFragment","HeaderTag","HeaderContainer","HeaderTopBarContainer","showCartIcon","cartIcon","showAccountBlock","accountBlock","Module","Node","logo","menuBar","smweMenuBar","search","smweSearch","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","_renderDesktopAccountBlock","SignInLoading","_ref2","modal","modalBody","icon","message","_showPassword","passwordState","document","getElementById","iconElement","signIn","viewState","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signUpLink","isShowLoading","_ref","localAccount","forgetPassword","disclaimer","signInButton","wrapper","LocalAccount","MobileMenuContainer","MobileMenuBodyContainer","MobileMenuHeader","_ref3","signInSocialAccount","signUpSectionHeading","signUpDescription","socialAccounts","button","image","SocialAccount","_renderStoreSwitcher","links","linkText","activeStore","activeStoreClass","activeStoreIndex","storeSwitcher","storePopoverOpen","_togglePopover","useState","storePopoverRef","activeLink","activeLinkIndex","storeSwitcherDesktop","startLinks","slice","endLinks","_insertStoreSwitcher","storeSwitcherMobileId","cartLink","getUrlSync","_renderAccountBlock","Popover","placement","_props$slots","_props$slots2","_props$slots3","smweCartIcon","smweSideBar","storeHours","SignUpText","LoyaltySignUp","handleHeadingChange","heading","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","MsDyn365","isBrowser","telemetry","debug","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","TelemetryConstant","SignIn","loyaltySignInAttributes","getTelemetryAttributes","contentAction","etext","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","shouldComponentUpdate","nextProps","nextState","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","loyaltyCard","hasLoyaltyAccount","result","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","viewProps","_objectSpread","moduleProps","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","editProps","onEdit","requestContext","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","renderView","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","returnRef","modalHeader","modalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","requestUrl","isJoining","substring","qsps","split","qsp","splitQsp","isModalOpen","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","attributes","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","editableLink","additionalProperties","onTelemetryClick","onTextChange","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","content","visible","cookieRef","_onDismiss","cookies","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","ref","AlertProps","Content","ArrayExtensions","hasElements","acceptButton","setConsentCookie","reload","Alert","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","promotionalImage","src","altText","promotionalContent","imageSrc","promotionalItemImageSettings","imageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","viewports","q","h","lazyload","_categoryImage$imageS","ImageData","Image","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","body","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","toggleButtonText","keyValue","isDrawerOpen","colProps","Drawer","toggleButtonProps","openGlyph","collapseProps","closeGlyph","glyphPlacement","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","Iframe","iframeRef","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","alert","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView"],"sourceRoot":""}