{"version":3,"file":"static/js/6.effc1f0f395fa20d4dad.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-business-account-address/krannich-c-business-account-address.tsx?acea","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-business-account-address/krannich-c-business-account-address.view.tsx?e981","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/add-order-template-to-cart.component.tsx?ea94","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/order-template-products-preview.tsx?d308","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-order-template/components/lines-added-to-cart-dialog.component.tsx?9ea8","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.tsx?fe65","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-portal/krannich-portal.view.tsx?7e56","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/media-gallery.view.tsx?5d21","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/order-details.view.tsx?450a","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/search.view.tsx?59e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","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/sign-in/components/sign-in-button.tsx?8d59","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.tsx?259c","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/./src/modules/cart/cart.view.tsx?d8c2","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/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.tsx?9384","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.view.tsx?94a7","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/quick-order.view.tsx?a96d","webpack://Msdyn365.Commerce.Online/./src/modules/search-result-container/search-result-container.view.tsx?b779","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/promocode.component.tsx?c06b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction, set } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { AddressCommon } from '../../common/address-common';\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { AddressItemDisplayType, AddressItemType, AddressValidationRuleType, IAddressItem } from '../../common/address-format.data';\r\nimport { AddressMetaData } from '../../common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from '../../common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IKrannichCBusinessAccountAddressData } from './krannich-c-business-account-address.data';\r\nimport { IKrannichCBusinessAccountAddressProps } from './krannich-c-business-account-address.props.autogenerated';\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressExtendedProps.\r\n */\r\nexport interface IBusinessAccountAddressExtendedProps extends IKrannichCBusinessAccountAddressProps {\r\n hasError: boolean;\r\n isRequired: boolean;\r\n resetAddress: boolean;\r\n updateForm(errors: boolean, currentAddress?: Address): void;\r\n}\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressState.\r\n */\r\nexport interface IBusinessAccountAddressState {\r\n countryId?: string;\r\n states?: StateProvinceInfo[];\r\n}\r\n\r\n/**\r\n * Interface for IBusinessAccountAddressViewProps.\r\n */\r\nexport interface IBusinessAccountAddressViewProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n BusinessAccountAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n usSiteFlag?: boolean;\r\n mexicoSiteFlag?: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component, IBusinessAccountAddressState>}\r\n */\r\nclass BusinessAccountAddress extends React.Component {\r\n @observable private addUpdateAddress: Address;\r\n\r\n @observable private countryRegionId: string = 'USA';\r\n\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n\r\n @observable private readonly validationError: object;\r\n\r\n private readonly addressActionResponse?: IAddressResponse;\r\n\r\n private readonly isUpdating?: boolean;\r\n\r\n private readonly addressCommon: AddressCommon;\r\n\r\n private addressFormat: AddressFormat;\r\n\r\n private countryRegions: CountryRegionInfo[] = [];\r\n\r\n private addressPurposes: AddressPurpose[] = [];\r\n\r\n private readonly resources: IAddressResource;\r\n\r\n private readonly defaultAddressType: number = 0; // Default to None (This value set in HQ as Business)\r\n\r\n private readonly shouldAutoFocus?: boolean = false;\r\n\r\n private readonly excludedList: AddressItemType[] = [AddressItemType.Name, AddressItemType.AddressTypeValue, AddressItemType.IsPrimary]; // Default to hiding Name and AddressType inputs\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n public constructor(props: IBusinessAccountAddressExtendedProps) {\r\n super(props);\r\n\r\n const { context, data, resources, telemetry } = this.props;\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, props.isRequired ? undefined : []),\r\n this.addressPurposes\r\n );\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.validationError = {};\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n // Initializing data props\r\n this._dataInitialize(this.props);\r\n\r\n this._setDefaultCountryRegionId();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessAccountAddressExtendedProps, nextState: IBusinessAccountAddressState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { renderView, config, hasError, resetAddress } = this.props;\r\n\r\n // Business-sign-up will pass this flag when cancel button is clicked\r\n if (resetAddress) {\r\n this._resetAddressFields();\r\n }\r\n const viewProps = {\r\n ...this.props,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n hasError,\r\n className: config.className,\r\n BusinessAccountAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-business-account-address', config.className)\r\n },\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress(),\r\n usSiteFlag:\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite,\r\n mexicoSiteFlag:\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun ===\r\n this.props.context.app.config.ounNumberForMexicoSite\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Reset Address.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public _resetAddressFields = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n\r\n addressFormat.map(addressFormatItem => {\r\n switch (addressFormatItem.displayType) {\r\n case AddressItemDisplayType.Input:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n case AddressItemDisplayType.Checkbox:\r\n this.addUpdateAddress[addressFormatItem.name] = false;\r\n break;\r\n default:\r\n switch (addressFormatItem.type) {\r\n case AddressItemType.ThreeLetterISORegionName:\r\n this.addUpdateAddress[addressFormatItem.name] = this.countryRegionId;\r\n break;\r\n case AddressItemType.AddressTypeValue:\r\n this.addUpdateAddress[addressFormatItem.name] = this.defaultAddressType;\r\n break;\r\n case AddressItemType.State:\r\n this.addUpdateAddress[addressFormatItem.name] = '';\r\n break;\r\n default:\r\n this.addUpdateAddress[addressFormatItem.name] = undefined;\r\n }\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Method data initialization.\r\n * @param props -The account management props.\r\n */\r\n private readonly _dataInitialize = (props: IBusinessAccountAddressExtendedProps): void => {\r\n const { data } = props;\r\n\r\n reaction(\r\n () => data.countryRegions.result,\r\n () => {\r\n this.countryRegions = data.countryRegions.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.addressPurposes.result,\r\n () => {\r\n this.addressPurposes = data.addressPurposes.result ?? [];\r\n }\r\n );\r\n\r\n reaction(\r\n () => data.countryStates.result,\r\n () => {\r\n this.stateProvinceInfo = data.countryStates.result ?? [];\r\n }\r\n );\r\n };\r\n\r\n // Set validationError and hasError to hide error messages since in the B2B\r\n // request form, no errors would visually show since user wont be able to submit\r\n // until form is filled and correct\r\n /**\r\n * Render Add Or Update Address Function.\r\n * @returns - AddressAddUpdate.\r\n */\r\n\r\n private readonly _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n const usSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite;\r\n const mexicoSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForMexicoSite;\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Company,\r\n addressFormat: this.addressFormat.getAddressFormat(this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n shouldAutoFocus: this.shouldAutoFocus,\r\n validationError: this.validationError,\r\n hasError: this.props.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: this.addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n usSiteFlag,\r\n mexicoSiteFlag\r\n });\r\n };\r\n\r\n /**\r\n * On Address Add Update Input Change Function.\r\n * @param event - Input event change function.\r\n */\r\n private readonly _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n this._updateAddress(event.target.name, event.target.value);\r\n };\r\n\r\n /**\r\n * On Address Add Update Dropdown Change Function.\r\n * @param event - Change dropdown event.\r\n */\r\n private readonly _onAddressAddUpdateDropdownChange = async (event: React.ChangeEvent): Promise => {\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n await this._updateCountryRegionId(event.target.value);\r\n } else {\r\n this._updateAddress(event.target.name, event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * Update Address Function.\r\n * @param name - String.\r\n * @param value - String.\r\n */\r\n private readonly _updateAddress = (name: string, value: string | number) => {\r\n const usSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForUsSite;\r\n const mexicoSiteFlag =\r\n this.props?.context?.actionContext?.requestContext?.apiSettings?.oun === this.props.context.app.config.ounNumberForMexicoSite;\r\n const { updateForm, isRequired, resources } = this.props;\r\n let cleanValue = value;\r\n if (typeof value === 'string') {\r\n if (name === 'Phone') {\r\n if (usSiteFlag) {\r\n cleanValue = value.replace(/\\D/g, ''); // Remove non-numeric characters\r\n } else if (mexicoSiteFlag) {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n const tempValue = cleanValue.split(' ').join('');\r\n cleanValue = tempValue.replace(/(\\d{2})(\\d{2})(\\d{4})(\\d{4})/, '$1 $2 $3 $4');\r\n } else {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n const tempValue = cleanValue.split(' ').join('');\r\n cleanValue = tempValue.replace(/(\\d{2})(\\d{1})(\\d{4})(\\d{4})/, '$1 $2 $3 $4');\r\n // VSI CUSOTMIZATION TO REPLACE STRING WITH NUMBER FORMAT\r\n }\r\n } else {\r\n cleanValue = (value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n }\r\n }\r\n set(this.addUpdateAddress, { [name]: cleanValue });\r\n\r\n if (this._isEmpty()) {\r\n if (isRequired) {\r\n updateForm(true, undefined);\r\n } else {\r\n // Reset addressFormat as if address was NOT a required field\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, []),\r\n this.addressPurposes\r\n );\r\n updateForm(false, this.addUpdateAddress);\r\n }\r\n } else {\r\n // Get new addressFormat if address was a required field\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this.excludedList, undefined),\r\n this.addressPurposes\r\n );\r\n\r\n // Verify with new rules\r\n if (this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n updateForm(false, this.addUpdateAddress);\r\n } else {\r\n updateForm(true, undefined);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Is empty Function.\r\n * @returns - Boolean.\r\n */\r\n // Walk through array and check if valued is defined or value is not an empty string\r\n private readonly _isEmpty = () => {\r\n const addressFormat = this.addressFormat.getAddressFormat(this.countryRegionId);\r\n for (const addressFormatItem of addressFormat) {\r\n if (addressFormatItem.type !== AddressItemType.ThreeLetterISORegionName || this._isInputRequired(addressFormatItem)) {\r\n const addressItemValue = this.addUpdateAddress[addressFormatItem.name];\r\n\r\n // Check each input field, if value is defined and not an empty string --> address is not empty\r\n if (addressItemValue || (addressItemValue && addressItemValue !== '')) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n /**\r\n * Is Input Required Function.\r\n * @param addressFormatItem - IAddressItem.\r\n * @returns - Boolean.\r\n */\r\n private readonly _isInputRequired = (addressFormatItem: IAddressItem): boolean => {\r\n if (\r\n ObjectExtensions.isNullOrUndefined(addressFormatItem) ||\r\n !addressFormatItem.validationRules ||\r\n addressFormatItem.validationRules.length === 0\r\n ) {\r\n return false;\r\n }\r\n\r\n for (const validationRule of addressFormatItem.validationRules) {\r\n if (validationRule.type === AddressValidationRuleType.Required) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request.channel?.ChannelCountryRegionISOCode;\r\n\r\n this._updateCountryRegionId(this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market));\r\n\r\n // Set default AddressType\r\n set(this.addUpdateAddress, { AddressTypeValue: this.defaultAddressType });\r\n }\r\n\r\n /**\r\n * Update Country Region Id Function.\r\n * @param value - String.\r\n */\r\n private readonly _updateCountryRegionId = async (value: string) => {\r\n this.countryRegionId = value;\r\n\r\n await this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n this._updateAddress('State', '');\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n\r\n this._updateAddress('ThreeLetterISORegionName', this.countryRegionId);\r\n };\r\n}\r\n\r\nexport default BusinessAccountAddress;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\r\nimport { IBusinessAccountAddressViewProps } from './krannich-c-business-account-address';\r\n\r\n/**\r\n * Address Add Update Component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address Heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - IAddressError.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns - AddressForm Node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n usSiteFlag,\r\n mexicoSiteFlag\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input, customAlert, customLabel } = item;\r\n if (key === 'County' || key === 'BuildingCompliment' || key === 'DistrictName' || key === 'StreetNumber') {\r\n return null;\r\n }\r\n return (\r\n \r\n {customLabel !== null && (usSiteFlag || mexicoSiteFlag) ? customLabel : label}\r\n {hasError && alert}\r\n {customAlert !== null ? customAlert : null}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business Account Address View Component.\r\n * @param props - Props.\r\n * @returns - BusinessAccountAddress Module.\r\n */\r\nconst BusinessAccountAddressView: React.FC = props => {\r\n const { BusinessAccountAddress, showAddOrUpdateAddress, usSiteFlag, mexicoSiteFlag } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinessAccountAddressView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPopupProductsProps,\r\n ITelemetryContent,\r\n PopupProducts,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\nimport { ILinesAddedToCartDialogResources, LinesAddedToCartDialog } from './lines-added-to-cart-dialog.component';\r\n\r\nexport interface IAddOrderTemplateToCartComponentData {\r\n orderTemplate: OrderTemplate;\r\n cart: ICartState | undefined;\r\n}\r\n\r\nexport interface IAddOrderTemplateToCartComponentProps extends IComponentProps {\r\n className?: string;\r\n parentElementRef?: React.RefObject\r\n \r\n \r\n );\r\n};\r\n\r\nexport const AddOrderTemplateToCartComponent: React.FunctionComponent =\r\n // @ts-expect-error -- As per design, custom component\r\n msdyn365Commerce.createComponent('AddOrderTemplate', {\r\n component: AddOrderTemplate,\r\n ...AddToCartComponentActions\r\n });\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\n\r\nexport interface IOrderTemplateProductsPreviewComponentProps {\r\n className: string;\r\n products: FullProduct[];\r\n context: ICoreContext;\r\n imageSettings?: IImageSettings;\r\n}\r\n\r\nexport const OrderTemplateProductsPreviewComponent = (props: IOrderTemplateProductsPreviewComponentProps) => {\r\n const { products, className, imageSettings } = props;\r\n\r\n return (\r\n
\r\n {renderOrderTemplateImages(props.context, `${className}__products`, products, imageSettings)}\r\n
\r\n );\r\n};\r\n\r\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: FullProduct, imageSettings?: IImageSettings) => {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst renderOrderTemplateImages = (\r\n context: ICoreContext,\r\n className: string,\r\n products: FullProduct[],\r\n imageSettings?: IImageSettings\r\n): JSX.Element | null => {\r\n return (\r\n
\r\n
\r\n
\r\n {products.length > 0 && renderOrderTemplateImage(context, className, products[0], imageSettings)}\r\n
\r\n
\r\n {products.length > 1 && renderOrderTemplateImage(context, className, products[1], imageSettings)}\r\n
\r\n
\r\n
\r\n
\r\n {products.length > 2 && renderOrderTemplateImage(context, className, products[2], imageSettings)}\r\n
\r\n
\r\n {products.length > 3 && renderOrderTemplateImage(context, className, products[3], imageSettings)}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\r\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { OrderTemplateProductsPreviewComponent } from './order-template-products-preview';\r\n\r\nexport interface ILinesAddedToCartDialogResources {\r\n viewCartButtonText: string;\r\n orderTemplateCloseButtonText: string;\r\n linesAddedToCartHeaderItemsOneText: string;\r\n linesAddedToCartHeaderLinesOneText: string;\r\n linesAddedToCartHeaderLinesFormatText: string;\r\n linesAddedToCartHeaderMessageText: string;\r\n onlyThoselinesAddedToCartMessageText: string;\r\n}\r\n\r\nexport interface ILinesAddedToCartDialogData {\r\n linesCount: number;\r\n orderTemplate: ProductList;\r\n products: FullProduct[];\r\n onlyThoselinesAddedWithAvailableQuantityMessage: boolean;\r\n}\r\n\r\nexport interface ILinesAddedToCartDialogProps extends IComponentProps {\r\n className: string;\r\n imageSettings?: IImageSettings;\r\n\r\n dialogStrings: ILinesAddedToCartDialogResources;\r\n\r\n modalOpen: boolean | undefined;\r\n onClose(): void;\r\n\r\n // as required passing in components for later user\r\n isMultipleCatalogFeatureEnabledInHq?: boolean;\r\n catalogId?: number;\r\n}\r\n\r\nexport const LinesAddedToCartDialog = (dialogProps: ILinesAddedToCartDialogProps) => {\r\n const {\r\n dialogStrings,\r\n className,\r\n context,\r\n modalOpen,\r\n imageSettings,\r\n data: { orderTemplate, products, linesCount, onlyThoselinesAddedWithAvailableQuantityMessage }\r\n } = dialogProps;\r\n const getCartPageUrl = (): string => {\r\n return getUrlSync('cart', context.actionContext) || '';\r\n };\r\n\r\n const close: () => void = () => {\r\n dialogProps.onClose();\r\n };\r\n\r\n const lineItemsString =\r\n linesCount === 1\r\n ? dialogStrings.linesAddedToCartHeaderLinesOneText\r\n : dialogStrings.linesAddedToCartHeaderLinesFormatText.replace('{0}', linesCount.toString());\r\n\r\n return (\r\n \r\n \r\n {dialogStrings.linesAddedToCartHeaderItemsOneText}\r\n {dialogStrings.linesAddedToCartHeaderMessageText}\r\n \r\n \r\n
\r\n \r\n
\r\n
{orderTemplate.Name}
\r\n
{lineItemsString}
\r\n {onlyThoselinesAddedWithAvailableQuantityMessage && (\r\n
{dialogStrings.onlyThoselinesAddedToCartMessageText}
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n {dialogStrings.viewCartButtonText}\r\n \r\n \r\n {dialogStrings.orderTemplateCloseButtonText}\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\r\n\r\nimport { IKrannichPortalData } from './krannich-portal.data';\r\nimport MsDyn365, { IActionContext, ICookieContext, ICoreContext } from '@msdyn365-commerce/core';\r\nimport actionAddressFromZipCode, { GetAddressFromZipCodeInput } from '../../actions/get-address-from-zip-code.action';\r\nimport { IKrannichPortalProps, IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\nimport { getMainDomain } from '../../utils/helper';\r\n\r\nexport interface IModalRouterPortalProps {\r\n actionContext: IActionContext;\r\n cookies: ICookieContext;\r\n resources: IKrannichPortalResources;\r\n config: IKrannichPortalConfig;\r\n context: ICoreContext;\r\n}\r\n\r\ninterface IZipCode {\r\n Locality: string;\r\n Pcode: number;\r\n State: string;\r\n Territory: string;\r\n}\r\n\r\n/**\r\n * KrannichPortal functional component\r\n */\r\n\r\nconst KrannichPortal: React.FC> = props => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [zipCode, setZipCode] = useState('');\r\n const [error, setError] = useState('');\r\n const [alertActive, setAlertActive] = useState(false);\r\n const modalBtn = useRef();\r\n const inputRef = useRef(null);\r\n const enableGenericTerritories = props.config.enableGenericTerritories || false;\r\n\r\n const territory_data = props.config?.territoryData!;\r\n const notFoundError =\r\n props?.context?.actionContext?.requestContext?.apiSettings?.oun !== props.context.app.config.ounNumberForUsSite\r\n ? props.resources.notFound\r\n : props.resources.notFoundZipcode;\r\n\r\n const toggle = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n useEffect(() => {\r\n const addressFromZip = props.context.request.cookies.get('addressFromZip');\r\n\r\n if (!enableGenericTerritories) {\r\n if (addressFromZip.status === 'FOUND') {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n if (\r\n territory === 'KAUM' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-mb') || hostName?.includes('aus-mb'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else if (\r\n territory === 'KAUB' &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) || pathName?.includes('aus-br') || hostName?.includes('aus-br'))\r\n ) {\r\n isTerritoryMatched = true;\r\n } else {\r\n isTerritoryMatched = false;\r\n }\r\n !isTerritoryMatched && __reditectTo(territory);\r\n } else {\r\n toggle();\r\n }\r\n } else {\r\n if (addressFromZip.status === 'FOUND' && territory_data?.length > 0) {\r\n const { value } = addressFromZip;\r\n const territory = value?.Territory;\r\n\r\n let isTerritoryMatched;\r\n const pathName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.pathname;\r\n const hostName = props?.context?.actionContext?.requestContext?.url?.requestUrl?.hostname;\r\n\r\n for (const item of territory_data) {\r\n if (\r\n territory === item.name &&\r\n (pathName?.includes(territory.toLocaleLowerCase()) ||\r\n pathName?.includes(item.pathKeyword) ||\r\n hostName?.includes(item.pathKeyword))\r\n ) {\r\n isTerritoryMatched = true;\r\n break;\r\n }\r\n }\r\n !isTerritoryMatched && __reditectTo(territory ?? '');\r\n } else {\r\n toggle();\r\n }\r\n }\r\n }, []);\r\n\r\n const __reditectTo = (territory: string | undefined) => {\r\n if (!enableGenericTerritories) {\r\n const { brBaseUrl, mbBaseUrl } = props.config;\r\n let redirectURL = null;\r\n if (territory?.toUpperCase() === 'KAUM') {\r\n redirectURL = mbBaseUrl;\r\n }\r\n if (territory?.toUpperCase() === 'KAUB') {\r\n redirectURL = brBaseUrl;\r\n }\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n let redirectURL = '';\r\n const matchingTerritory = territory_data?.find(item => item.name === territory?.toUpperCase());\r\n\r\n if (matchingTerritory) {\r\n redirectURL = matchingTerritory.redirectURL;\r\n MsDyn365.isBrowser && (window.location.href = redirectURL!);\r\n } else {\r\n toggle();\r\n }\r\n }\r\n };\r\n\r\n const _handleZipCode = async (event: React.FormEvent) => {\r\n if (!enableGenericTerritories) {\r\n const { apiException } = props.resources;\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n // TODO: List of known production hostnames which we will make dynamic after Go Alive.\r\n const productionHostnames = [\r\n // Todo: for local testing, need to remove later on\r\n // 'localhost:4000',\r\n 'aus.krannich-shop.com',\r\n 'aus-mb.krannich-shop.com',\r\n 'aus-br.krannich-shop.com'\r\n ];\r\n const isProdEnv = productionHostnames.includes(currentHostname);\r\n if (isProdEnv) {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n } else {\r\n props?.context?.request?.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n } else {\r\n event.preventDefault();\r\n if (zipCode.length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n }\r\n try {\r\n const getAddressFromZipCode = await actionAddressFromZipCode(\r\n new GetAddressFromZipCodeInput(zipCode, props.config.defaultTerritory),\r\n props.context.actionContext\r\n );\r\n if (Object.keys(getAddressFromZipCode).length === 0) {\r\n setError(notFoundError);\r\n setAlertActive(true);\r\n } else {\r\n if (MsDyn365.isBrowser) {\r\n const currentHostname = window.location.hostname;\r\n const mainDomain = getMainDomain(currentHostname);\r\n if (currentHostname === 'localhost') {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode));\r\n } else if (mainDomain) {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: `.${mainDomain}`,\r\n path: '/'\r\n });\r\n } else {\r\n props.context.request.cookies.set('addressFromZip', JSON.stringify(getAddressFromZipCode), {\r\n domain: '.krannich-shop.com',\r\n path: '/'\r\n });\r\n }\r\n setIsOpen(false);\r\n setAlertActive(false);\r\n __reditectTo(getAddressFromZipCode?.Territory);\r\n }\r\n }\r\n } catch (e) {\r\n setError(props.resources.apiException);\r\n setAlertActive(true);\r\n }\r\n setZipCode('');\r\n }\r\n };\r\n const viewProps = {\r\n ...props,\r\n isOpen,\r\n inputRef,\r\n zipCode,\r\n setZipCode,\r\n error,\r\n alertActive,\r\n toggle,\r\n _handleZipCode,\r\n modalBtn\r\n };\r\n return props.renderView(viewProps) as React.ReactElement;\r\n};\r\n\r\nexport default KrannichPortal;\r\n","import React from 'react';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IKrannichPortalConfig, IKrannichPortalResources } from './krannich-portal.props.autogenerated';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n config: IKrannichPortalConfig;\r\n resources: IKrannichPortalResources;\r\n inputRef: any;\r\n zipCode: string;\r\n setZipCode: React.Dispatch>;\r\n error: string;\r\n alertActive: boolean;\r\n _handleZipCode: (event: React.FormEvent) => Promise;\r\n modalBtn: any;\r\n}\r\n\r\nconst PortalModal: React.FC = props => {\r\n const { alertActive, config, error, inputRef, isOpen, modalBtn, resources, setZipCode, _handleZipCode, zipCode } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {config.logoImage?.altText}\r\n
\r\n
\r\n \r\n

{config.headingWebShop}

\r\n
\r\n
\r\n \r\n {config.newZealandZipCodeMsg &&

{config.newZealandZipCodeMsg}

}\r\n setZipCode(e.target.value)}\r\n maxLength={10}\r\n />\r\n {alertActive &&

{error}

}\r\n {\r\n setZipCode(inputRef.current?.value!);\r\n }}\r\n type='submit'\r\n >\r\n {resources.submitBtnLabel}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PortalModal;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nimport {\r\n // IMediaGalleryThumbnailItemViewProps,\r\n // IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery/src/modules/media-gallery/../..';\r\n\r\nconst MediaGalleryView: React.FC = props => {\r\n const { CarouselProps, MediaGallery, Modal } = props;\r\n let isEdgeBrowser = false;\r\n if (MsDyn365.isBrowser) {\r\n const browserInfo = navigator?.userAgent;\r\n isEdgeBrowser = browserInfo.includes('Edg');\r\n }\r\n\r\n // VSI Customization for Thumbnails\r\n // this above thumbnails are recieve through props and for now according to client requirement\r\n // we dont want to show thumbnails on PDP. so these lines are commented\r\n // IF you again display thumbnails on PDP uncomment all below code, above improts\r\n // and move Thumbnails into props\r\n return (\r\n \r\n \r\n {Modal}\r\n {/* {_renderThumbnails(Thumbnails)} */}\r\n \r\n );\r\n};\r\n\r\n// const _renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps): JSX.Element => {\r\n// const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps, items } = thumbnails;\r\n\r\n// return (\r\n// \r\n// {items && items.map(_renderThumbnailItem)}\r\n// \r\n// );\r\n// };\r\n\r\n// const _renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n// const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n// return {Picture};\r\n// };\r\n\r\nexport default MediaGalleryView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common';\r\nimport { IGroup } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common/get-groups';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/../../common/get-sales-line';\r\nimport { IOrderDetailsViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-details/./order-details';\r\nimport { IOrderDetailsProps, IOrderDetailsResources } from '../definition-extensions/order-details.ext.props.autogenerated';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core-internal';\r\nimport { currencyFormat, dateFormatByLocale, filteredProductAttributeList, formatUrlPath, getOrderStatus } from '../../../utils/helper';\r\nimport { IContentBlockConfig } from '../definition-extensions/content-block.ext.props.autogenerated';\r\nimport { GridSize } from '../../../modules/krannich-c-search-result-container/krannich-c-search-result-container';\r\nimport { getAttributeValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\ninterface IGroupsExtended {\r\n groupsProps: INodeProps;\r\n groups: IGroup[];\r\n resources: IOrderDetailsResources;\r\n salesId: React.ReactNode;\r\n createdDate: React.ReactNode;\r\n statusValue?: number;\r\n context?: ICoreContext>;\r\n}\r\n\r\ninterface IGroupExtended {\r\n context?: ICoreContext>;\r\n group: IGroup;\r\n resources: IOrderDetailsResources;\r\n salesId: React.ReactNode;\r\n createdDate: React.ReactNode;\r\n statusValue?: number;\r\n}\r\n\r\ninterface IGroupDeliveryExtended {\r\n deliveryProps: INodeProps;\r\n pickupProps: INodeProps;\r\n showTimeslot: boolean;\r\n heading: React.ReactNode;\r\n count: React.ReactNode;\r\n processing: React.ReactNode;\r\n trackingInfo: React.ReactNode;\r\n address: React.ReactNode;\r\n shippingItemsToYou?: React.ReactNode;\r\n pickupDateTimeslot?: React.ReactNode;\r\n shippedStatusCheck?: React.ReactNode;\r\n statusValue?: number;\r\n}\r\n\r\nexport const OrderDetailsSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\r\n \r\n
\r\n
{buyAgainButton}
\r\n
\r\n {errors}\r\n
\r\n);\r\n\r\nexport const OrderDetailsGroupDelivery: React.FC = ({ deliveryProps, heading, count, statusValue }) => (\r\n \r\n \r\n {getOrderStatus(statusValue)}\r\n \r\n {/* {count} */}\r\n \r\n);\r\n\r\nexport const OrderDetailsGroup: React.FC = ({ group, resources, salesId, context, createdDate, statusValue }) => {\r\n const { groupProps, delivery, address, salesLinesProps, salesLines } = group;\r\n const productManufacturerIdentifier = 'Manufacturer';\r\n const productWeightAttribute = context?.app?.config?.productWeightAttribute || 'Weight (kg)';\r\n\r\n //Configs For Mobile View\r\n const [isMobile, setIsMobile] = React.useState();\r\n const [attributeValues, setAttributeValues] = React.useState([]);\r\n const [prodAttrIdentifier, setProdAttrIdentifier] = React.useState('');\r\n const _updateViewport = (): void => {\r\n const viewport = _getViewport();\r\n viewport === 'xs' || viewport === 'sm' ? setIsMobile(true) : setIsMobile(false);\r\n };\r\n const _getViewport = (): GridSize => {\r\n // const { context } = productManufacturarAttribute;\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 (MsDyn365.isBrowser && 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 }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'lg';\r\n };\r\n React.useEffect(() => {\r\n _updateViewport();\r\n if (MsDyn365.isBrowser && window.addEventListener) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n window.addEventListener('resize', _updateViewport);\r\n }\r\n }, []);\r\n React.useEffect(() => {\r\n const fetchData = async () => {\r\n let prodAttributeIdentifier = 'Manufacturer';\r\n if (salesLines.length) {\r\n const res: { recId: number; manufacturer: AttributeValue | undefined }[] = [];\r\n for (const salesLine of salesLines) {\r\n const productAttributes = await getAttributeValuesAsync(\r\n { callerContext: context?.actionContext!, queryResultSettings: {} },\r\n salesLine.data.product?.RecordId!,\r\n context?.request?.apiSettings?.channelId!,\r\n context?.request?.apiSettings?.catalogId!\r\n );\r\n const productAttributesFiltered = filteredProductAttributeList(\r\n productAttributes,\r\n context?.request.app.config.kcProductAttribute\r\n );\r\n const manufacturer = productAttributesFiltered?.find(item => item.identifier === productManufacturerIdentifier);\r\n if (manufacturer) {\r\n prodAttributeIdentifier = manufacturer?.Name! || '';\r\n }\r\n res.push({ recId: salesLine.data.product?.RecordId!, manufacturer });\r\n }\r\n setProdAttrIdentifier(prodAttributeIdentifier);\r\n setAttributeValues(res);\r\n }\r\n };\r\n fetchData();\r\n }, [salesLines]);\r\n //Ending configuration//\r\n\r\n const createdDateJSX = createdDate as JSX.Element;\r\n const createdDateJSXProps = createdDateJSX.props as any;\r\n const createdDateJSXPropsChildren = createdDateJSXProps?.children as any;\r\n const customDate = createdDateJSXPropsChildren[2];\r\n // Split the date string\r\n const dateParts = customDate?.split('/');\r\n // Create a Date object using the parts\r\n const formattedDate = new Date(dateParts?.[2], dateParts?.[0] - 1, dateParts?.[1]);\r\n // Format the date as \"DD/MM/YYYY\" using toLocaleDateString()\r\n const formattedDateString = formattedDate.toLocaleDateString('en-GB');\r\n const usSiteFlag = context?.actionContext?.requestContext?.apiSettings?.oun === context?.app.config.ounNumberForUsSite;\r\n const dateLocale = context?.app.config.dateFormat;\r\n const currency = context?.request.channel?.Currency;\r\n const formattedDateStringBylocale =\r\n (dateLocale && currency && formattedDateString && dateFormatByLocale(dateLocale, currency, formattedDateString)) || undefined;\r\n if (isMobile) {\r\n //View Shown in case of Mobile\r\n return (\r\n \r\n {salesLines.map(salesLine => {\r\n const salesLineAttr = salesLine.data.salesLine.AttributeValues;\r\n\r\n const productAttrManufactrValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === prodAttrIdentifier\r\n );\r\n const productAttrWeightValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === productWeightAttribute\r\n );\r\n const lineTotal = Number(salesLine?.data?.salesLine?.GrossAmount) - Number(salesLine?.data?.salesLine?.DiscountAmount);\r\n const manufItemTypeNameObj = salesLine.data.product?.ExtensionProperties?.find(item => {\r\n if (item.Key === 'ManufItemTypeName') {\r\n return item;\r\n }\r\n return null;\r\n });\r\n\r\n const manufacturerObj =\r\n attributeValues.length &&\r\n attributeValues.find((item: { recId: number | undefined }) => item.recId === salesLine?.data?.product?.RecordId);\r\n const urlPath = formatUrlPath(manufacturerObj?.manufacturer?.TextValue, manufItemTypeNameObj?.Value?.StringValue!);\r\n const pathName = context?.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl = context?.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n salesLine &&\r\n (isAddingPathWithUrl\r\n ? `${context?.actionContext.requestContext.url.requestUrl.origin}/${pathName![1]}/${urlPath}/${\r\n salesLine?.data?.product?.RecordId\r\n }.p`\r\n : `${context?.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${salesLine?.data?.product?.RecordId}.p`);\r\n const buyAgainButtonCloned = (\r\n \r\n {resources.buyAgain}\r\n \r\n );\r\n salesLine.buyAgainButton = buyAgainButtonCloned;\r\n return (\r\n
\r\n {createdDate && (\r\n \r\n {resources.documentedDateTabelHeaderLabel} : {formattedDateStringBylocale}\r\n \r\n )}\r\n {salesId && (\r\n \r\n {resources.salesIDHeaderLabel}\r\n : {salesId}\r\n \r\n )}\r\n {\r\n \r\n {resources.weightTabelHeaderLabel}{' '}\r\n : {productAttrWeightValue?.TextValue ? productAttrWeightValue?.TextValue : '-'}\r\n \r\n }\r\n {\r\n \r\n {/* {resources.manufacturerHeaderLabel} : {productAttrManufactrValue?.TextValue} */}\r\n {prodAttrIdentifier || resources.manufacturerHeaderLabel}{' '}\r\n : {productAttrManufactrValue?.TextValue}\r\n \r\n }\r\n {\r\n \r\n {resources.productTabelHeaderLabel} : {salesLine.data.product?.Name}\r\n \r\n }\r\n {\r\n \r\n {resources.productNumberTabelHeaderLabel}\r\n : {salesLine.data.product?.ItemId}\r\n \r\n }\r\n {\r\n \r\n {resources.quantityTabelHeaderLabel} : {salesLine.data.salesLine.Quantity}\r\n \r\n }\r\n {\r\n \r\n {resources.netAmountTabelHeaderLabel} : {currencyFormat(lineTotal, context)}\r\n \r\n }\r\n {\r\n \r\n {resources.grossAmountTabelHeaderLabel}{' '}\r\n : {currencyFormat(salesLine?.data?.salesLine?.TotalAmount, context)}\r\n \r\n }\r\n {\r\n \r\n {resources.currencyTabelHeaderLabel} {usSiteFlag ? : $ : : A$}\r\n \r\n }\r\n {createdDate && (\r\n \r\n {resources.fulfilledTabelHeaderLabel}{' '}\r\n : {getOrderStatus(salesLine.data.salesLine.SalesStatusValue)}\r\n \r\n )}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n } else {\r\n //View Shown in case of Web\r\n return (\r\n <>\r\n \r\n
\r\n {resources.orderStateLabel}\r\n {delivery && }\r\n
\r\n \r\n {salesLines && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesLines.map(salesLine => {\r\n const salesLineAttr = salesLine.data.salesLine.AttributeValues;\r\n\r\n const productAttrManufactrValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === prodAttrIdentifier\r\n );\r\n const productAttrWeightValue: AttributeValue | undefined = salesLineAttr?.find(\r\n (item: AttributeValue) => item.Name === productWeightAttribute\r\n );\r\n const lineTotal =\r\n Number(salesLine?.data?.salesLine?.GrossAmount) -\r\n Number(salesLine?.data?.salesLine?.DiscountAmount);\r\n const manufItemTypeNameObj = salesLine.data.product?.ExtensionProperties?.find(item => {\r\n if (item.Key === 'ManufItemTypeName') {\r\n return item;\r\n }\r\n return null;\r\n });\r\n\r\n const manufacturerObj =\r\n attributeValues.length &&\r\n attributeValues.find(\r\n (item: { recId: number | undefined }) => item.recId === salesLine?.data?.product?.RecordId\r\n );\r\n const urlPath = formatUrlPath(\r\n manufacturerObj?.manufacturer?.TextValue ?? '',\r\n manufItemTypeNameObj?.Value?.StringValue! ?? ''\r\n );\r\n const pathName = context?.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl =\r\n context?.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n salesLine &&\r\n (isAddingPathWithUrl\r\n ? `${context?.actionContext.requestContext.url.requestUrl.origin}/${\r\n pathName![1]\r\n }/${urlPath}/${salesLine?.data?.product?.RecordId}.p`\r\n : `${context?.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${salesLine?.data?.product?.RecordId}.p`);\r\n const buyAgainButtonCloned = (\r\n \r\n {resources.buyAgain}\r\n \r\n );\r\n salesLine.buyAgainButton = buyAgainButtonCloned;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {usSiteFlag ? : }\r\n \r\n \r\n \r\n );\r\n })}\r\n
{resources.documentedDateTabelHeaderLabel}{resources.salesIDHeaderLabel}{resources.weightTabelHeaderLabel}{prodAttrIdentifier || resources.manufacturerHeaderLabel}{resources.productTabelHeaderLabel}{resources.productNumberTabelHeaderLabel}{resources.quantityTabelHeaderLabel}{resources.netAmountTabelHeaderLabel}{resources.grossAmountTabelHeaderLabel}{resources.currencyTabelHeaderLabel}{resources.fulfilledTabelHeaderLabel}{resources.actionTabelHeaderLabel}
{formattedDateStringBylocale}{salesId}{productAttrWeightValue?.TextValue ? productAttrWeightValue?.TextValue : '-'}{productAttrManufactrValue?.TextValue ? productAttrManufactrValue?.TextValue : '-'}\r\n {salesLine.data.product?.Name}\r\n {salesLine.data.product?.ItemId}{salesLine.data.salesLine.Quantity}{currencyFormat(lineTotal, context)}{currencyFormat(salesLine?.data?.salesLine?.TotalAmount, context)}$A$ {getOrderStatus(salesLine.data.salesLine.SalesStatusValue)}\r\n \r\n
\r\n
\r\n )}\r\n {!delivery.showTimeslot && address}\r\n {delivery.showTimeslot && (\r\n \r\n {address}\r\n {delivery.pickupDateTimeslot}\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n};\r\n\r\nexport const OrderDetailsGroups: React.FC = ({\r\n groupsProps,\r\n groups,\r\n resources,\r\n salesId,\r\n createdDate,\r\n statusValue,\r\n context\r\n}) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\ninterface IOrderSummaryExtend {\r\n discountAmount?: number;\r\n context?: ICoreContext>;\r\n deliveryMode?: string;\r\n chargeAmount?: number;\r\n resources?: any;\r\n}\r\n\r\ninterface JSXNumberValue {\r\n value: number;\r\n}\r\nexport const OrderDetailsOrderSummary: React.FC = ({\r\n orderSummaryProps,\r\n heading,\r\n subtotal,\r\n shipping,\r\n tax,\r\n totalAmount,\r\n earnedPoints,\r\n discountAmount,\r\n context,\r\n deliveryMode,\r\n chargeAmount,\r\n resources\r\n}) => {\r\n const subTotalJSX = subtotal as JSX.Element;\r\n const subTotalJSXValue = subTotalJSX.props as JSXNumberValue;\r\n const subTotalAmount = subTotalJSXValue?.value;\r\n return (\r\n \r\n <>\r\n

{resources?.paymentSummaryText}

\r\n
\r\n {heading}\r\n\r\n {/* {subtotal} */}\r\n

\r\n {resources?.subTotalText}\r\n \r\n {currencyFormat(subTotalAmount, context)}\r\n \r\n

\r\n

\r\n {resources?.shippingFeeText}\r\n \r\n {deliveryMode && deliveryMode === 'Collection' ? (\r\n \r\n {resources?.freeText}\r\n \r\n ) : chargeAmount === 0 ? (\r\n

\r\n {resources?.toBeCalculatedText}\r\n
\r\n \r\n {resources?.excludingFreightCostMessage}\r\n
\r\n
\r\n ) : (\r\n {currencyFormat(chargeAmount, context)}\r\n )}\r\n \r\n

\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const OrderDetailsPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderDetailsHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderDetailsView: React.FC> = ({\r\n moduleProps,\r\n viewModes,\r\n tableViewActions,\r\n table,\r\n placedBy,\r\n heading,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n groups,\r\n resources,\r\n config: { bannerImage, bannerLink },\r\n context: {\r\n request: { gridSettings },\r\n actionContext: { requestContext }\r\n },\r\n context,\r\n data: {\r\n orderHydration: { result }\r\n }\r\n}) => {\r\n const { salesOrder } = result!;\r\n\r\n const imageProps = {\r\n gridSettings: gridSettings ?? {},\r\n imageSettings: bannerImage?.imageSettings\r\n };\r\n interface IContentBlockFullConfig extends IContentBlockConfig {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n }\r\n const contentBlockImage = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {tableViewActions}\r\n {result?.salesOrder?.Name ? (\r\n
\r\n {resources.orderPlacedBy} {result?.salesOrder?.Name?.split(' ')[0]}\r\n
\r\n ) : (\r\n placedBy\r\n )}\r\n {viewModes}\r\n {table}\r\n {groups && orderInfomation && (\r\n \r\n )}\r\n \r\n {orderSummary && (\r\n \r\n )}\r\n {bannerLink && bannerLink.linkUrl && bannerLink.linkUrl.destinationUrl && (\r\n
\r\n {' '}\r\n \r\n {contentBlockImage}\r\n \r\n
\r\n )}\r\n {/* {payment && } */}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderDetailsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n actionContext: {\r\n requestContext: {\r\n user: { isAuthenticated }\r\n }\r\n }\r\n }\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderProductSuggestions(\r\n ProductSuggest,\r\n UlProduct,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n isAuthenticated\r\n )}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.input}\r\n {form.cancelBtn}\r\n {form.submitBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode,\r\n isAuthenticated?: boolean\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n
{item.thumbnail}
\r\n
\r\n
{item.text}
\r\n {/* VSI CUSTOMIZATION START => Price Shows in Search for Only Logged in User */}\r\n {/*
{isAuthenticated ? item.price : null}
*/}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): 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 {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\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 { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) =>

{description}

;\n\nexport default SignInDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\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 { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): 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 {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\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 {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\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 { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartViewProps, IOrderSummaryErrors } from './cart';\nimport { ICartlinesViewProps } from './components/cart-line-items';\nimport { ICartLineItemViewProps } from './components/cart-line-items-promotion';\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n cartEmptyText: string,\n CartlinesWrapper: INodeProps,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map(cartLine => {\n return (\n
    \n {cartLine.cartline}\n {storeSelector && cartLine.pickUpInStore ? (\n {cartLine.pickUpInStore.defaultComponent}\n ) : null}\n {cartLine.addToOrderTemplate ? (\n \n {cartLine.remove}\n {cartLine.addToWishlist}\n {cartLine.addToOrderTemplate}\n \n ) : (\n <>\n {cartLine.remove}\n {cartLine.addToWishlist}\n \n )}\n
    \n );\n });\n }\n return cartDataResult ? (\n
    \n

    {cartEmptyText}

    \n {backToShoppingButton}\n
    \n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * Method will render error block.\n * @param errorData -The order summary errors interface.\n * @returns Jsx element.\n */\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Method will render invoice summary lines.\n * @param invoiceSummaryLines -The invoicesummary lines interface.\n * @param OrderSummaryItems -The order summary items props.\n * @param props -The cartview props.\n * @returns Jsx element.\n */\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Method will render order summary lines.\n * @param orderSummaryLines -The ordersummary lines interface.\n * @param OrderSummaryItems -The order summary items props.\n * @param props -The cartview props.\n * @returns Jsx element.\n */\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Method will render cart promotions.\n * @param promotions -The cartline item view props.\n * @returns Jsx element.\n */\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\n/**\n * Method will render cartlines group title.\n * @param cartLine -The cartline view props.\n * @param titleSeparate -The title separate.\n * @returns Jsx element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, titleSeparate: string) => {\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\n return (\n <>\n \n {isBopisSelected ? (\n

    \n {cartLine.pickUpInStore?.deliveryOption}\n {titleSeparate}\n {cartLine.pickUpInStore?.orgUnitName}\n

    \n ) : null}\n
    \n \n );\n};\n\n/**\n * Method will render cartlines groups header title.\n * @param pickUpText -The pickup text for group.\n * @param shippingText -The shipping text for group.\n * @param emailShippingText -The email shipping text for group.\n * @param titleSeparate -The title separator.\n * @param cartLine -The cartline view props.\n * @param emailDeliveryModeCode -The email delivery code from channel.\n * @returns Jsx element.\n */\nconst renderCartLinesGroupHeader = (\n pickUpText: string,\n shippingText: string,\n emailShippingText: string,\n titleSeparate: string,\n cartLine: ICartlinesViewProps,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailShippingText : groupTitle;\n }\n\n return (\n <>\n
    \n

    \n

    {groupTitle}

    \n {renderCartLinesGroupTitle(cartLine, titleSeparate)}\n
    \n \n );\n};\n\n/**\n * Method will render cartlines in groups.\n * @param props -The cartline.\n * @returns Jsx element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
    \n {props.cartLinesGroup.map(cartlines => {\n return (\n
    \n {renderCartLinesGroupHeader(\n props.resources.pickUpText,\n props.resources.shippingText,\n props.resources.emailshippingText,\n props.resources.titleSeparate,\n cartlines[0],\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources.emptyCartText,\n props.CartlinesWrapper,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n
    \n );\n })}\n
    \n );\n }\n return props.cartDataResult ? (\n
    \n
    \n

    {props.resources.emptyCartText}

    \n {props.backToShoppingButton}\n
    \n
    \n ) : (\n <>{props.waitingComponent}\n );\n};\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
    \n {props.title}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? (\n renderCartLinesGroup(props)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources.emptyCartText,\n props.CartlinesWrapper,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
    \n);\n\nexport default CartView;\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 { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
    \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
    \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\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 {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
    \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n \n {errorMessage}\n {products}\n \n {pagination}\n
    \n
    \n
    \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
    \n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
    \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult, Customer, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {\n accountInformation?: AsyncResult;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
    \n
    {buttonText}
    \n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n }\n );\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(\n this.state.comparisonItemId\n );\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).hasItemById(comparisonItemId),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\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 { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionConfigureDropdownViewProps, IProductDimensionConfigureViewProps } from '@msdyn365-commerce/components';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderFormViewProps } from './components';\nimport { IQuickOrderViewProps } from './quick-order';\n\n/**\n * Render product dimension/configure container.\n * @param configure -- Product dimension configuration.\n * @returns Container to have dimension dropdown.\n */\nconst renderConfigure = (configure?: IProductDimensionConfigureViewProps): JSX.Element | null => {\n if (configure !== undefined) {\n const { containerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n }\n return null;\n};\n\n/**\n * Render product dimension/configure dropdown.\n * @param dropdown -- Product dimension drop down.\n * @returns Dropdown.\n */\nconst renderConfigureDropdown = (dropdown: IProductDimensionConfigureDropdownViewProps): JSX.Element => {\n const { containerProps, labelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {errors}\n {select}\n \n );\n};\n\nconst renderForm = (\n form: IQuickOrderFormViewProps,\n isMobileView: boolean,\n quickOrderForm: INodeProps,\n quickOrderProductContent: INodeProps,\n quickOrderMsgContent: INodeProps,\n configure?: IProductDimensionConfigureViewProps\n) => {\n return isMobileView ? (\n \n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.userMessage}\n {form.addToCartBtn}\n \n \n ) : (\n \n {form.userMessage}\n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.addToCartBtn}\n \n \n );\n};\n\nconst quickOrderView: React.FC = props => {\n const {\n quickOrderProps,\n contentProps,\n form,\n quickOrderForm,\n drawer,\n configure,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n quickOrderList,\n isMobileView\n } = props;\n\n return (\n \n \n \n {renderForm(\n form as IQuickOrderFormViewProps,\n isMobileView,\n quickOrderForm,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n configure\n )}\n \n \n\n {quickOrderList}\n \n );\n};\nexport default quickOrderView;\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 { ISearchResultModalViewProps } from './components';\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from './search-result-container';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {TitleViewProps && renderTitleCount(TitleViewProps)}\n \n \n {refineMenu && renderRefiner(refineMenu)}\n \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n \n \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}\n

    \n
    \n );\n }\n return null;\n};\n\nconst renderTitleCount = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n
    {title.titleCount}
    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
    \n
    {this.props.promoCodeHeadingText}
    \n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

    \n {this.state.error}\n

    \n {this._renderAppliedPromoCode(this.props)}\n
    \n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
    \n
    \n \n \n
    \n
    \n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
    \n
    \n {'Code '}\n {coupon.Code}\n {'Applied '}\n
    \n \n
    \n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n"],"names":["BusinessAccountAddress","React","constructor","props","super","countryRegionId","countryRegions","addressPurposes","defaultAddressType","shouldAutoFocus","excludedList","AddressItemType","Name","AddressTypeValue","IsPrimary","_resetAddressFields","this","addressFormat","getAddressFormat","map","addressFormatItem","displayType","AddressItemDisplayType","Input","addUpdateAddress","name","Checkbox","type","ThreeLetterISORegionName","State","undefined","_dataInitialize","data","reaction","result","_data$countryRegions$","_data$addressPurposes","countryStates","_data$countryStates$r","stateProvinceInfo","_renderAddOrUpdateAddress","_this$props","_this$props2","usSiteFlag","context","actionContext","requestContext","apiSettings","oun","app","config","ounNumberForUsSite","mexicoSiteFlag","ounNumberForMexicoSite","AddressAddUpdate","isUpdating","resources","addressType","AddressType","Company","defaultCountryRegionId","selectedAddress","validationError","hasError","addressActionResponse","telemetryContent","dropdownDisplayData","getPrefilledAddressDropdownData","addressStateDefaultSelectionText","onInputChange","_onAddressAddUpdateInputChange","onDropdownChange","_onAddressAddUpdateDropdownChange","event","_updateAddress","target","value","async","_updateCountryRegionId","_this$props3","_this$props4","updateForm","isRequired","cleanValue","replace","RegExp","tempValue","split","join","set","_isEmpty","AddressFormat","AddressMetaData","_objectSpread","validateAddressFormat","_isInputRequired","addressItemValue","ObjectExtensions","isNullOrUndefined","validationRules","length","validationRule","AddressValidationRuleType","Required","addressCommon","getStateProvinces","then","some","state","StateId","telemetry","AddressCommon","getTelemetryObject","request","telemetryPageName","friendlyName","componentDidMount","_setDefaultCountryRegionId","shouldComponentUpdate","nextProps","nextState","render","_this$props5","_this$props6","renderView","resetAddress","className","moduleProps","classnames","showAddOrUpdateAddress","_request$channel","market","channel","ChannelCountryRegionISOCode","getDefaultCountryRegionId","__decorate","observable","_ref","AddressForm","heading","items","error","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","Node","Object","assign","item","AddressItem","key","label","alert","input","customAlert","customLabel","AddressError","title","message","Module","AddToCartComponentActions","onClick","_event","setUploadStatus","openModal","setLinesAddedToCartDialogOpen","setAddedLinesCount","setErrorMessage","setOnlyThoselinesAddedWithAvailableQuantityMessage","_props$data$orderTemp","dialogStrings","atpData","cart","addProductToCartInput","orderTemplate","orderTemplateLines","line","twoZeroFourProd","find","_line$fullProduct","ItemId","fullProduct","ProductDetails","StatusCode","twoZeroFourProductQuantity","_cart$cart$CartLines","atpQuantity","JSON","parse","jsonResponce","Quantity","twoZeroFourProdInCart","CartLines","_line$fullProduct2","productListLine","_line$fullProduct3","push","product","count","addProductsToCart","_result$errorDetails","status","setTimeout","errorDetails","LocalizedMessage","console","orderTemplateErrorMessage","buttonEventReference","AddOrderTemplateToCartComponent","msdyn365Commerce","createComponent","component","uploadStatus","useState","modalOpen","setModalOpen","addedLinesCount","linesAddedToCartDialogOpen","errorMessage","onlyThoselinesAddedWithAvailableQuantityMessage","modalText","_getModalText","errorMsg","addToCartFailureMessage","addToCartSuccessMessage","addToCartProcessMessage","processStatusClass","toLowerCase","closeWindowButtonText","payLoad","getPayloadObject","TelemetryConstant","AddOrderTemplateToCart","addOrderTemplateAttribute","getTelemetryAttributes","popupProps","text","renderModalPopup","PopupProducts","products","filter","totalLines","addToCartText","disabled","LinesAddedToCartDialog","id","typeName","linesAddedToCartDialogResources","linesCount","productList","onClose","closeLinesAddedToCartDialog","_buttonEventReference","focus","OrderTemplateProductsPreviewComponent","imageSettings","renderOrderTemplateImages","renderOrderTemplateImage","_product$ProductDetai","_getFallbackImageUrl","_context$request$app","_product$ProductDetai2","Image","src","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","OmniChannelMedia","gridSettings","viewports","xs","q","w","h","lg","xl","lazyload","loadFailureBehavior","altText","dialogProps","close","lineItemsString","linesAddedToCartHeaderLinesOneText","linesAddedToCartHeaderLinesFormatText","toString","Modal","isOpen","toggle","ModalHeader","linesAddedToCartHeaderItemsOneText","linesAddedToCartHeaderMessageText","ModalBody","onlyThoselinesAddedToCartMessageText","ModalFooter","Button","viewCartButtonText","href","getUrlSync","orderTemplateCloseButtonText","_props$config","_props$context","setIsOpen","zipCode","setZipCode","setError","alertActive","setAlertActive","modalBtn","useRef","inputRef","enableGenericTerritories","territory_data","territoryData","notFoundError","notFound","notFoundZipcode","useEffect","addressFromZip","cookies","get","_props$context4","_props$context5","territory","Territory","isTerritoryMatched","pathName","url","requestUrl","pathname","hostName","hostname","includes","toLocaleLowerCase","pathKeyword","__reditectTo","_props$context2","_props$context3","redirectURL","matchingTerritory","toUpperCase","MsDyn365","isBrowser","window","location","brBaseUrl","mbBaseUrl","viewProps","_handleZipCode","preventDefault","getAddressFromZipCode","actionAddressFromZipCode","GetAddressFromZipCodeInput","defaultTerritory","keys","currentHostname","mainDomain","getMainDomain","stringify","domain","path","e","apiException","_props$context6","_props$context7","_config$logoImage","_config$logoImage2","autoFocus","fade","returnFocusRef","horizontalPosition","verticalPosition","logoImage","alt","headingWebShop","onSubmit","htmlFor","zipCodeLabel","newZealandZipCodeMsg","ref","placeholder","onChange","maxLength","_inputRef$current","current","submitBtnLabel","RichTextComponent","infoText","footerContent","CarouselProps","MediaGallery","isEdgeBrowser","_navigator","navigator","userAgent","OrderDetailsSalesLine","salesLineProps","salesLine","buyAgainButton","errors","OrderDetailsGroupDelivery","_ref2","deliveryProps","statusValue","getOrderStatus","OrderDetailsGroup","_ref3","_context$app","_context$actionContex","_context$request$chan","group","salesId","createdDate","groupProps","delivery","address","salesLinesProps","salesLines","productWeightAttribute","isMobile","setIsMobile","attributeValues","setAttributeValues","prodAttrIdentifier","setProdAttrIdentifier","_updateViewport","viewport","_getViewport","device","Type","innerWidth","sm","md","addEventListener","prodAttributeIdentifier","res","_salesLine$data$produ","_context$request","_context$request2","_salesLine$data$produ2","productAttributes","getAttributeValuesAsync","callerContext","queryResultSettings","RecordId","channelId","catalogId","productAttributesFiltered","filteredProductAttributeList","kcProductAttribute","manufacturer","identifier","recId","fetchData","createdDateJSXProps","customDate","children","dateParts","formattedDateString","Date","toLocaleDateString","dateLocale","dateFormat","currency","Currency","formattedDateStringBylocale","dateFormatByLocale","_salesLine$data","_salesLine$data2","_salesLine$data$produ3","_manufacturerObj$manu","_manufItemTypeNameObj","_context$actionContex2","_salesLine$data4","_salesLine$data5","_salesLine$data$produ4","_salesLine$data$produ5","_salesLine$data$produ6","_salesLine$data6","salesLineAttr","AttributeValues","productAttrManufactrValue","productAttrWeightValue","lineTotal","Number","GrossAmount","DiscountAmount","manufItemTypeNameObj","ExtensionProperties","Key","manufacturerObj","_salesLine$data3","urlPath","formatUrlPath","TextValue","Value","StringValue","isAddingPathWithUrl","addPathWithUrl","productUrl","origin","buyAgainButtonCloned","buyAgain","documentedDateTabelHeaderLabel","salesIDHeaderLabel","weightTabelHeaderLabel","manufacturerHeaderLabel","productTabelHeaderLabel","productNumberTabelHeaderLabel","quantityTabelHeaderLabel","netAmountTabelHeaderLabel","currencyFormat","grossAmountTabelHeaderLabel","TotalAmount","currencyTabelHeaderLabel","fulfilledTabelHeaderLabel","SalesStatusValue","orderStateLabel","actionTabelHeaderLabel","_salesLine$data7","_salesLine$data8","_salesLine$data$produ7","_manufacturerObj$manu2","_manufacturerObj$manu3","_manufItemTypeNameObj2","_manufItemTypeNameObj3","_context$actionContex3","_salesLine$data10","_salesLine$data11","_salesLine$data$produ8","_salesLine$data$produ9","_salesLine$data$produ10","_salesLine$data12","_salesLine$data9","showTimeslot","pickupProps","pickupDateTimeslot","OrderDetailsGroups","_ref4","groupsProps","groups","index","OrderDetailsOrderSummary","_ref5","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","discountAmount","deliveryMode","chargeAmount","subTotalJSXValue","subTotalAmount","paymentSummaryText","subTotalText","shippingFeeText","itemProp","freeText","toBeCalculatedText","tabIndex","excludingFreightCostMessage","OrderDetailsPayment","_ref6","paymentMethodsProps","methods","OrderDetailsHelp","_ref7","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref8","_result$salesOrder","_result$salesOrder2","_bannerLink$linkUrl","viewModes","tableViewActions","table","placedBy","loading","orderInfomation","orderSummary","bannerImage","bannerLink","orderHydration","salesOrder","imageProps","contentBlockImage","Msdyn365","editProps","imagePropertyName","layout","msdyn365__moduleLayout","shouldSkipToMainImage","orderPlacedBy","StatusValue","DeliveryMode","ChargeAmount","linkUrl","destinationUrl","openInNewTab","ariaLabel","_renderForm","form","SearchForm","FormWrapper","cancelBtn","submitBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","isLoadingAutoSuggest","isLoadingNode","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","isAuthenticated","LiProduct","AProduct","thumbnail","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","user","AccountCustomerBalanceTile","_initState","setState","content","ErrorComponent","apiGenericErrorMessage","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","links","Heading","headingTag","tag","isDetailsLinkDisplayed","LinksComponent","onTextChange","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","_mapEditableLinks","linkdata","editableLinks","forEach","link","contentAction","etext","linkText","attributes","editableLink","role","additionalProperties","SignUpText","LoyaltySignUp","handleHeadingChange","handleMemberHeadingChange","memberHeading","_issueLoyalty","clicked","IssueLoyaltyInput","issueLoyalty","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","onEdit","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","observer","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","modal","onToggle","applicationNode","returnRef","modalHeader","modalFooter","modalBody","cancelLoyaltyTermsText","submitButton","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","qsp","splitQsp","isModalOpen","hideToggle","slots","serviceTerms","modalToggle","innerRef","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","description","errorClassName","GetMaxLength","parsedMaxLength","parseInt","isNaN","pattern","forId","moduleClassName","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","emailRegex","emailId","SA_FIELDS","AttributeFields","ID","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","EmailRegex","defaultRegex","source","componentDidUpdate","viewState","isShowLoading","signIn","icon","SignInLoadingIconComponent","SignInLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","aadConainer","signInSection","signInSectionHeading","signInLocalAccount","localAccount","_renderInput","emailAddressLabelText","emailAddressAriaLabel","passwordLabelText","forgetPassword","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","disclaimer","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","labelText","wrapper","SignInLabelComponent","SignInInputComponent","iconImage","button","image","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","pictureClassName","SignInLoading","LocalAccount","SocialAccount","B2BAccount","BusinessPartnerPromotionTermsParagraph","titleClassName","BusinessPartnerPromotion","onCheckBoxChange","termsOfServiceChecked","onToggleTermOfServiceModal","termsOfServiceModalOpened","_data$b2bUserInformat","_data$b2bUserInformat2","errorMessageText","promoteToSellerSubmitSuccessMessage","businessPartnerId","b2bUserInformation","BusinessPartnerId","promoteToSellerAsync","showSubmitButton","showTermsOfService","notificationMessage","_unused","termsOfService","authorizationErrorMessage","canSubmit","isAdminUser","btnEnabled","businessPartnerPromotionProps","Text","renderNotificationBar","sellerDescriptions","renderSellerDescriptions","termsOfServiceCheckbox","termsOfServiceLinkText","termsOfServiceAgreementText","termsOfServiceModal","termsOfServiceModalHeading","submitRequestLabel","notificationBar","Alert","color","results","idx1","_description$bulletPo","bulletPoints","bulletPoint","idx2","StringExtensions","isNullOrEmpty","IsAdmin","_renderCartlines","cartLines","cartEmptyText","CartlinesWrapper","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","cartLine","_cartLine$cartlineId","cartlineId","cartline","pickUpInStore","ContainerProps","defaultComponent","addToOrderTemplate","remove","addToWishlist","renderCartLinesGroupHeader","pickUpText","shippingText","emailShippingText","titleSeparate","emailDeliveryModeCode","_cartLine$pickUpInSto4","groupTitle","isBopisSelected","renderCartLinesGroupTitle","_cartLine$pickUpInSto","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","deliveryOption","orgUnitName","_props$cart","_props$cart2","errorData","promotions","renderModuleAttributes","hasInvoiceLine","promotionOptions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","multiplePickUpEnabled","cartLinesGroup","ArrayExtensions","hasElements","cartlines","_props$context$action","emailshippingText","EmailDeliveryModeCode","emptyCartText","renderCartLinesGroup","orderSummaryHeading","OrderSummaryWrapper","_renderInvoiceSummarylines","invoiceSummaryLines","OrderSummaryItems","invoices","giftCard","loyalty","orderTotal","invoiceSummaryLineitems","_renderOrderSummarylines","orderSummaryLines","promoCode","otherCharge","totalDiscounts","orderSummaryLineitems","OrderSummaryErrors","Wrapper","header","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","CookieComplianceLinks","onTelemetryClick","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","visible","cookieRef","_onDismiss","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","Content","acceptButton","setConsentCookie","reload","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","promotionalContent","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","menuNode","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","_categoryImage$imageS","ImageData","categoryImageSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","document","body","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","keyValue","isDrawerOpen","colProps","toggleButtonProps","collapseProps","_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","Math","round","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","BackTopFooter","backtoTopText","destination","BackToTop","Iframe","iframeRef","srcURL","URL","exception","protocol","iframeClassName","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView","componentClassName","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","currentViewModeState","onClickHandler","newViewModeState","viewModeDetailedViewAttributes","ViewMode","viewModeListViewAttributes","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel","ProductComparisonButton","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","ProductComparisonState","instance","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","productComparisonPreview","isDisabled","_this$props$data$acco4","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","_this$props$data$acco5","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","variant","VariantType","Browser","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","ProductComparisonButtonViewFunctionalComponent","renderConfigure","configure","containerProps","dropdowns","renderConfigureDropdown","dropdown","labelContainerProps","select","quickOrderProps","contentProps","quickOrderForm","drawer","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderList","renderForm","quickOrderProductContent","quickOrderMsgContent","quantity","userMessage","addToCartBtn","renderTitleCount","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","promoPlaceholderText","promoCodeApplyButtonText","_removePromotion","_event$currentTarget$","code","currentTarget","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","format","removePromoText","Code","ApplyPromoCode","promoCodeHeadingText","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","OrderInfomation","orderInformationProps","receiptId","amount","channelReferenceId","channelName","channelAddress","SalesLine","GroupDelivery","Group","isCashAndCarryTransaction","LineId","salesStatus","deliveryType","shipment","trackingInfo","Groups","OrderSummary","Payment","Help","_ref9","payment","help"],"sourceRoot":""}