{"version":3,"file":"static/js/18.271684013b76f161bdd1.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-button.tsx?ce78","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-error.tsx?5bfb","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-input.tsx?e5a5","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-label.tsx?96f0","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-loading-icon.tsx?eca8","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-loading-message.tsx?9b52","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/components/new-sign-up-success.tsx?2dfb","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/new-sign-up.tsx?3c28","webpack://Msdyn365.Commerce.Online/./src/modules/new-sign-up/new-sign-up.view.tsx?fca0","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/definition-extensions/account-loyalty.ext.props.autogenerated.ts?0bf6","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-loyalty.view.tsx?24c1","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/header.view.tsx?2a15","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/components/navigation-menu-utilities.tsx?ca80","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/navigation-menu.view.tsx?2c75","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/reviews-list.view.tsx?43bb","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/search-result-container.view.tsx?5f49","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf"],"sourcesContent":["/*!\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 { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpButton {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\r\n \r\n);\r\n\r\nexport default SignUpButton;\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 classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpInputProps {\r\n id?: string;\r\n hasFocus?: boolean;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n type: any;\r\n value?: string;\r\n pattern?: string;\r\n required?: boolean;\r\n className: string;\r\n maxLength?: string;\r\n onChange?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface ISignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst SignUpInput: React.FC = ({ id, type, value, pattern, required, className, maxLength, onChange }) => (\r\n \r\n);\r\n\r\nexport default SignUpInput;\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 * as React from 'react';\r\n\r\nexport interface ISignUpLabel {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\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 * as React from 'react';\r\n\r\nexport interface ISignUpLoadingIcon {\r\n className: string;\r\n}\r\n\r\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\r\n\r\nexport default SignUpLoadingIcon;\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 * as React from 'react';\r\n\r\nexport interface ISignUpLoadingMessage {\r\n className: string;\r\n message: string;\r\n}\r\n\r\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\r\n
{message}
\r\n);\r\n\r\nexport default SignUpLoadingMessage;\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 classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpSuccess {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\r\n const successClassName = `${className}__${type}-success`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpSuccess;\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 * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n// import { useState } from 'react';\r\n\r\nimport SignUpButtonComponent from './components/new-sign-up-button';\r\nimport SignUpErrorComponent from './components/new-sign-up-error';\r\nimport SignUpInputComponent from './components/new-sign-up-input';\r\nimport SignUpLabelComponent from './components/new-sign-up-label';\r\nimport SignUpLoadingIconComponent from './components/new-sign-up-loading-icon';\r\nimport SignUpLoadingMessageComponent from './components/new-sign-up-loading-message';\r\nimport SignUpSuccessComponent from './components/new-sign-up-success';\r\nimport { INewSignUpConfig, INewSignUpProps, INewSignUpResources } from './new-sign-up.props.autogenerated';\r\n\r\nexport interface ISignUpViewState {\r\n isShowLoading: boolean;\r\n}\r\n\r\nexport interface ISignUpItem {\r\n wrapper: INodeProps;\r\n key: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpEmailVerification {\r\n isRequired: boolean;\r\n email: ISignUpItem;\r\n buttonWrapper: INodeProps;\r\n buttons: React.ReactNode[];\r\n successMessage: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n verificationControlWrapper: INodeProps;\r\n}\r\n\r\n/**\r\n * SignUp Given Name Verification Interface.\r\n */\r\nexport interface ISignUpGivenNameVerification {\r\n isRequired: boolean;\r\n givenName: ISignUpItem;\r\n errorMessage: React.ReactNode[];\r\n verificationControlWrapper: INodeProps;\r\n}\r\n\r\n/**\r\n * SignUp Surname Verification Interface.\r\n */\r\nexport interface ISignUpSurnameVerification {\r\n isRequired: boolean;\r\n surname: ISignUpItem;\r\n errorMessage: React.ReactNode[];\r\n verificationControlWrapper: INodeProps;\r\n}\r\n\r\nexport interface ISignUpLocalAccount {\r\n localAccount: INodeProps;\r\n items: ISignUpItem[];\r\n emailVerification: ISignUpEmailVerification;\r\n givenNameVerification: ISignUpGivenNameVerification;\r\n surnameVerification: ISignUpSurnameVerification;\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpLoading {\r\n modal: INodeProps;\r\n modalBody: INodeProps;\r\n icon: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpViewProps {\r\n className: string;\r\n viewState: ISignUpViewState;\r\n loading: ISignUpLoading;\r\n signUp: IModuleProps;\r\n defaultAADConainer: INodeProps;\r\n aadConainer: INodeProps;\r\n heading: React.ReactNode;\r\n signUpLocalAccount: ISignUpLocalAccount;\r\n config: INewSignUpConfig;\r\n resources: INewSignUpResources;\r\n regionCRM: string;\r\n LastConsentSource: string;\r\n locale: string;\r\n EcomSignUpLegalEntity: string;\r\n}\r\n\r\n/**\r\n *\r\n * SignUp component\r\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\r\n * Please ensure any change in module don't break contract with AAD.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass SignUp extends React.Component> {\r\n @observable private isGivenNameVerificationRequried: boolean;\r\n\r\n @observable private isSurnameVerificationRequried: boolean;\r\n\r\n private readonly moduleClassName: string = 'ms-sign-up';\r\n\r\n @observable private emailRegex: string;\r\n\r\n @observable private newPasswordRegex: string;\r\n\r\n @observable private reenterPasswordRegex: string;\r\n\r\n @observable private isEmailVerificationRequried: boolean;\r\n\r\n @observable private isInitialized: boolean;\r\n\r\n @observable private templateVersion: string;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private initializationTimer: any;\r\n\r\n constructor(props: INewSignUpProps) {\r\n super(props);\r\n\r\n this.emailRegex = EmailRegex.defaultRegex.source;\r\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\r\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\r\n this.isEmailVerificationRequried = false;\r\n this.isGivenNameVerificationRequried = false;\r\n this.isSurnameVerificationRequried = false;\r\n this.isInitialized = false;\r\n this.templateVersion = '';\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._onInit();\r\n }\r\n\r\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\r\n public componentDidUpdate(): void {\r\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\r\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\r\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\r\n window['$element']['initialize']();\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: INewSignUpProps, nextState: ISignUpViewState): 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 public render(): JSX.Element {\r\n // Locale management\r\n const locale = this.props?.context?.request?.locale;\r\n\r\n const regionCRM: string =\r\n this.props.config.regionLanguageMapping?.find(regionMapping => regionMapping.pageLanguage === locale)?.regionCRM || locale;\r\n const LastConsentSource = this.props.config.Source;\r\n const EcomSignUpLegalEntity = this.props.config.EcomSignUpLegalEntity;\r\n\r\n const { config, resources } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n viewState: {\r\n isShowLoading: !this.isInitialized\r\n },\r\n signUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, config.className)\r\n },\r\n loading: {\r\n modal: {\r\n tag: Modal,\r\n isOpen: true\r\n },\r\n modalBody: {\r\n tag: ModalBody\r\n },\r\n icon: ,\r\n message: \r\n },\r\n defaultAADConainer: {\r\n id: 'api',\r\n style: { display: 'none' }\r\n },\r\n aadConainer: {\r\n id: this.isInitialized ? 'api' : null,\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: (\r\n \r\n ),\r\n signUpLocalAccount: this._renderLocalAccount(),\r\n locale: locale,\r\n regionCRM: regionCRM,\r\n LastConsentSource: LastConsentSource,\r\n EcomSignUpLegalEntity: EcomSignUpLegalEntity\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles heading content change event.\r\n * @param event - Content editable event.\r\n * @returns - Heading Text.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\r\n\r\n /**\r\n * Handles paragraph content change event.\r\n * @param event - Content editable event.\r\n * @returns - Paragraph Text.\r\n */\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public _onInit = () => {\r\n this._prePopulateData();\r\n this._updateErrorMessage();\r\n\r\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.\r\n this.initializationTimer = setInterval(() => {\r\n this._isInitializationSuccessful();\r\n }, 100);\r\n setTimeout(() => {\r\n clearInterval(this.initializationTimer);\r\n }, 10_000);\r\n };\r\n\r\n // After successful AAD initialization, remove waiting and preload any data, if needed.\r\n private readonly _isInitializationSuccessful = () => {\r\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\r\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\r\n clearInterval(this.initializationTimer);\r\n this.isInitialized = true;\r\n }\r\n };\r\n\r\n private readonly _prePopulateData = () => {\r\n const resources: INewSignUpResources = this.props.resources || {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\r\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\r\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\r\n window['SA_FIELDS']['AttributeFields'].map(\r\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\r\n switch (obj.ID.toLowerCase()) {\r\n case 'emailverificationcontrol': {\r\n this.isEmailVerificationRequried = true;\r\n this.templateVersion = 'v2';\r\n break;\r\n }\r\n case 'email': {\r\n this.emailRegex = obj.PAT;\r\n this.isEmailVerificationRequried = obj.VERIFY;\r\n this.templateVersion = 'v1';\r\n break;\r\n }\r\n case 'givennameverificationcontrol': {\r\n this.isGivenNameVerificationRequried = true;\r\n break;\r\n }\r\n case 'givenname': {\r\n this.isGivenNameVerificationRequried = obj.VERIFY;\r\n break;\r\n }\r\n case 'surnameverificationcontrol': {\r\n this.isEmailVerificationRequried = true;\r\n break;\r\n }\r\n case 'surname': {\r\n this.isSurnameVerificationRequried = obj.VERIFY;\r\n break;\r\n }\r\n case 'newpassword': {\r\n this.newPasswordRegex = obj.PAT;\r\n break;\r\n }\r\n case 'reenterpassword': {\r\n this.reenterPasswordRegex = obj.PAT;\r\n break;\r\n }\r\n default:\r\n }\r\n\r\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\r\n case 'password': {\r\n obj.PAT_DESC = resources.invalidPasswordError;\r\n break;\r\n }\r\n case 'emailbox': {\r\n obj.PAT_DESC = resources.invalidEmailAddressError;\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n );\r\n }\r\n };\r\n\r\n private readonly _updateErrorMessage = () => {\r\n const resources: INewSignUpResources = this.props.resources || {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\r\n if (window && window['CONTENT']) {\r\n const errorMessages = {\r\n required_field: resources.requiredFieldMissingError\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\r\n Object.assign(window['CONTENT'], errorMessages);\r\n }\r\n };\r\n\r\n private readonly getValue = (v1Value: string, v2Value: string): string => {\r\n if (this.templateVersion) {\r\n return this.templateVersion === 'v1' ? v1Value : v2Value;\r\n }\r\n return '';\r\n };\r\n\r\n private _renderLocalAccount(): ISignUpLocalAccount {\r\n const { config, resources } = this.props;\r\n return {\r\n localAccount: {\r\n id: 'attributeList',\r\n className: `${this.moduleClassName}__account-items attr`\r\n },\r\n items: [\r\n this._renderInput('email', 'email', `${resources.emailAddressLabelText} *`, '255', this.emailRegex, true),\r\n // this._renderInput('email_rep', 'email', 'Repeat your email address', '255'),\r\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex, true),\r\n this._renderInput(\r\n 'reenterPassword',\r\n 'password',\r\n resources.confirmPasswordLabelText,\r\n undefined,\r\n this.reenterPasswordRegex,\r\n true\r\n ),\r\n this._renderInput('givenName', 'text', `${resources.firstNameLabelText} *`, resources.firstNameMaxLength, undefined, true),\r\n this._renderInput('surname', 'text', `${resources.lastNameLabelText} *`, resources.lastNameMaxLength, undefined, true),\r\n this._renderInput('postalCode', 'text', resources.addressZipCodeLabelOptional, '8'),\r\n this._renderInput('extension_Birthday', 'date', resources.birthdayLabelText),\r\n // TODO Manage spaces\r\n this._renderInput('phone_number', 'tel', resources.phoneLabelText, '15'),\r\n this._renderInput('extension_RegionCRM', 'text', 'RegionCRM'),\r\n this._renderInput('extension_LastConsentSource', 'text', 'LastConsentSource'),\r\n this._renderInput('extension_EcomSignUpLegalEntity', 'text', 'EcomSignUpLegalEntity'),\r\n this._renderInput('extension_GenericMarketing', 'checkbox', ''),\r\n this._renderInput('extension_Profiling', 'checkbox', ''),\r\n this._renderInput('extension_ThirdParty', 'checkbox', '')\r\n ],\r\n emailVerification: {\r\n isRequired: this.isEmailVerificationRequried,\r\n email: this._renderInput(\r\n this.getValue('email_ver_input', 'emailVerificationCode'),\r\n 'text',\r\n resources.verificationCodeLabelText,\r\n undefined,\r\n undefined,\r\n undefined,\r\n 'VerificationCode'\r\n ),\r\n verificationControlWrapper: {\r\n id: 'emailVerificationControl',\r\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\r\n },\r\n buttonWrapper: {\r\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\r\n 'data-claim_id': 'email'\r\n },\r\n buttons: [\r\n ,\r\n ,\r\n ,\r\n \r\n ],\r\n successMessage: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n \r\n ]\r\n },\r\n givenNameVerification: {\r\n isRequired: this.isGivenNameVerificationRequried,\r\n givenName: this._renderInput(\r\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\r\n 'text',\r\n resources.verificationCodeLabelText,\r\n undefined,\r\n undefined,\r\n undefined,\r\n 'VerificationCode'\r\n ),\r\n verificationControlWrapper: {\r\n id: 'givenNameVerificationControl',\r\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\r\n },\r\n errorMessage: [\r\n \r\n ]\r\n },\r\n surnameVerification: {\r\n isRequired: this.isSurnameVerificationRequried,\r\n surname: this._renderInput(\r\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\r\n 'text',\r\n resources.verificationCodeLabelText,\r\n undefined,\r\n undefined,\r\n undefined,\r\n 'VerificationCode'\r\n ),\r\n verificationControlWrapper: {\r\n id: 'surnameVerificationControl',\r\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\r\n },\r\n errorMessage: [\r\n \r\n ]\r\n },\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n ,\r\n ,\r\n ,\r\n \r\n ],\r\n disclaimer: config.disclaimer && (\r\n \r\n )\r\n };\r\n }\r\n\r\n private _renderInput(\r\n id: string,\r\n type: string,\r\n labelText: string,\r\n maxLength?: string,\r\n pattern?: string,\r\n required?: boolean,\r\n value?: any,\r\n onChange?: any,\r\n cssClassName?: string\r\n ): ISignUpItem {\r\n const className = `${this.moduleClassName}__account-item`;\r\n return {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\r\n },\r\n key: id,\r\n label: (\r\n \r\n ),\r\n errorMessage: (\r\n \r\n ),\r\n input: (\r\n \r\n )\r\n };\r\n }\r\n}\r\n\r\nexport default SignUp;\r\n","/* eslint-disable react/jsx-key */\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\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignUpEmailVerification,\r\n ISignUpGivenNameVerification,\r\n ISignUpItem,\r\n ISignUpLoading,\r\n ISignUpSurnameVerification,\r\n ISignUpViewProps\r\n} from './new-sign-up';\r\n\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\n\r\n// import { SHA256 } from 'crypto-js'; // To manage customdimensions GA from here if it doesn't work in the gtm script\r\n\r\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\r\n return (\r\n <>\r\n {successMessage &&\r\n successMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n \r\n {errorMessage &&\r\n errorMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n \r\n {buttons &&\r\n buttons.map((button: React.ReactNode) => {\r\n return <>{button};\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of sign-up givenName.\r\n * @param event - Content editable event.\r\n * @param event.givenName - Event Given Name.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for Given Name.\r\n */\r\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of signUp surname.\r\n * @param event - Content editable event.\r\n * @param event.surname - Event surname.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for surname.\r\n */\r\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = props => {\r\n const {\r\n localAccount,\r\n items,\r\n emailVerification,\r\n givenNameVerification,\r\n surnameVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer\r\n } = props.signUpLocalAccount;\r\n\r\n const locale = props.locale;\r\n const regionCRM = props.regionCRM;\r\n const EcomSignUpLegalEntity = props.EcomSignUpLegalEntity;\r\n let LastConsentSource: string;\r\n switch (props.LastConsentSource) {\r\n case 'FinanceOperationEU':\r\n LastConsentSource = 'Finance&Operation EU';\r\n break;\r\n case 'FinanceOperationUS':\r\n LastConsentSource = 'Finance&Operation US';\r\n break;\r\n default:\r\n LastConsentSource = 'Finance&Operation EU';\r\n }\r\n\r\n const [birthDate, setBirthDate] = React.useState('');\r\n const [formatDateState, setFormatDateState] = React.useState(true);\r\n const pattern = /^((1[6789]|[2-9][0-9])[0-9]{2}\\/(0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))$|^((1[6789]|[2-9][0-9])[0-9]{2}\\/(0[469]|11)\\/(0[1-9]|[12][0-9]|30))$|^((16|[248][048]|[3579][26])00)|(1[6789]|[2-9][0-9])(0[48]|[13579][26]|[2468][048])\\/02\\/(0[1-9]|1[0-9]|2[0-9])$|^(1[6789]|[2-9][0-9])[0-9]{2}\\/02\\/(0[1-9]|1[0-9]|2[0-8])$/gm;\r\n const patternUS = /^((0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))$|^((0[469]|11)\\/(0[1-9]|[12][0-9]|30))$|^02\\/(0[1-9]|1[0-9]|2[0-9])$/gm;\r\n\r\n const checkDate = (event: React.KeyboardEvent) => {\r\n const value = event.currentTarget.value;\r\n const today = new Date();\r\n if (value !== '' && (!value.match(locale !== 'en-US' ? pattern : patternUS) || today < new Date(value))) {\r\n setFormatDateState(false);\r\n } else {\r\n setFormatDateState(true);\r\n }\r\n if (locale === 'en-US') {\r\n setBirthDate(`1900/${value}`);\r\n }\r\n };\r\n if (typeof window !== 'undefined') {\r\n const signUpButton: HTMLElement = document.getElementById('continue') as HTMLElement;\r\n // console.log(document.getElementById('continue'));\r\n if (signUpButton !== undefined) {\r\n signUpButton.onclick = e => {\r\n if (!formatDateState) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n };\r\n }\r\n }\r\n\r\n const profiling_ref = React.useRef(null);\r\n const handleChange = (e: React.ChangeEvent) => {\r\n if (locale.toLowerCase() === 'en-us') {\r\n const { checked } = e.target;\r\n profiling_ref.current!.checked = checked;\r\n }\r\n };\r\n\r\n // DONE guest state session variable; check that user ID (the one that's NOT an FC) exists alongside the user not being auth (since if not auth = loyalty)\r\n\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignUpItem) => {\r\n switch (item.key) {\r\n case 'email':\r\n if (emailVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n const emailRepErrorText: string = props.resources.emailRepErrorText ?? null;\r\n return (\r\n <>\r\n {\r\n if (typeof window !== 'undefined') {\r\n const email: HTMLInputElement = document.getElementById(\r\n 'email'\r\n ) as HTMLInputElement;\r\n const email_rep: HTMLInputElement = document.getElementById(\r\n 'email_rep'\r\n ) as HTMLInputElement;\r\n const email_rep_error = document.getElementById(\r\n 'text-error'\r\n ) as HTMLParagraphElement;\r\n const email_rep_error_backup = document.getElementById(\r\n 'text-error-backup'\r\n ) as HTMLSpanElement;\r\n\r\n email_rep.pattern = email.value;\r\n // I hope the following works well with Azure\r\n email_rep.title = emailRepErrorText;\r\n\r\n if (email.value === email_rep.value) {\r\n if (email_rep_error !== null) {\r\n email_rep_error.textContent = ' ';\r\n } else {\r\n email_rep_error_backup.textContent = ' ';\r\n }\r\n } else {\r\n if (email_rep_error !== null) {\r\n email_rep_error.textContent = emailRepErrorText;\r\n } else {\r\n email_rep_error_backup.textContent = emailRepErrorText;\r\n }\r\n }\r\n }\r\n }}\r\n />\r\n }\r\n />\r\n
\r\n \r\n {\r\n const email: HTMLInputElement = document.getElementById('email') as HTMLInputElement;\r\n const email_rep: HTMLInputElement = document.getElementById(\r\n 'email_rep'\r\n ) as HTMLInputElement;\r\n const email_rep_error = document.getElementById('text-error') as HTMLParagraphElement;\r\n const email_rep_error_backup = document.getElementById(\r\n 'text-error-backup'\r\n ) as HTMLSpanElement;\r\n\r\n email.pattern = email_rep.value;\r\n\r\n if (email.value === email_rep.value) {\r\n if (email_rep_error !== null) {\r\n email_rep_error.textContent = ' ';\r\n } else {\r\n email_rep_error_backup.textContent = ' ';\r\n }\r\n } else {\r\n if (email_rep_error !== null) {\r\n email_rep_error.textContent = emailRepErrorText;\r\n } else {\r\n email_rep_error_backup.textContent = emailRepErrorText;\r\n }\r\n }\r\n }}\r\n />\r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n case 'givenName':\r\n if (givenNameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n case 'surname':\r\n if (surnameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n case 'extension_Birthday':\r\n return (\r\n <>\r\n
\r\n \r\n {/* TODO Test US elements */}\r\n {locale === 'en-US' ? (\r\n <>\r\n checkDate(e)}\r\n onPaste={e => e.preventDefault()}\r\n />\r\n \r\n \r\n ) : (\r\n <>\r\n {/* // TODO? Validate that it's not in the future, and possibly that it's after at least 18 years */}\r\n e.preventDefault()}\r\n onChange={() => {\r\n if (typeof window !== 'undefined') {\r\n const birthday_proxy: HTMLInputElement = document.getElementById(\r\n 'birthday'\r\n ) as HTMLInputElement;\r\n const birthday_hidden: HTMLInputElement = document.getElementById(\r\n 'extension_Birthday'\r\n ) as HTMLInputElement;\r\n birthday_proxy.onchange = event => {\r\n birthday_hidden.value = birthday_proxy.value;\r\n };\r\n }\r\n }}\r\n />\r\n e.preventDefault()}\r\n style={{ display: 'none' }}\r\n />\r\n \r\n )}\r\n
\r\n {props.config.BirthdayText ? (\r\n \r\n ) : null}\r\n \r\n );\r\n case 'postalCode':\r\n return (\r\n <>\r\n \r\n {props.config.PostalText ? (\r\n \r\n ) : null}\r\n \r\n );\r\n case 'phone_number':\r\n return (\r\n <>\r\n {\r\n if (typeof window !== 'undefined') {\r\n const phone_number_proxy: HTMLInputElement = document.getElementById(\r\n 'phone_number'\r\n ) as HTMLInputElement;\r\n const phone_number_hidden: HTMLInputElement = document.getElementById(\r\n 'extension_PhoneNumber'\r\n ) as HTMLInputElement;\r\n phone_number_proxy.onchange = event => {\r\n phone_number_hidden.value = phone_number_proxy.value;\r\n };\r\n }\r\n }}\r\n />\r\n }\r\n />\r\n \r\n {props.config.PhoneText ? (\r\n \r\n ) : null}\r\n \r\n );\r\n case 'extension_GenericMarketing':\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n case 'extension_Profiling':\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n case 'extension_ThirdParty':\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n );\r\n case 'extension_RegionCRM':\r\n return (\r\n
\r\n \r\n
\r\n );\r\n case 'extension_LastConsentSource':\r\n return (\r\n
\r\n \r\n
\r\n );\r\n case 'extension_EcomSignUpLegalEntity':\r\n return (\r\n
\r\n \r\n
\r\n );\r\n default:\r\n return ;\r\n }\r\n })}\r\n {disclaimer}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(props)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IAccountLoyalty contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum layout {\r\n cardLayout = 'cardLayout',\r\n wideLayout = 'wideLayout',\r\n compact = 'compact'\r\n}\r\n\r\nexport interface IAccountLoyaltyConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout: layout;\r\n displayJoinDate?: boolean;\r\n displayAppleWallet?: boolean;\r\n displayGoogleWallet?: boolean;\r\n appleWalletBtnImage?: Msdyn365.IImageData;\r\n googleWalletBtnImage?: Msdyn365.IImageData;\r\n walletLoyaltyProgramName?: string;\r\n pointsExpirationReminder?: string;\r\n loyaltyTiersLink?: ILoyaltyTiersLinkData;\r\n}\r\n\r\nexport interface IAccountLoyaltyResources {\r\n loyaltyCardLabel: string;\r\n joinDateFormatted: string;\r\n totalAvailablePointsLabel: string;\r\n expiringPointsFormatLabel: string;\r\n expiringPointsFormatAriaLabel: string;\r\n availablePointsLabel: string;\r\n availablePointsAriaLabel: string;\r\n loyaltyActivityDateLabel: string;\r\n loyaltyActivityBalanceLabel: string;\r\n redeemedPointsLabel: string;\r\n refundedPointsLabel: string;\r\n earnedPointsLabel: string;\r\n pendingPointsLabel: string;\r\n adjustedPointsLabel: string;\r\n backToShoppingText: string;\r\n loyaltyTierLabel: string;\r\n loyaltyCardLabel_CL: string;\r\n availablePointsLabel_CL_before: string;\r\n availablePointsLabel_CL_after: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILoyaltyTiersLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAccountLoyaltyProps extends Msdyn365.IModule {\r\n resources: IAccountLoyaltyResources;\r\n config: IAccountLoyaltyConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\n// import { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IAccountLoyaltyProps, layout as layoutNames } from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty/./account-loyalty';\r\nimport { ILoyaltySignUpProps } from '@msdyn365-commerce-modules/account-management/src/modules/loyalty-sign-up';\r\n\r\nimport { Row, Container } from 'reactstrap';\r\nimport classnames from 'classnames';\r\n\r\nconst isWideOrCompactLayout = (layout: layoutNames) => {\r\n return [layoutNames.wideLayout, layoutNames.compact].includes(layout);\r\n}\r\n\r\nconst layoutClassNames = {\r\n [layoutNames.wideLayout]: 'loyalty-wide-layout',\r\n [layoutNames.compact]: 'loyalty-compact-layout'\r\n}\r\nconst getLayoutClassName = (layout: layoutNames) => layoutClassNames[layout] || 'loyalty-wide-layout'\r\n\r\nconst AccountLoyaltyView: React.FC & ILoyaltySignUpProps<{}>> = props => {\r\n const {\r\n AccountLoyalty,\r\n heading,\r\n cardNumber,\r\n joinDate,\r\n points,\r\n } = props;\r\n\r\n const {\r\n layout,\r\n displayJoinDate,\r\n displayAppleWallet,\r\n displayGoogleWallet,\r\n appleWalletBtnImage,\r\n googleWalletBtnImage,\r\n pointsExpirationReminder,\r\n loyaltyTiersLink,\r\n walletLoyaltyProgramName\r\n } = props.config;\r\n\r\n const {\r\n loyaltyTierLabel,\r\n loyaltyCardLabel,\r\n loyaltyCardLabel_CL,\r\n availablePointsLabel,\r\n availablePointsLabel_CL_before,\r\n availablePointsLabel_CL_after,\r\n viewLoyaltyPageText\r\n } = props.resources;\r\n\r\n // @ts-ignore\r\n const firstLoyaltyGroup = props.AccountLoyalty.moduleProps.data.loyaltyCard.result && props.AccountLoyalty.moduleProps.data.loyaltyCard.result.LoyaltyGroups[0];\r\n // @ts-ignore\r\n const highestTierId = firstLoyaltyGroup.HighestActiveLoyaltyCardTier;\r\n // @ts-ignore\r\n const tierDetails = firstLoyaltyGroup.LoyaltyCardTiers.filter(tier => tier.RecordId === highestTierId)[0];\r\n const tierName = tierDetails.TierId;\r\n\r\n const user_email = props.AccountLoyalty.moduleProps.context.request.user.emailAddress;\r\n // @ts-ignore\r\n const user_card_number = cardNumber!.props.text;\r\n \r\n let points_numbers = [-1.1];\r\n \r\n // @ts-ignore\r\n if (points && points.props) {\r\n // @ts-ignore\r\n points_numbers = points.props.text.split('.');\r\n }\r\n\r\n const height_to_set = 48; // Minimum per Google guidelines\r\n\r\n const tierClass = `tier-name__${tierName}`;\r\n\r\n const apple_wallet_check: boolean = displayAppleWallet && appleWalletBtnImage && appleWalletBtnImage.src && appleWalletBtnImage.altText && user_card_number;\r\n const google_wallet_check: boolean = displayGoogleWallet && googleWalletBtnImage && googleWalletBtnImage.src && googleWalletBtnImage.altText && user_card_number;\r\n const programString : string = walletLoyaltyProgramName || \"v-club-emea\";\r\n\r\n if (isWideOrCompactLayout(layout)) {\r\n // Wide or compact layout (Loyalty page and Homepage row)\r\n return (\r\n \r\n {heading}\r\n \r\n \r\n
\r\n

{loyaltyCardLabel}

\r\n {cardNumber}\r\n {(apple_wallet_check || google_wallet_check) && (
\r\n {apple_wallet_check ?\r\n \r\n {appleWalletBtnImage?.altText}\r\n : null}\r\n {google_wallet_check ?\r\n \r\n {googleWalletBtnImage?.altText}\r\n : null}\r\n
)}\r\n {/* @ts-ignore */}\r\n {displayJoinDate && !joinDate?.props.text.endsWith('1900') ? joinDate : null}\r\n
\r\n
\r\n

{availablePointsLabel}

\r\n {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null}\r\n {pointsExpirationReminder ?

{pointsExpirationReminder}

: null}\r\n {viewLoyaltyPageText ?\r\n \r\n {viewLoyaltyPageText}\r\n : null}\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

{tierName}

\r\n {(loyaltyTiersLink && loyaltyTiersLink.linkUrl && loyaltyTiersLink.linkUrl.destinationUrl && loyaltyTiersLink.linkText) ?\r\n \r\n {loyaltyTiersLink.linkText} \r\n : null}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // Card layout (Homepage column)\r\n return (\r\n \r\n {heading}\r\n
\r\n \r\n \r\n
\r\n

{loyaltyCardLabel_CL}

 

{cardNumber}

\r\n
\r\n
\r\n

{loyaltyTierLabel}

 {tierName}

\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n {availablePointsLabel_CL_before} {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null} {availablePointsLabel_CL_after}\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\nimport { Collapse, Drawer, Module, Node, Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\n\r\nconst headerView: React.FC> = props => {\r\n if (typeof window !== 'undefined') {\r\n const [scrolled, setScrolled] = React.useState(false);\r\n const handleScroll = () => {\r\n const offset = window.scrollY;\r\n offset > 5 ? setScrolled(true) : setScrolled(false);\r\n };\r\n scrolled ? document.body.classList.add('headerIsSticky') : document.body.classList.remove('headerIsSticky');\r\n React.useEffect(() => {\r\n window.addEventListener('scroll', handleScroll);\r\n if (props.config.layout2022 === undefined || !props.config.layout2022) {\r\n const menuTopDesktop = document.getElementsByClassName('menu--top desktop')[0];\r\n const desktopMenuTop = document.getElementsByClassName('menu--top_ctn')[0];\r\n if (document.getElementsByClassName('menu--top mobile').length) {\r\n const menuTopMobile = document.getElementsByClassName('menu--top mobile')[0];\r\n const mobileMenu = document.getElementsByClassName('mobile menus')[0];\r\n mobileMenu.appendChild(menuTopMobile);\r\n }\r\n desktopMenuTop.appendChild(menuTopDesktop);\r\n }\r\n }, []);\r\n }\r\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer } = props;\r\n if (props.config.layout2022 === undefined || !props.config.layout2022) {\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {/* @ts-ignore */}\r\n {props?.slots?.countrySelector && props?.slots?.countrySelector}\r\n {_renderAccountBlock(props, false)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {props.navIcon}\r\n {props.logo}\r\n
\r\n
{_renderReactFragment(props.menuBar)}
\r\n
\r\n {props.wishListIconDesktop}\r\n {props.cartIcon}\r\n {_renderReactFragment(props.siteOptions)}\r\n
\r\n
\r\n
\r\n
\r\n {_renderCollapseMenu(props)}\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {props.preferredStore}\r\n {props?.slots?.countrySelector && props?.slots?.countrySelector}\r\n {_renderStoreLocatorButton(props)}\r\n \r\n {props.logo}\r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n {props.cartIcon}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.navIcon}\r\n {props.logo}\r\n \r\n \r\n {/* {_renderReactFragment(props.search)} */}\r\n {_renderStoreLocatorButton(props)}\r\n {props.wishListIconDesktop}\r\n {props.cartIcon}\r\n \r\n \r\n \r\n {_renderCollapseMenu(props)}\r\n {_renderReactFragment(props.menuBar)}\r\n {props?.slots?.header_gwp && props?.slots?.header_gwp}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps & IHeaderProps<{}>): JSX.Element | null {\r\n const { mobileMenuCollapsed, Divider, MobileMenuLinksContainer } = props;\r\n if (typeof window !== 'undefined') {\r\n mobileMenuCollapsed === true ? document.body.classList.remove('no-scroll') : document.body.classList.add('no-scroll');\r\n }\r\n //FIXME invert the condition\r\n if (props.config.layout2022 === undefined || !props.config.layout2022) {\r\n return (\r\n \r\n {_renderReactFragment(props.search)}\r\n \r\n
\r\n
{_renderReactFragment(props.menuBar)}
\r\n {_renderMobileAccountBlock(props, true)}\r\n {/* @ts-ignore */}\r\n {props?.slots?.countrySelector && props?.slots?.countrySelector}\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {/* {_renderMobileAccountBlock(props, true)} */}\r\n \r\n \r\n
{_renderReactFragment(props.menuBar)}
\r\n \r\n {/* //TODO remove */}\r\n {_renderMobileAccountBlock(props, true)}\r\n {/* {props.wishListIconMobile} */}\r\n \r\n {props?.slots?.countrySelector && props?.slots?.countrySelector}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return <>{customer ? customer.FirstName || customer.Name : ''};\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n 'ms-header__drawer',\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\n\r\n\r\n\r\n/////\r\n\r\nfunction _renderStoreLocatorButton(props: IHeaderViewProps & IHeaderProps<{}>): JSX.Element | null {\r\n if (props.config.storeLocatorPageLink == undefined || props.config.storeLocatorPageLink.destinationUrl == undefined || props.config.storeLocatorLabel == undefined) {\r\n return (<>)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {props.config.storeLocatorLabel}\r\n \r\n \r\n );\r\n\r\n\r\n\r\n}\r\n\r\nexport default headerView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\n\r\nimport { INavigationMenuProps } from '../../definition-extensions/navigation-menu.ext.props.autogenerated';\r\n\r\n/**\r\n * Represent navigation menu state interface.\r\n */\r\nexport interface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: Msdyn365.IImageData[] | null;\r\n mobileViewLabelText?: string;\r\n drawerKeyValue: Msdyn365.IDictionary;\r\n //isOnlyMobile: boolean;\r\n //isNavOpen: boolean;\r\n}\r\n\r\n//TODO clean\r\n/* interface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n categoryImageAltText: string;\r\n drawerKeyValue: IDictionary;\r\n mobileViewLabelText?: string;\r\n }\r\n */\r\n\r\n/**\r\n * NavMenuConstants enum.\r\n */\r\nexport enum NavMenuConstants {\r\n zero = 0,\r\n one = 1,\r\n two = 2,\r\n three = 3,\r\n four = 4,\r\n escapeKey = 27,\r\n rootMenu = 1\r\n}\r\n\r\n/**\r\n * GridSizes.\r\n */\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n/**\r\n * Get category image.\r\n * @param props - Navigation menu props.\r\n * @param categoryImage - Category Image.\r\n * @param alttext - AltText String.\r\n * @returns Returns Node.\r\n */\r\nexport const getCategoryImage = (\r\n props: INavigationMenuViewProps & INavigationMenuProps<{}>,\r\n categoryImage: string,\r\n alttext: string\r\n): React.ReactNode | null => {\r\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, props.context.actionContext.requestContext.apiSettings);\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n\r\n // FROM Adventure-works\r\n // xs: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\r\n // sm: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\r\n // md: { q: 'w=203&h=203&m=8', w: 0, h: 0 },\r\n // lg: { q: 'w=203&h=203&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n if (categoryImageUrl !== undefined) {\r\n const imageData: Msdyn365.IImageData = { src: categoryImageUrl };\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { INavigationMenuProps, ICmsNavItemsData } from '../definition-extensions/navigation-menu.ext.props.autogenerated';\r\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Drawer,\r\n ICollapseProps,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick,\r\n IDrawerState\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport MsDyn365, { IImageData } from '@msdyn365-commerce/core';\r\nimport { getCategoryImage, INavigationState, NavMenuConstants } from './components/navigation-menu-utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent, INavigationState> {\r\n private currentLevel: number = 0;\r\n\r\n private readonly _positionInSetOffset: number = 1;\r\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\r\n private readonly menuNode: React.RefObject;\r\n //TODO remove\r\n //private readonly menuItemRef: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n private readonly promotionalImage: IImageData[] = [];\r\n private readonly payLoad: IPayLoad;\r\n\r\n //TODO validate this\r\n //private readonly supportedLevel: number = 2;\r\n private readonly supportedLevel: number = NavMenuConstants.four;\r\n\r\n constructor(props: INavigationMenuViewProps & INavigationMenuProps<{}>) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, drawerKeyValue: {} };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this._layout2022closeSubmenu = this._layout2022closeSubmenu.bind(this);\r\n this._layout2022escFunction = this._layout2022escFunction.bind(this);\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 this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n const { menuItemData } = this.props;\r\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\r\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\r\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\r\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\r\n\r\n // Read category and promotional image in one array\r\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\r\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\r\n const imageSource = item.image.src;\r\n this.promotionalImage.push({\r\n src: imageSource,\r\n altText: item.text,\r\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\r\n });\r\n return null;\r\n });\r\n }\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.isBrowser) {\r\n //FIXME change if\r\n if (this.props.config.layout2022 === undefined || !this.props.config.layout2022) {\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n } else {\r\n document.body && document.addEventListener('keydown', (this._layout2022escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._layout2022handleClickOutside);\r\n }\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.isBrowser) {\r\n //FIXME change if\r\n if (this.props.config.layout2022 === undefined || !this.props.config.layout2022) {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside);\r\n } else {\r\n document.body && document.removeEventListener('keydown', (this._layout2022escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._layout2022handleClickOutside);\r\n }\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n /**\r\n * Method to render mobile menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\r\n //FIXME invert the condition\r\n if (this.props.config.layout2022 === undefined || !this.props.config.layout2022)\r\n return this._renderDrawerMenu(menuItem);\r\n else return this._layout2022renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\r\n })}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render desktop menu.\r\n * @returns Jsx element.\r\n */\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n //FIXME invert condition\r\n if (this.props.config.layout2022 === undefined || !this.props.config.layout2022)\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n else\r\n return (\r\n \r\n \r\n {this._layout2022renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemData): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined): JSX.Element {\r\n return {linkText};\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemData[i].linkText });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(menuItemData);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._renderSpanMenuItem(menuItemData);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n /*if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n return null;\r\n }*/\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n }\r\n\r\n let subMenu;\r\n\r\n if (hasOptions) {\r\n this.currentLevel++;\r\n if (this.currentLevel <= this.supportedLevel - 1) {\r\n levelClassName = `level-${this.currentLevel.toString()}`;\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu);\r\n }\r\n\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Link } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n //const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number): JSX.Element | null {\r\n const { DivContainer, MenuList, showCategoryImage } = this.props;\r\n this.currentLevel = 1;\r\n if (showCategoryImage) {\r\n return (\r\n \r\n \r\n {menuOptions}\r\n \r\n {\r\n //TODO remove\r\n /* \r\n {this.state.categoryImage !== undefined && this.state.categoryImage !== null && this._getCategoryImage(this.state.categoryImage)}\r\n */\r\n }\r\n \r\n );\r\n }\r\n return (\r\n \r\n {menuOptions}\r\n \r\n );\r\n }\r\n //TODO remove\r\n\r\n // private _updateCategoryImage = (categoryImage: string) => () => {\r\n // this.setState({\r\n // categoryImage: categoryImage !== '' ? categoryImage : 'empty'\r\n // });\r\n //}\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n //TODO remove\r\n // if (this.props.showCategoryImage) {\r\n // this._updateCategoryImage(data.imageSource!)();\r\n // }\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n //TODO remove\r\n // private _getCategoryImage = (categoryImage: string): React.ReactNode | null => {\r\n\r\n // const categoryImageUrl = generateImageUrl(`${categoryImage}`, this.props.context.actionContext.requestContext.apiSettings);\r\n // const defaultImageSettings: IImageSettings = {\r\n // viewports: {\r\n // xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n // lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n // },\r\n // lazyload: true\r\n // };\r\n // if (categoryImageUrl !== undefined) {\r\n // const ImageData: IImageData = { src: categoryImageUrl };\r\n // return (\r\n // \r\n // );\r\n // }\r\n // return null;\r\n // }\r\n\r\n /////////////////////////////////////////////////\r\n /////// LAYOUT 2022 ////////////////////////////\r\n ////////////////////////////////////////////////\r\n\r\n /**\r\n * Method to render drawer menu.\r\n * @param menuItem -Menuitem data.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\r\n return this._layout2022renderDrawer(menuItem, setSize, posinset, true);\r\n }\r\n return this._layout2022renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\r\n }\r\n\r\n /**\r\n * Method to render drawer component.\r\n * @param menuItem -Menuitem data.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number, firstLevel?: boolean): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const keyValue = this.state.drawerKeyValue;\r\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\r\n const keys = keyValue !== undefined ? keyValue : {};\r\n const { isMobileView } = this.props;\r\n\r\n let isDrawerOpen = false;\r\n if (keys[buttonText]) {\r\n isDrawerOpen = true;\r\n }\r\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\r\n\r\n\r\n const bottomLinkData: ICmsNavItemsData[] = firstLevel ? this.props.config.cmsNavItems?.filter(navItem => navItem.linkText === buttonText) || [] : [];\r\n const bottomAllLink: IMenuItemData = {\r\n linkText: bottomLinkData[0]?.bottomLinkText || \"\",\r\n linkURL: bottomLinkData[0]?.bottomLinkUrl?.destinationUrl || \"\",\r\n shouldOpenNewTab: false,\r\n }\r\n return (\r\n \r\n
\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\r\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\r\n return this._layout2022renderDrawer(\r\n menuSubItem,\r\n bottomAllLink.linkText === \"\" ? menuItem.subMenu?.length : menuItem.subMenu!.length + 1,\r\n currentPos + this._positionInSetOffset\r\n );\r\n }\r\n return this._layout2022renderDrawerLink(\r\n menuSubItem,\r\n bottomAllLink.linkText === \"\" ? menuItem.subMenu?.length : menuItem.subMenu!.length + 1,\r\n currentPos + this._positionInSetOffset\r\n );\r\n })}\r\n {bottomAllLink.linkText === \"\" ? <> :\r\n this._layout2022renderDrawerLink(\r\n bottomAllLink,\r\n menuItem.subMenu!.length + 1,\r\n menuItem.subMenu!.length + this._positionInSetOffset\r\n )\r\n }\r\n
\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link.\r\n * @param linkText -Text on Menu link.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderLinkText(\r\n linkText: string | undefined,\r\n setSize: number | undefined,\r\n posinset: number | undefined\r\n ): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render drawer link.\r\n * @param item -Single Menuitem.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._layout2022renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._layout2022renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to generate menu.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (const menuItemDatum of menuItemData) {\r\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\r\n menuItem = menuItemDatum;\r\n this.setState({ parentMenu: undefined });\r\n break;\r\n }\r\n menuItem = this._layout2022getFromSubMenu(menuItemDatum) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._layout2022createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._layout2022createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n /**\r\n * Method to get data for submenu.\r\n * @param item -Single Menuitem.\r\n * @returns IMenuItemData.\r\n */\r\n private _layout2022getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({ parentMenu: item?.id });\r\n return subMenus[i];\r\n }\r\n const found = this._layout2022getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to create item list.\r\n * @param menuItemData -Single Menuitem.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022createMenuItemList(menuItemData: IMenuItemData, index?: number, level?: number): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._layout2022renderSubMenu(menuItemData.subMenu, menuItemData.id, undefined, menuItemData.linkText);\r\n }\r\n return (\r\n <>\r\n {this._layout2022renderButtonMenuItem(menuItemData)}\r\n {this._layout2022renderSubMenu(menuItemData.subMenu, menuItemData.id, undefined, menuItemData.linkText, true)}\r\n \r\n );\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._layout2022renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._layout2022renderSpanMenuItem(menuItemData, menuItemData.id, true);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _layout2022renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean, nameParentElement?: string, firstLevel?: boolean): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n const subMenuLevel = 3;\r\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\r\n\r\n // Const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n //this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n //this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n\r\n const bottomLinkData: ICmsNavItemsData[] = nameParentElement ? this.props.config.cmsNavItems?.filter(navItem => navItem.linkText === nameParentElement) || [] : [];\r\n const bottomLinkDataFiltered: ICmsNavItemsData[] = bottomLinkData.filter(navItem => navItem.bottomLinkText != undefined) || [];\r\n const bottomLinkPresent: boolean = firstLevel && bottomLinkDataFiltered.length > 0 || false;\r\n const bottomMenuLink: JSX.Element | null = bottomLinkPresent\r\n ? this._layout2022renderLinkMenuItem({\r\n linkText: bottomLinkData[0]?.bottomLinkText || \"\",\r\n linkURL: bottomLinkData[0]?.bottomLinkUrl?.destinationUrl || \"\",\r\n shouldOpenNewTab: false,\r\n })\r\n : null;\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n\r\n let menuItem: JSX.Element | null;\r\n\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._layout2022renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL\r\n ? this._layout2022renderLinkMenuItem(option, idx)\r\n : this._layout2022renderSpanMenuItem(option);\r\n }\r\n\r\n let subMenu;\r\n\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._layout2022renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n return this._layout2022renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu, bottomLinkPresent, bottomMenuLink);\r\n }\r\n\r\n /**\r\n * Method to render button menu item.\r\n * @param option -Single Menuitem.\r\n * @param activeMenu -Active menu number.\r\n * @param index -Active menu index.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render link menu item.\r\n * @param option -Single Menuitem.\r\n * @param index -Active menu index.\r\n * @param hoverEffect -Active menu effect.\r\n * @param isParent -Is parent menu.\r\n * @param setSize -Setsize data.\r\n * @param posinset -Current position.\r\n * @returns Jsx element.\r\n */\r\n\r\n private sendEventGA(option: IMenuItemData, isMobileView: boolean) {\r\n // console.log(option.linkText);\r\n // let menu_twin = [];\r\n // let found = false;\r\n let paths: string[] = [];\r\n\r\n if (!isMobileView) {\r\n const menu = document.querySelectorAll('ul.ms-nav__list')[3];\r\n Array.from(menu?.children!).forEach(li_1 => {\r\n if (li_1?.childElementCount! > 1) {\r\n const level_1 = li_1.querySelector('button')!.textContent;\r\n const level_2_class = isMobileView ? 'drawer__button' : 'level-2';\r\n if (li_1.getElementsByClassName(level_2_class).length > 0) {\r\n Array.from(li_1?.querySelectorAll('li.ms-nav__list__item.havesubmenu')!).forEach(li_2 => {\r\n const level_2 = li_2.querySelector('span.ms-nav__list__item__span')!.textContent;\r\n Array.from(li_2.querySelectorAll('li.ms-nav__list__item')!).forEach(li_3 => {\r\n const level_3 = li_3.textContent;\r\n const path = `${level_1}_${level_2}_${level_3}`;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n });\r\n });\r\n } else {\r\n Array.from(li_1?.querySelectorAll('li.ms-nav__list__item')!).forEach(li_2 => {\r\n const level_2 = li_2.textContent;\r\n const path = `${level_1}_${level_2}`;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n });\r\n\r\n }\r\n if (li_1.querySelector('div.bottomlink-menu-section')) {\r\n const level_2_bottom = li_1.querySelector('div.bottomlink-menu-section')!.textContent;\r\n const path = `${level_1}_${level_2_bottom}`;\r\n if (!(path in paths) && level_2_bottom !== '') {\r\n paths.push(path);\r\n }\r\n }\r\n } else {\r\n const path = li_1.textContent!;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n }\r\n });\r\n } else {\r\n const menu_nav = document.querySelectorAll('nav.ms-nav.mobile-vp.mobile-view')[1];\r\n Array.from(menu_nav?.children!).forEach(li_1 => {\r\n if (li_1?.childElementCount! > 0) {\r\n const level_1 = li_1.querySelector('button.drawer__button.msc-btn.btn-secondary.btn-block')!.textContent;\r\n if (li_1.getElementsByTagName('button')[0].getAttribute('aria-expanded') === 'true') {\r\n if (li_1.querySelectorAll('button.drawer__button.msc-btn.btn-secondary.btn-block').length > 1) {\r\n Array.from(li_1?.querySelectorAll('div.drawer.ms-nav__drawer')!).forEach(li_2 => {\r\n const level_2 = li_2.querySelector('button.drawer__button.msc-btn.btn-secondary.btn-block')!.textContent;\r\n Array.from(li_2.querySelectorAll('a.ms-nav__list__item__link')!).forEach(li_3 => {\r\n const level_3 = li_3.textContent;\r\n const path = `${level_1}_${level_2}_${level_3}`;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n });\r\n });\r\n const elements = li_1.children[1]!.querySelectorAll('a.ms-nav__list__item__link')!;\r\n const level_2_bottom = elements[elements.length - 1].textContent;\r\n const path = `${level_1}_${level_2_bottom}`;\r\n if (!(path in paths) && level_2_bottom !== '') {\r\n paths.push(path);\r\n }\r\n } else {\r\n Array.from(li_1.querySelectorAll('a.ms-nav__list__item__link')).forEach(li_2 => {\r\n const level_2 = li_2.textContent;\r\n const path = `${level_1}_${level_2}`;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n })\r\n }\r\n }\r\n } else {\r\n const path = li_1.textContent!;\r\n if (!(path in paths)) {\r\n paths.push(path);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const clicked_path = paths.find(path => path.endsWith(option.linkText ?? 'eb4cd3f6'));\r\n if (clicked_path) {\r\n window.dataLayer?.push?.({\r\n 'event': 'gaEvent',\r\n 'eventCategory': 'menu',\r\n 'eventAction': 'click',\r\n 'eventLabel': clicked_path\r\n });\r\n }\r\n }\r\n\r\n private _layout2022renderLinkMenuItem(\r\n option: IMenuItemData,\r\n index?: number,\r\n hoverEffect: boolean = true,\r\n isParent: boolean = false,\r\n setSize?: number,\r\n posinset?: number\r\n ): JSX.Element | null {\r\n const { Link, isMobileView } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n {\r\n this.sendEventGA(option, isMobileView);\r\n onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\r\n }}\r\n >\r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render promotional link.\r\n * @param linkText -Link text.\r\n * @param linkUrl -Link url.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\r\n const { Link } = this.props;\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n if (linkText && linkUrl) {\r\n return (\r\n \r\n {linkText}\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Method to render span menu item.\r\n * @param option -Single Menu Item.\r\n * @param index -Index.\r\n * @param isParent -Is parent menu.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to render menu.\r\n * @param level -Menu level.\r\n * @param menuOptions -Menu lists.\r\n * @param currentItem -Menu current.\r\n * @param submenu -Mneu has submenu or not.\r\n * @returns Jsx element.\r\n */\r\n private _layout2022renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean, bottomLinkAvail?: boolean, bottomLink?: JSX.Element | null): JSX.Element | null {\r\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\r\n const categoryImageDisplay =\r\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\r\n const promotionalContentDisplay =\r\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\r\n const DivContainerClass =\r\n this.currentLevel > NavMenuConstants.two || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = NavMenuConstants.one;\r\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\r\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\r\n\r\n return (\r\n \r\n 2 &&\r\n 'navmenu-multi-level'\r\n )}\r\n >\r\n {menuOptions}\r\n \r\n
\r\n {categoryImageDisplay &&\r\n ArrayExtensions.hasElements(categoryImages) &&\r\n categoryImages.map(item => (\r\n \r\n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\r\n {promotionalContentDisplay &&\r\n this._layout2022renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\r\n \r\n ))}\r\n
\r\n {bottomLinkAvail ?\r\n (<>\r\n
\r\n
\r\n {bottomLink}\r\n
\r\n )\r\n : <> \r\n\r\n }\r\n\r\n \r\n );\r\n }\r\n\r\n /**\r\n * Method to handle dropdwon change.\r\n * @param data -Menuitem data.\r\n * @param parentId -Menu parent.\r\n * @returns Jsx element.\r\n */\r\n private readonly _layout2022handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n if (this.props.showCategoryImage) {\r\n this._layout2022updateCategoryImage(data.imageSource!, data)();\r\n }\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._layout2022resetFocus();\r\n };\r\n\r\n /**\r\n * Method to call when focus lost from menu.\r\n */\r\n private readonly _layout2022resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle click outside of menu.\r\n * @param event -HTML event.\r\n */\r\n private readonly _layout2022handleClickOutside = (event: MouseEvent) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\r\n this.setState({\r\n activeMenu: undefined,\r\n categoryImage: null\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle close submenu event.\r\n */\r\n private _layout2022closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined });\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param event -HTML event.\r\n */\r\n private readonly _layout2022escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n if (!this.props.isMobileView) {\r\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\r\n for (const item of navDrawerList) {\r\n const navDrawerButton = item.firstChild as HTMLButtonElement;\r\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\r\n navDrawerButton.focus();\r\n }\r\n }\r\n }\r\n this._layout2022closeSubmenu();\r\n }\r\n };\r\n\r\n /**\r\n * Method to handle escape key event.\r\n * @param drawerState -HTML event.\r\n */\r\n private readonly _layout2022onDrawerChange = (drawerState: IDrawerState) => {\r\n const { drawerKeyValue } = this.state;\r\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\r\n const newPair = { [drawerText]: drawerState.isOpen };\r\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\r\n };\r\n\r\n /**\r\n * Handle Category image update.\r\n * @param categoryImageSource - Image source.\r\n * @param option - Menu Item data.\r\n * @returns Returns empty.\r\n */\r\n private readonly _layout2022updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\r\n const linkText = option.linkText ? option.linkText : '';\r\n const promotionalImage: IImageData[] = [{ src: categoryImageSource, altText: linkText }];\r\n\r\n // Read category and promotional image in one array\r\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\r\n for (const item of option.promotionalContent) {\r\n const imageSource = item.image.src;\r\n promotionalImage.push({\r\n src: imageSource,\r\n altText: item.text,\r\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\r\n });\r\n }\r\n }\r\n this.setState({\r\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\r\n });\r\n };\r\n\r\n ////////////////////////////////////////\r\n ////////// CLASS///////////////////////\r\n //////////////////////////////////\r\n}\r\nexport default NavigationMenuView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// import { getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\n// import { constructViewportInformationForImage } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n /* averageRating,\r\n filterByDropdown, */\r\n moduleProps,\r\n /* noReviewsMessage, */\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n /* refineReviewsProps, */\r\n reportReviewModal,\r\n /* reviewsListProps, */\r\n reviewCards,\r\n /* reviewCount, */\r\n reviewModal,\r\n /* sortByDropdown, */\r\n state,\r\n userReview\r\n } = props;\r\n\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n // const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName ?? '', 'Recensioni', props.telemetry);\r\n\r\n const _toggleReviewModal = () => {\r\n document.body.style.overflowY = modalOpen ? 'scroll' : 'hidden';\r\n setModalOpen(!modalOpen);\r\n };\r\n\r\n // @ts-ignore\r\n const averageRating = props.data.ratingsSummary.result.averageRating ?? 0;\r\n // @ts-ignore\r\n const buttonLabel = props.resources.product_review_list_button_label ?? '';\r\n // @ts-ignore\r\n const title = props.resources.reviewListLabel ?? '';\r\n\r\n React.useEffect(() => {\r\n const page_summary = document.getElementsByClassName('msc-average-rating-container')[0];\r\n const modal_summary = document.getElementsByClassName('msc-average-rating-container')[1];\r\n if (page_summary && modal_summary) {\r\n modal_summary.innerHTML = page_summary.innerHTML;\r\n }\r\n });\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n /* return {noReviewsMessage}; */\r\n /* return (\r\n \r\n
\r\n
); */\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {averageRating}\r\n {reviewCount} */}\r\n {/* { reviewCards.length === 0 ?\r\n null : \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n } */}\r\n {/* {React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))} */}\r\n {/* \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n */}\r\n
\r\n
e.stopPropagation()}>\r\n
\r\n {title}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n
\r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.name}\r\n {props.date}\r\n {props.rating}\r\n \r\n \r\n \r\n {/* {props.reviewTitle} */}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {/* {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike} */}\r\n {props.edit}\r\n {/* {props.report} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISearchResultModalViewProps } from '@msdyn365-commerce-modules/search-result-container';\r\nimport {\r\n ICategoryHierarchyViewProps,\r\n IRefineMenuViewProps,\r\n ISearchResultContainerViewProps,\r\n ISortByViewProps,\r\n ITitleViewProps,\r\n ISearchResultContainerData\r\n} from '@msdyn365-commerce-modules/search-result-container';\r\n\r\nimport { addPickAndMixListAsInfocodes_CAPAsync } from '../../../actions/DataActionExtension.g';\r\nimport { ISearchResultContainerProps as ISearchResultContainerExtentionProps } from '../definition-extensions/search-result-container.ext.props.autogenerated';\r\nimport Container from 'reactstrap/lib/Container';\r\nimport Row from 'reactstrap/lib/Row';\r\n\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ICartViewProps } from '@msdyn365-commerce-modules/cart';\r\n\r\n\r\nconst SearchResultContainerView: React.FC> = props => {\r\n const {\r\n SearchResultContainer,\r\n products,\r\n pagination,\r\n ProductsContainer,\r\n ProductSectionContainer,\r\n choiceSummary,\r\n // isMobile,\r\n modalToggle,\r\n searchResultModal,\r\n TitleViewProps,\r\n refineMenu,\r\n categoryHierarchy,\r\n sortByOptions,\r\n CategoryNavContainer,\r\n RefineAndProductSectionContainer,\r\n errorMessage,\r\n FeatureSearchContainer,\r\n similarLookProduct,\r\n config,\r\n data\r\n } = props;\r\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\r\n const catPage =\r\n props.context &&\r\n props.context.request &&\r\n props.context.request.urlTokens &&\r\n props.context.request.urlTokens.categories &&\r\n props.context.request.urlTokens.categories[0];\r\n const { categoryH1Title, isSearchPage, displayTitle } = config;\r\n\r\n const refinerStatusCount = (props.data.listPageState.result && props.data.listPageState.result.activeFilters?.length) ? props.data.listPageState.result.activeFilters?.length : null;\r\n\r\n if (catPage === 'pick-mix') {\r\n React.useEffect(() => {\r\n const introCtn = document.getElementsByClassName('category-intro__ctn')[0];\r\n const intro = document.getElementsByClassName('category-intro')[0];\r\n introCtn.appendChild(intro);\r\n }, []);\r\n const localPm = typeof window !== 'undefined' && localStorage.getItem('pm_products');\r\n const localPmProds = localPm && localPm !== null ? localPm : JSON.stringify({});\r\n\r\n const pmProductsList = JSON.parse(localPmProds);\r\n //const cookiePmProducts = cookies.get('pm_products') === undefined ? {} : cookies.get('pm_products');\r\n // @ts-ignore\r\n props.context.pmProducts = pmProductsList;\r\n const [pmProducts, setPmProducts] = React.useState(pmProductsList);\r\n // @ts-ignore\r\n const initialTotalItems: number = Object.values(pmProducts).reduce((t, { Qty }) => Number(t) + Number(Qty), 0);\r\n // @ts-ignore\r\n const totalProducts = Object.values(pmProducts).map(tp => tp.Qty * tp.Price);\r\n const initialTotalPrice: number = Number(totalProducts.reduce((tp, qp) => tp + qp, 0));\r\n const [totalPrice, setTotalPrice] = React.useState(initialTotalPrice);\r\n const [totalItems, setTotalItems] = React.useState(initialTotalItems);\r\n const [pmCartMessage, setPmCartMessage] = React.useState({\r\n status: 'empty',\r\n message: props.resources.productSelectionSpaceText\r\n });\r\n const [openPmCart, setOpenPmCart] = React.useState(false);\r\n\r\n const cookiePMset = () => {\r\n typeof window !== 'undefined' && localStorage.setItem('pm_products', JSON.stringify(pmProducts));\r\n const localPm = localStorage && localStorage.getItem('pm_products');\r\n const localPmProds = localPm && localPm !== null ? localPm : JSON.stringify({});\r\n const pmProductsList = JSON.parse(localPmProds);\r\n setPmProducts(pmProductsList);\r\n };\r\n\r\n\r\n const updatePmCart = () => {\r\n setPmProducts(pmProductsList);\r\n };\r\n\r\n React.useEffect(() => {\r\n const wrapper = document.getElementsByClassName('ms-search-result-container__Products')[0];\r\n // @ts-ignore\r\n const handleButtonClick = event => {\r\n const isButton = event.target.nodeName === 'BUTTON';\r\n if (!isButton) {\r\n return;\r\n }\r\n const timer = setTimeout(() => {\r\n updatePmCart();\r\n }, 100);\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n };\r\n wrapper.addEventListener('click', handleButtonClick);\r\n return () => wrapper.removeEventListener('click', handleButtonClick);\r\n });\r\n\r\n function removeProductFromPmCart(RecordId: number | string): void {\r\n if (typeof RecordId === 'number') {\r\n setPmCartMessage({ status: 'empty', message: props.resources.productSelectionSpaceText });\r\n delete pmProducts[RecordId];\r\n cookiePMset();\r\n } else {\r\n typeof window !== 'undefined' && localStorage.setItem('pm_products', JSON.stringify({}));\r\n setPmCartMessage({ status: 'empty', message: props.resources.productSelectionSpaceText });\r\n setPmProducts({});\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n // @ts-ignore\r\n setTotalItems(Object.values(pmProducts).reduce((t, { Qty }) => Number(t) + Number(Qty), 0));\r\n // @ts-ignore\r\n const totalNewProducts = Object.values(pmProducts).map(tp => tp.Qty * tp.Price);\r\n setTotalPrice(totalNewProducts.reduce((tp, qp) => tp + qp, 0));\r\n }, [pmProducts]);\r\n\r\n const _addToCart = async () => {\r\n const currentCartState = await getCartState(props.context?.actionContext);\r\n const pickAndMixItems = Object.values(pmProducts);\r\n const productsInfo: {\r\n name: string;\r\n id: string;\r\n price: string;\r\n quantity: string;\r\n // dimension12: string;\r\n list: string;\r\n category: string;\r\n }[] = [];\r\n\r\n if (pickAndMixItems.length >= 1) {\r\n pickAndMixItems.forEach(data => {\r\n // @ts-ignore\r\n const dataPrice = parseFloat(data.Price).toFixed(2)\r\n productsInfo.push({\r\n //@ts-ignore\r\n 'name': data.Item,\r\n //@ts-ignore\r\n 'id': data.Description,\r\n 'price': dataPrice,\r\n //@ts-ignore\r\n 'quantity': data.Qty,\r\n //@ts-ignore\r\n // 'dimension12': data.Id,\r\n 'list': 'Pick&Mix',\r\n 'category': 'Pick&Mix'\r\n });\r\n //@ts-ignore\r\n localStorage.setItem(data.Id ?? '', 'Pick&Mix' + ';' + 'Pick&Mix');\r\n })\r\n }\r\n window.dataLayer?.push?.({\r\n 'event': 'addToCart',\r\n 'ecommerce': {\r\n //@ts-ignore\r\n 'currencyCode': window.___initialData___.requestContext.channel.Currency,\r\n 'add': {\r\n 'actionField': {\r\n 'list': 'Pick&mix',\r\n 'action': 'add',\r\n },\r\n 'products': productsInfo\r\n }\r\n }\r\n });\r\n pickAndMixItems.forEach(v => {\r\n // @ts-ignore\r\n delete v.PrimaryImageUrl;\r\n });\r\n //finally\r\n addPickAndMixListAsInfocodes_CAPAsync(\r\n { callerContext: props.context?.actionContext },\r\n JSON.stringify(pickAndMixItems),\r\n currentCartState.cart\r\n ).then(async res => {\r\n await currentCartState.refreshCart({});\r\n });\r\n\r\n removeProductFromPmCart('reset');\r\n setPmCartMessage({ status: 'success', message: props.resources.pmSuccessAddedToCartMessage });\r\n setTimeout(() => {\r\n setPmCartMessage({ status: 'empty', message: props.resources.productSelectionSpaceText });\r\n }, 4000);\r\n };\r\n // @ts-ignore\r\n const AddToCartButtons = ({ total }) => {\r\n if (total === 0) {\r\n return (\r\n <>\r\n \r\n {/* tslint:disable-next-line:jsx-no-lambda react-this-binding-issue */}\r\n\r\n
{pmCartMessage.message}
\r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {/* tslint:disable-next-line:jsx-no-lambda react-this-binding-issue */}\r\n \r\n \r\n );\r\n };\r\n\r\n function mobileTriggerPmCart(): void {\r\n // tslint:disable-next-line:no-shadowed-variable\r\n setOpenPmCart(openPmCart => !openPmCart);\r\n openPmCart === true ? document.body.classList.remove('no-scroll-pick-mix') : document.body.classList.add('no-scroll-pick-mix');\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n {products}\r\n
\r\n
\r\n
\r\n

{props.resources.pickAndMixCartTitle}

\r\n \r\n <>\r\n
\r\n
\r\n
\r\n \r\n {totalItems}\r\n
\r\n
\r\n {props?.context.cultureFormatter.formatCurrency(totalPrice)}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {Object.keys(pmProducts).map((keyName, i) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{pmProducts[keyName]?.Item}
\r\n
Quantity: {pmProducts[keyName]?.Qty}
\r\n
\r\n {props?.context.cultureFormatter.formatCurrency(pmProducts[keyName]?.Price)}\r\n
\r\n
\r\n {pmProducts[keyName]?.Id}\r\n {pmProducts[keyName]?.Description}\r\n
\r\n
\r\n {/* tslint:disable-next-line:jsx-no-lambda */}\r\n removeProductFromPmCart(Number(keyName))}\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 // if (isMobile) {\r\n // return (\r\n // \r\n // {renderCategoryHierarchy(categoryHierarchy)}\r\n // {renderTitle(TitleViewProps)}\r\n // {choiceSummary}\r\n // {modalToggle}\r\n // {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\r\n // {similarLookProduct}\r\n // \r\n // {errorMessage}\r\n // {products}\r\n // \r\n // {pagination}\r\n // \r\n // );\r\n // }\r\n // return (\r\n // \r\n // \r\n // {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n // {TitleViewProps && renderTitleCount(TitleViewProps)}\r\n // \r\n // \r\n // {refineMenu && renderRefiner(refineMenu)}\r\n // \r\n // {TitleViewProps && renderTitle(TitleViewProps)}\r\n // {choiceSummary}\r\n // {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\r\n // {similarLookProduct}\r\n // \r\n // {errorMessage}\r\n // {products}\r\n // \r\n // {pagination}\r\n // \r\n // \r\n // \r\n // );\r\n\r\n React.useEffect(() => {\r\n let search_qParam = 'fallback_empty_search';\r\n if (props.context.request.query && props.context.request.query.q) {\r\n search_qParam = props.context.request.query.q;\r\n // Saving the user's expectations -- What were they actually searching for?\r\n }\r\n\r\n // @ts-ignore\r\n if (products && products.props.products.length === 0) {\r\n if (window.dataLayer) {\r\n window.dataLayer?.push?.({\r\n event: 'gaEvent',\r\n eventCategory: 'site_search',\r\n eventAction: 'unexpected_behaviour',\r\n eventLabel: search_qParam\r\n });\r\n }\r\n }\r\n }, []); // Empty dependency list = this only gets executed once\r\n /*\r\n Bing:\r\n\r\n The useEffect hook in React is designed to run after every render of the component.\r\n However, if you pass an empty array [] as the second argument to useEffect, it will only run once after the initial render,\r\n similar to the componentDidMount lifecycle method in class components.\r\n This is because the second argument to useEffect is an array of dependencies, and the effect will only re-run if one of the dependencies changes.\r\n By passing an empty array, you are telling React that the effect has no dependencies and should not re-run after the initial render2.\r\n */\r\n\r\n return (\r\n <>\r\n {/* TODO invert conditions */}\r\n {(displayTitle || false) && categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy, data, config.categoryH1Title)}}\r\n {/* TODO change categorytitle */}\r\n {TitleViewProps && renderTitle(TitleViewProps, displayTitle || false, isSearchPage || false, categoryH1Title)}\r\n\r\n \r\n \r\n
\r\n {modalToggle}\r\n {refinerStatusCount ? (
{refinerStatusCount}
) : null}\r\n
\r\n
{TitleViewProps.title.titleCount}
\r\n
\r\n
\r\n \r\n {createSearchResultModal(searchResultModal, refineMenu, choiceSummary, sortByOptions, isRecoSearchPage)}\r\n \r\n
\r\n {refineMenu && renderRefiner(refineMenu)}\r\n
\r\n \r\n \r\n {TitleViewProps.title.titleCount}\r\n
{sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}
\r\n
\r\n
{choiceSummary}
\r\n {similarLookProduct}\r\n \r\n {errorMessage}\r\n {products}\r\n {pagination}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\nconst createSearchResultModal = (\r\n modalProps: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n choiceSummary_element: React.ReactNode,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string\r\n): JSX.Element => {\r\n return React.cloneElement(\r\n modalProps.modal,\r\n {},\r\n modalProps.modalHeader,\r\n createModalBody(modalProps, refineMenu, choiceSummary_element, sortByDropDown, isRecoSearchPage),\r\n modalProps.modalFooter\r\n );\r\n};\r\n\r\nconst createModalBody = (\r\n props: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n choiceSummary_element: React.ReactNode,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string,\r\n): JSX.Element | null => {\r\n if (sortByDropDown) {\r\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), choiceSummary_element, renderRefiner(refineMenu));\r\n }\r\n return null;\r\n};\r\n\r\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\r\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n if (refiners) {\r\n return (\r\n \r\n \r\n {refiners.map((submenu, index) => (\r\n {submenu}\r\n ))}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\r\n const { SortingContainer, sortByDropDown } = props;\r\n if (sortByDropDown && !isRecoSearchPage) {\r\n return {sortByDropDown};\r\n }\r\n return null;\r\n};\r\n\r\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps, dataObj: ISearchResultContainerData, titleOvverride?: string): JSX.Element | null => {\r\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\r\n const currentCategory = dataObj.categoryHierarchy.result;\r\n if (categoryHierarchyList && categoryHierarchyList.length > 1) {\r\n return (\r\n \r\n {categoryHierarchyList.map((category, index) => (\r\n \r\n {!categoryHierarchyList[index + 1] && titleOvverride ?\r\n (\r\n {' '}\r\n {titleOvverride || \"\"}{' '}\r\n ) : category\r\n }\r\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst renderTitle = (props: ITitleViewProps, displayTitle: boolean, renderPrefix: boolean, titleOvverride?: string): JSX.Element | null => {\r\n const { title, TitleContainer } = props;\r\n if (title && displayTitle) {\r\n return (\r\n \r\n

\r\n {renderPrefix ? title.titlePrefix : null}\r\n {titleOvverride ? titleOvverride : title.titleText}\r\n

\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\n\r\nexport default SearchResultContainerView;","/*!\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\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 { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \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 React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\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\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\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\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\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};\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 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-order-templates-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","/*!\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\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 {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\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 { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n
\n );\n }\n}\n\nexport default CatalogPicker;\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 { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\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._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\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 { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\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 (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n"],"names":["_ref","id","className","text","ariaLabel","disabled","onClick","React","Button","type","message","errorClassName","classnames","role","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","value","pattern","required","onChange","name","undefined","forId","htmlFor","successClassName","SignUp","constructor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","target","handleParagraphChange","disclaimer","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","resources","map","obj","ID","toLowerCase","isEmailVerificationRequried","templateVersion","emailRegex","PAT","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","errorMessages","required_field","requiredFieldMissingError","Object","assign","getValue","v1Value","v2Value","EmailRegex","defaultRegex","source","PasswordRegex","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","render","_this$props","_this$props$config$re","locale","context","request","regionCRM","regionLanguageMapping","find","regionMapping","pageLanguage","LastConsentSource","Source","EcomSignUpLegalEntity","viewProps","_objectSpread","viewState","isShowLoading","signUp","moduleProps","loading","modal","tag","Modal","isOpen","modalBody","ModalBody","icon","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","aadConainer","Msdyn365","editProps","onEdit","requestContext","signUpLocalAccount","_renderLocalAccount","renderView","localAccount","items","_renderInput","emailAddressLabelText","passwordLabelText","confirmPasswordLabelText","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","addressZipCodeLabelOptional","birthdayLabelText","phoneLabelText","emailVerification","isRequired","email","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","buttons","SignUpButtonComponent","key","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","errorMessage","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","givenNameVerification","givenName","requiredFieldMissingSummaryError","surnameVerification","surname","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","passwordEntryMismatchError","fieldIncorrectError","labelText","cssClassName","wrapper","label","SignUpLabelComponent","input","SignUpInputComponent","__decorate","observable","observer","SignUpItem","Node","SignUpEmailVerification","_ref2","button","SignUpGivenNameVerificationComponent","_ref3","SignUpSurnameVerificationComponent","_ref4","LocalAccount","birthDate","setBirthDate","formatDateState","setFormatDateState","patternUS","signUpButton","document","getElementById","onclick","e","preventDefault","stopPropagation","profiling_ref","handleChange","checked","current","item","_props$resources","_props$resources2","_props$resources3","_props$resources4","_props$resources5","_props$resources6","_props$resources$emai","emailRepErrorText","email_rep","email_rep_error","email_rep_error_backup","title","textContent","emailRepeatLabelText","color","endsWith","onKeyUp","currentTarget","today","Date","match","checkDate","onPaste","birthday_proxy","birthday_hidden","onchange","BirthdayText","PostalText","phone_number_proxy","phone_number_hidden","PhoneText","hideMarketing","defaultChecked","preflagMarketing","htmlGenericMarketing","privacyPolicyURL","dangerouslySetInnerHTML","__html","format","USmarketingText","hideProfiling","preflagProfiling","ref","htmlProfiling","hideThirdParty","preflagThirdParty","htmlThirdParty","error","index","SignUpLoading","_ref5","Module","layout","HeadingTag","layoutClassNames","layoutNames","wideLayout","compact","getLayoutClassName","AccountLoyalty","cardNumber","joinDate","points","displayJoinDate","displayAppleWallet","displayGoogleWallet","appleWalletBtnImage","googleWalletBtnImage","pointsExpirationReminder","loyaltyTiersLink","walletLoyaltyProgramName","loyaltyTierLabel","loyaltyCardLabel","loyaltyCardLabel_CL","availablePointsLabel","availablePointsLabel_CL_before","availablePointsLabel_CL_after","viewLoyaltyPageText","firstLoyaltyGroup","loyaltyCard","result","LoyaltyGroups","highestTierId","HighestActiveLoyaltyCardTier","tierName","LoyaltyCardTiers","filter","tier","RecordId","TierId","user_email","user","emailAddress","user_card_number","points_numbers","split","tierClass","apple_wallet_check","src","altText","google_wallet_check","programString","includes","isWideOrCompactLayout","Container","Row","href","alt","height","linkUrl","destinationUrl","linkText","_renderCollapseMenu","mobileMenuCollapsed","Divider","MobileMenuLinksContainer","_props$slots9","_props$slots10","_props$slots7","_props$slots8","body","classList","remove","add","layout2022","Collapse","_renderReactFragment","search","menuBar","_renderMobileAccountBlock","slots","countrySelector","renderCustomerName","accountInformation","customer","FirstName","Name","renderForMobile","AccountInfoDropdownParentContainer","signOutLink","signInLink","accountLinks","accountClassName","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","link","_renderAccountBlock","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","length","slot","_renderStoreLocatorButton","_props$config$storeLo","storeLocatorPageLink","storeLocatorLabel","scrolled","setScrolled","handleScroll","offset","scrollY","addEventListener","menuTopDesktop","getElementsByClassName","desktopMenuTop","menuTopMobile","appendChild","HeaderTag","HeaderContainer","HeaderTopBarContainer","_props$slots3","_props$slots4","_props$slots5","_props$slots6","_props$slots","_props$slots2","preferredStore","logo","wishListIconDesktop","cartIcon","navIcon","header_gwp","siteOptions","NavMenuConstants","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","promotionalImage","supportedLevel","four","_handleDropdownToggle","parentId","isMobileView","setState","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","menuNode","focus","_handleClickOutside","contains","_escFunction","keyCode","_closeSubmenu","_layout2022handleDropdownToggle","showCategoryImage","_layout2022updateCategoryImage","imageSource","_layout2022resetFocus","_layout2022handleClickOutside","categoryImage","_layout2022escFunction","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_layout2022closeSubmenu","_layout2022onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","categoryImageSource","option","ArrayExtensions","hasElements","promotionalContent","image","push","additionalProperties","bind","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","menuItemData","subMenu","imagesource","MsDyn365","isBrowser","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","Navigation","menuItem","posinset","_layout2022renderDrawerMenu","_renderDrawerMenu","MenuList","tabIndex","_layout2022renderDisplay","_renderDisplay","_renderDrawer","_renderLinkMenuItem","_renderLinkText","menuSubItem","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","i","_getFromSubMenu","_createMenuItemList","forEach","subMenus","found","_renderSubMenu","_renderButtonMenuItem","levelClassName","menuOptions","idx","hasOptions","toString","_renderMenu","onFocus","Link","contentAction","etext","attributes","getTelemetryAttributes","onTelemetryClick","Span","level","currentItem","DivContainer","setSize","_layout2022renderDrawer","_layout2022renderLinkMenuItem","firstLevel","_this$props$config$cm","_bottomLinkData$","_bottomLinkData$2","keyValue","keys","isDrawerOpen","colProps","bottomLinkData","cmsNavItems","navItem","bottomAllLink","bottomLinkText","bottomLinkUrl","shouldOpenNewTab","toggleButtonProps","onToggle","collapseProps","_layout2022renderLinkText","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_layout2022renderDrawerLink","_layout2022renderSpanMenuItem","menuItemDatum","_layout2022getFromSubMenu","_layout2022createMenuItemList","_layout2022renderSubMenu","_layout2022renderButtonMenuItem","IsSubMenu","nameParentElement","_this$props$config$cm2","_bottomLinkData$3","_bottomLinkData$4","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","bottomLinkDataFiltered","bottomLinkPresent","bottomMenuLink","haveSubmenu","Math","round","_layout2022renderMenu","sendEventGA","paths","menu_nav","querySelectorAll","children","li_1","childElementCount","level_1","querySelector","getElementsByTagName","li_2","level_2","li_3","level_3","path","elements","level_2_bottom","menu","level_2_class","clicked_path","_option$linkText","_window$dataLayer","_window$dataLayer$pus","dataLayer","call","isParent","arguments","_layout2022renderPromotionalLink","submenu","bottomLinkAvail","bottomLink","_this$state$categoryI","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","two","one","categoryImages","StringExtensions","isNullOrWhitespace","imagesContainerKey","join","_item$src","_item$additionalPrope","getCategoryImage","alttext","categoryImageUrl","generateImageUrl","actionContext","apiSettings","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","_props$config$categor","imageData","gridSettings","imageSettings","categoryImageSettings","loadFailureBehavior","buildReviewCard","cardProps","headerProps","date","rating","cardBodyProps","reviewProps","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","edit","createReviewModal","modalHeader","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_props$data$ratingsSu","_props$resources$prod","_props$resources$revi","noReviewsWithFilterMessage","pageControls","reportReviewModal","reviewCards","reviewModal","userReview","modalOpen","setModalOpen","_toggleReviewModal","overflowY","buttonLabel","ratingsSummary","averageRating","product_review_list_button_label","reviewListLabel","page_summary","modal_summary","innerHTML","isFilterApplied","review","createSearchResultModal","modalProps","refineMenu","choiceSummary_element","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","dataObj","titleOvverride","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","currentCategory","categoryHierarchy","category","_currentCategory$inde","Url","renderTitle","displayTitle","renderPrefix","TitleContainer","titlePrefix","titleText","_props$context$action","_props$data$listPageS","_props$data$listPageS2","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","modalToggle","searchResultModal","TitleViewProps","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","catPage","urlTokens","categories","categoryH1Title","isSearchPage","refinerStatusCount","listPageState","activeFilters","introCtn","intro","localPm","localStorage","getItem","localPmProds","JSON","stringify","pmProductsList","parse","pmProducts","setPmProducts","initialTotalItems","values","reduce","t","Qty","totalProducts","tp","Price","initialTotalPrice","qp","totalPrice","setTotalPrice","totalItems","setTotalItems","pmCartMessage","setPmCartMessage","status","productSelectionSpaceText","openPmCart","setOpenPmCart","cookiePMset","setItem","updatePmCart","removeProductFromPmCart","handleButtonClick","nodeName","timer","clearTimeout","totalNewProducts","_addToCart","async","_props$context","_props$context2","currentCartState","getCartState","pickAndMixItems","productsInfo","_data$Id","dataPrice","parseFloat","toFixed","Item","Description","Id","___initialData___","channel","Currency","v","PrimaryImageUrl","addPickAndMixListAsInfocodes_CAPAsync","callerContext","cart","then","refreshCart","pmSuccessAddedToCartMessage","AddToCartButtons","total","addToCartButtonText","removeAllButtonText","pickAndMixCartTitle","cultureFormatter","formatCurrency","keyName","_pmProducts$keyName","_pmProducts$keyName2","_pmProducts$keyName3","_pmProducts$keyName4","_pmProducts$keyName5","search_qParam","_window$dataLayer2","_window$dataLayer2$pu","eventCategory","eventAction","eventLabel","fluid","titleCount","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","aadGeneric","aadAPIConainer","AccountOrderTemplatesTileDescription","description","AccountOrderTemplatesTileLinks","links","onTextChange","editableLinks","_mapEditableLinks","linkdata","editableLink","openInNewTab","AccountOrderTemplatesTile","handleLinkTextChange","linkIndex","params","isEditor","isChannelTypeB2B","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","Text","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","getUrlSync","fullUrl","URL","location","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","String","firstOrDefault","Images","Image","Uri","galleryImageSettings","AltText","CatalogPickerViewFunctionComponent","SitePicker","_cookieName","_cookieExpirationInSeconds","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_updateViewport","viewport","device","Type","isMobile","_document","_document2","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","cookies","isConsentGiven","cookieConfig","maxAge","xl","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","shouldSkipToMainImage","_getViewport","innerWidth","computed","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement"],"sourceRoot":""}