{"version":3,"file":"static/js/19.5683e3e4e293cc9239ff.chunk.js","mappings":"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,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ7nC,GAAI,MACJ8nC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,8JCtPR,MAEajhB,EAA0BA,CAACkhB,EAA+BC,KACnE,MAEMC,EAAqBA,KACvB,MAAMC,EAHiBH,CAAAA,GAAkCA,EAAc55B,IAHpD,YAMIg6B,CAAkBJ,GAAe9xC,MAExD,OADuBiyC,EAAiBA,EAAeE,MAAM,KAAKrxC,KAAIilB,GAAWA,EAAQqsB,SAAU,IAC7EC,OAAON,IAIjC,MAAO,CACHC,mBAAAA,EACArhB,iBAHsB2hB,GAAiCN,IAAqBj3B,SAASu3B","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion/accordion.tsx?78b1","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-autosuggest.ts?d373","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/actions/get-state-provinces.ts?4008","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-common.ts?f4cc","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-format.data.ts?1ce5","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-module.data.ts?c633","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-format.ts?b9ef","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/address-meta-data.ts?e0f3","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-alert.tsx?99d1","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-button.tsx?55d4","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-checkbox.tsx?0721","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-dropdown.tsx?6e8b","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-error-message.tsx?a335","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-error-title.tsx?227d","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-input.tsx?713c","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-label.tsx?597f","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-add.tsx?eb99","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-detail-item.tsx?6cc8","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-show.tsx?8659","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/common/components/address-select.tsx?bbe0","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/custom-checkout-shipping-address.tsx?35a0","webpack://venchi-ecommerce-msdyn365/./src/modules/custom-checkout-shipping-address/custom-checkout-shipping-address.view.tsx?774b","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/content-block.view.tsx?0a66","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/definition-extensions/video-player.ext.props.autogenerated.ts?fe23","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/video-player.view.tsx?a1ba","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://venchi-ecommerce-msdyn365/./src/modules/checkout-customer-account-payment/checkout-customer-account-payment.view.tsx?79c6","webpack://venchi-ecommerce-msdyn365/./src/checkout-errors/checkout-errors.ts?a9e0","webpack://venchi-ecommerce-msdyn365/../../src/checkout-state-data-action.ts?8344","webpack://venchi-ecommerce-msdyn365/../../src/checkout-state.ts?acd8","webpack://venchi-ecommerce-msdyn365/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://venchi-ecommerce-msdyn365/../../../src/module-state-manager/module-state.ts?7579","webpack://venchi-ecommerce-msdyn365/../../src/checkout-utilities.data.ts?b2cc","webpack://venchi-ecommerce-msdyn365/./src/common/error.tsx?096f","webpack://venchi-ecommerce-msdyn365/./src/common/waiting.tsx?8095","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/convert_a2_a3.ts?c0bb","webpack://venchi-ecommerce-msdyn365/./src/services/featureToggleService.ts?d980"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","// tslint:disable:no-reference\r\n\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport { ITelemetry } from '@msdyn365-commerce/core';\r\n/**\r\n *\r\n * Auto Suggest\r\n */\r\nexport class AutoSuggest {\r\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\r\n private telemetry: ITelemetry;\r\n private countryCode?: string;\r\n private bingMapsApiKey?: string;\r\n private defaultLanguageId?: string;\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n private autoSuggestOptions: IAutoSuggestOptions;\r\n\r\n constructor(\r\n telemetry: ITelemetry,\r\n autoSuggestOptions: IAutoSuggestOptions,\r\n BingMapsApiKey?: string,\r\n countryCode?: string,\r\n defaultLanguageId?: string\r\n ) {\r\n this.telemetry = telemetry;\r\n this.autoSuggestOptions = autoSuggestOptions;\r\n this.bingMapsApiKey = BingMapsApiKey;\r\n this.countryCode = countryCode;\r\n this.defaultLanguageId = defaultLanguageId;\r\n }\r\n\r\n public attachAutoSuggest = (\r\n inputId: string,\r\n containerId: string,\r\n selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void\r\n ): void => {\r\n if (!this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = {\r\n ...this.autoSuggestOptions,\r\n countryCode: this.countryCode\r\n };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\r\n document.querySelector(inputId)?.setAttribute('role', 'combobox');\r\n setTimeout(() => {\r\n document.querySelector(inputId)?.setAttribute('type', 'text');\r\n }, 0);\r\n },\r\n errorCallback: () => {\r\n if (this.telemetry) {\r\n this.telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: this.bingMapsApiKey\r\n });\r\n }\r\n };\r\n\r\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\r\n if (this.autoSuggestManager) {\r\n this.autoSuggestOptions.countryCode = countryCode;\r\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\r\n }\r\n };\r\n\r\n public disposeAutoSuggest = (): void => {\r\n this.autoSuggestManager?.detachAutosuggest();\r\n this.autoSuggestManager?.dispose();\r\n this.autoSuggestManager = undefined;\r\n };\r\n\r\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\r\n await storeSelectorStateManager.loadMapApi({\r\n key: this.bingMapsApiKey,\r\n lang: this.countryCode,\r\n market: this.defaultLanguageId\r\n });\r\n };\r\n}\r\n","import { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICommerceApiSettings\r\n} from '@msdyn365-commerce/core';\r\nimport { getStateProvincesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * Input class for get state provinces data action\r\n */\r\nexport class GetStateProvincesInput implements IActionInput {\r\n public countryRegionId: string;\r\n private apiSettings: ICommerceApiSettings;\r\n\r\n constructor(countryRegionId: string, apiSettings: ICommerceApiSettings) {\r\n this.countryRegionId = countryRegionId;\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey(`StateProvinceInfo-${this.countryRegionId}`, this.apiSettings);\r\n public getCacheObjectType = () => 'StateProvinceInfo';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nexport async function getStateProvinceAction(input: GetStateProvincesInput, ctx: IActionContext): Promise {\r\n return getStateProvincesAsync({ callerContext: ctx, queryResultSettings: {} }, input.countryRegionId);\r\n}\r\n\r\nexport default createObservableDataAction({\r\n action: >getStateProvinceAction\r\n});\r\n","import { addAddress, AddressManagementInput, updateAddress, updatePrimaryAddress } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\r\nimport { Address, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { getStateProvinceAction, GetStateProvincesInput } from './../actions/get-state-provinces';\r\nimport { IAddressResource, IAddressResponse } from './address-module.data';\r\n\r\n/**\r\n *\r\n * Address common\r\n */\r\nexport class AddressCommon {\r\n private context: ICoreContext;\r\n private resources: IAddressResource;\r\n private telemetry: ITelemetry;\r\n\r\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\r\n this.context = context;\r\n this.resources = resources;\r\n this.telemetry = telemetry;\r\n }\r\n\r\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\r\n const marketISOCode = market || 'US';\r\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\r\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\r\n };\r\n\r\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\r\n return {\r\n errorTitle: resources.addressErrorMessageTitle,\r\n errorMessage: resources.addressGenericErrorMessage\r\n };\r\n };\r\n\r\n public isAuthenticatedFlow = (): boolean => {\r\n return this.context.request.user.isAuthenticated;\r\n };\r\n\r\n public getStateProvinces = async (countryRegionId: string): Promise => {\r\n let response: StateProvinceInfo[] = [];\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\r\n response = await getStateProvinceAction(input, this.context.actionContext);\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to get state provinces');\r\n }\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n\r\n // For any address, check for common requried field else treat it as invalid\\empty address.\r\n public isEmpty = (address: Address): boolean => {\r\n if (address && address.ThreeLetterISORegionName && address.City) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private submitCustomerAddress = (addressAction: IObservableAction, address: Address): Promise => {\r\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\r\n\r\n const input = new AddressManagementInput(address);\r\n return this.execAddressAction(addressAction, input, address);\r\n };\r\n\r\n private execAddressAction = async (\r\n addressAction: IObservableAction,\r\n input: IActionInput | IActionInput[],\r\n address: Address\r\n ): Promise => {\r\n let response: IAddressResponse = {};\r\n\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const addresses = await addressAction(input, this.context.actionContext);\r\n if (addresses.length > 0) {\r\n const currentAddress = addresses.find(\r\n newAddress =>\r\n newAddress.Name === address.Name &&\r\n newAddress.AddressTypeValue === address.AddressTypeValue &&\r\n newAddress.City === address.City &&\r\n newAddress.Phone === address.Phone &&\r\n newAddress.State === address.State &&\r\n newAddress.Street === address.Street &&\r\n newAddress.ThreeLetterISORegionName === address.ThreeLetterISORegionName &&\r\n newAddress.ZipCode === address.ZipCode\r\n );\r\n response.address = address.RecordId ? address : currentAddress ? currentAddress : addresses[addresses.length - 1];\r\n } else {\r\n response.address = address;\r\n }\r\n response.customerAddresses = addresses;\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to exec address action');\r\n }\r\n response = this.parseRetailException(this.resources);\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n}\r\n","export enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox'\r\n}\r\n\r\nexport enum AddressValidationRuleType {\r\n Required = 'Required',\r\n Format = 'Format'\r\n}\r\n\r\nexport enum AddressItemType {\r\n Name = 1001,\r\n Phone = 1002,\r\n IsPrimary = 1003,\r\n AddressTypeValue = 1004,\r\n ZipCode = 1,\r\n City = 2,\r\n County = 3,\r\n State = 4,\r\n ThreeLetterISORegionName = 5,\r\n Street = 6,\r\n District = 7,\r\n StreetNumber = 8,\r\n BuildingCompliment = 9,\r\n Postbox = 10,\r\n House_RU = 21,\r\n Flat_RU = 22,\r\n CountryOKSMCode_RU = 23\r\n}\r\n\r\nexport interface IAddressItem {\r\n name: string;\r\n type: AddressItemType;\r\n label: string;\r\n maxLength: number;\r\n displayType: AddressItemDisplayType;\r\n validationRules?: IAddressValidationRule[];\r\n isNewLine: boolean;\r\n}\r\n\r\nexport interface IAddressValidationRule {\r\n type: AddressValidationRuleType;\r\n regEx: string;\r\n message: string;\r\n}\r\n\r\nexport interface IAddressDropdownsData {\r\n [index: string]: { key?: string | number; value?: string }[];\r\n}\r\n","import { Heading } from '@msdyn365-commerce-modules/data-types';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport enum AddressOperation {\r\n Add = 'Add',\r\n Show = 'Show',\r\n Update = 'Update',\r\n List = 'List'\r\n}\r\n\r\nexport enum AddressType {\r\n Shipping = 'Shipping',\r\n Billing = 'Billing',\r\n Company = 'Company'\r\n}\r\n\r\nexport interface IDropdownDisplayData {\r\n [index: string]: { key?: string; value?: string }[];\r\n}\r\n\r\nexport interface IAddressResponse {\r\n errorTitle?: string;\r\n errorMessage?: string;\r\n customerAddresses?: Address[];\r\n address?: Address;\r\n}\r\n\r\nexport interface IAddressConfig {\r\n heading?: Heading;\r\n primaryAddressSectionHeading?: Heading;\r\n otherAddressSectionHeading?: Heading;\r\n addAddressHeading?: Heading;\r\n editAddressHeading?: Heading;\r\n}\r\n\r\nexport interface IAddressResource {\r\n addressAddButtonText: string;\r\n addressAddButtonAriaLabel: string;\r\n addressPrimaryButtonText: string;\r\n addressPrimaryButtonAriaLabel: string;\r\n addressEditButtonText: string;\r\n addressEditButtonAriaLabel: string;\r\n addressRemoveButtonText: string;\r\n addressRemoveButtonAriaLabel: string;\r\n addressSaveButtonText: string;\r\n addressSaveButtonAriaLabel: string;\r\n addressCancelButtonText: string;\r\n addressCancelButtonAriaLabel: string;\r\n addressStateDefaultSelectionText: string;\r\n addressNameLabel: string;\r\n addressNameLabelOptional?: string;\r\n addressNameRequiredErrorMessage: string;\r\n addressPhoneLabel: string;\r\n addressPhoneLabelOptional?: string;\r\n addressPhoneRequiredErrorMessage: string;\r\n addressZipCodeLabel: string;\r\n addressZipCodeLabelOptional?: string;\r\n addressZipCodeRequiredErrorMessage: string;\r\n addressCityLabel: string;\r\n addressCityLabelOptional?: string;\r\n addressCityRequiredErrorMessage: string;\r\n addressCountyLabel: string;\r\n addressCountyLabelOptional?: string;\r\n addressCountyRequiredErrorMessage: string;\r\n addressStateLabel: string;\r\n addressStateLabelOptional?: string;\r\n addressStateRequiredErrorMessage: string;\r\n addressThreeLetterISORegionNameLabel: string;\r\n addressThreeLetterISORegionNameLabelOptional?: string;\r\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\r\n addressStreetLabel: string;\r\n addressStreetLabelOptional?: string;\r\n addressStreetRequiredErrorMessage: string;\r\n addressDistrictLabel: string;\r\n addressDistrictLabelOptional?: string;\r\n addressDistrictRequiredErrorMessage: string;\r\n addressStreetNumberLabel: string;\r\n addressStreetNumberLabelOptional?: string;\r\n addressStreetNumberRequiredErrorMessage: string;\r\n addressBuildingComplimentLabel: string;\r\n addressBuildingComplimentLabelOptional?: string;\r\n addressBuildingComplimentRequiredErrorMessage: string;\r\n addressPostboxLabel: string;\r\n addressPostboxLabelOptional?: string;\r\n addressPostboxRequiredErrorMessage: string;\r\n addressHouseRULabel: string;\r\n addressHouseRULabelOptional?: string;\r\n addressHouseRURequiredErrorMessage: string;\r\n addressFlatRULabel: string;\r\n addressFlatRULabelOptional?: string;\r\n addressFlatRURequiredErrorMessage: string;\r\n addressCountryOKSMCodeRULabel: string;\r\n addressCountryOKSMCodeRURequiredErrorMessage: string;\r\n addressErrorMessageTitle: string;\r\n addressGenericErrorMessage: string;\r\n addressEmptyListAddressMessage: string;\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 { get, set } from 'mobx';\r\n\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CountryRegionInfo,\r\n StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule } from './address-format.data';\r\nimport { AddressMetaData } from './address-meta-data';\r\n\r\n/**\r\n *\r\n * Retail Service Address format parser\r\n */\r\nexport class AddressFormat {\r\n private countryRegionsInfo?: CountryRegionInfo[];\r\n private addressPurposes?: AddressPurpose[];\r\n private addressMetaData: AddressMetaData;\r\n\r\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\r\n this.countryRegionsInfo = countryRegionsInfo;\r\n this.addressMetaData = addressMetaData;\r\n this.addressPurposes = addressPurposes;\r\n }\r\n\r\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n if (countryRegionInfo) {\r\n return this._getAddressDisplayFormat(countryRegionInfo);\r\n }\r\n return [];\r\n }\r\n\r\n public getCountryFormat(): { key?: string; value?: string }[] {\r\n return (this.countryRegionsInfo || []).map(countryRegion => {\r\n return {\r\n key: countryRegion.CountryRegionId,\r\n value: countryRegion.ShortName\r\n };\r\n });\r\n }\r\n\r\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\r\n return (stateProvinceInfo || []).map(state => {\r\n return {\r\n key: state.StateId,\r\n value: state.StateName\r\n };\r\n });\r\n }\r\n\r\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\r\n return (this.addressPurposes || []).map(addressPurpose => {\r\n return {\r\n key: addressPurpose.AddressType,\r\n value: addressPurpose.Name\r\n };\r\n });\r\n }\r\n\r\n public getPrefilledAddressDropdownData = (\r\n stateDefaultSelectionText: string,\r\n stateProvinceInfo?: StateProvinceInfo[]\r\n ): IAddressDropdownsData => {\r\n const defaultStateText = {\r\n key: '',\r\n value: stateDefaultSelectionText\r\n };\r\n const dropdownData: IAddressDropdownsData = {};\r\n\r\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\r\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\r\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\r\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\r\n\r\n return dropdownData;\r\n };\r\n\r\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n\r\n return countryRegionInfo!.ISOCode;\r\n };\r\n\r\n public validateAddressFormat = (\r\n address: Address,\r\n validationError: Address,\r\n countryRegionId: string,\r\n propertyName?: string\r\n ): boolean => {\r\n let isValid: boolean = true;\r\n let validationtor;\r\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\r\n\r\n addressFormat.forEach(addressFormatItem => {\r\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\r\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\r\n }\r\n });\r\n\r\n return isValid;\r\n };\r\n\r\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\r\n const address: Address = {};\r\n\r\n // Zip Code\r\n if (result.address.postalCode !== undefined) {\r\n address.ZipCode = result.address.postalCode;\r\n } else {\r\n address.ZipCode = '';\r\n }\r\n\r\n // State\r\n if (stateProvinceInfo) {\r\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\r\n if (!selectedState) {\r\n address.State = '';\r\n address.StateName = result.address.adminDistrict;\r\n } else {\r\n address.State = selectedState.StateId;\r\n address.StateName = selectedState.StateName;\r\n }\r\n }\r\n\r\n // Street\r\n if (result.address.addressLine !== undefined) {\r\n address.Street = result.address.addressLine;\r\n } else {\r\n address.Street = ' ';\r\n }\r\n\r\n // City\r\n if (result.address.locality !== undefined) {\r\n address.City = result.address.locality;\r\n } else {\r\n address.City = '';\r\n }\r\n\r\n // District\r\n if (result.address.district !== undefined) {\r\n address.DistrictName = result.address.district;\r\n address.CountyName = result.address.district;\r\n } else {\r\n address.DistrictName = '';\r\n }\r\n\r\n // formatted Address\r\n address.FullAddress = result.address.formattedAddress;\r\n\r\n return address;\r\n };\r\n\r\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\r\n set(validationError, { [addressFormatItem.name]: null });\r\n for (const validationRule of addressFormatItem.validationRules || []) {\r\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\r\n set(validationError, {\r\n [addressFormatItem.name]: validationRule.message\r\n });\r\n return false;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\r\n if (validationRule.regEx && validationRule.regEx.length > 0) {\r\n try {\r\n const regex = RegExp(validationRule.regEx);\r\n return regex.test(get(address, propertyName) || '');\r\n } catch {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\r\n return (this.countryRegionsInfo || []).find(countryRegion => {\r\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\r\n });\r\n }\r\n\r\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\r\n const addressDisplayItem: IAddressItem[] = [];\r\n\r\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\r\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\r\n if (AddressTypeItem) {\r\n addressDisplayItem.push(AddressTypeItem);\r\n }\r\n\r\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\r\n if (nameDisplayItem) {\r\n addressDisplayItem.push(nameDisplayItem);\r\n }\r\n\r\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\r\n if (formatLine.AddressComponentNameValue) {\r\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\r\n if (addressItem) {\r\n addressItem.isNewLine = formatLine.NewLine || false;\r\n addressDisplayItem.push(addressItem);\r\n }\r\n }\r\n });\r\n\r\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\r\n if (phoneDisplayItem) {\r\n addressDisplayItem.push(phoneDisplayItem);\r\n }\r\n\r\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\r\n if (isPrimaryDisplayItem) {\r\n addressDisplayItem.push(isPrimaryDisplayItem);\r\n }\r\n }\r\n\r\n return addressDisplayItem;\r\n }\r\n\r\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\r\n const addressItem = this.addressMetaData.getItemFormat(type);\r\n if (addressItem) {\r\n addressItem.isNewLine = isNewLine;\r\n }\r\n return addressItem;\r\n }\r\n}\r\n","import {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from './address-format.data';\r\nimport { IAddressResource } from './address-module.data';\r\n\r\n/**\r\n * Address meta data\r\n */\r\nexport class AddressMetaData {\r\n private metaData: IAddressItem[] = [];\r\n private resources: IAddressResource;\r\n private requiredFieldRegEx: string = '\\\\S';\r\n private resourcesPrefix: string = 'address';\r\n private maxLength: number = 64;\r\n private requiredFields: AddressItemType[];\r\n private excludedTypes: AddressItemType[];\r\n\r\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\r\n this.resources = resources || {};\r\n this.excludedTypes = excluded || [];\r\n this.requiredFields =\r\n required !== undefined\r\n ? required\r\n : [\r\n AddressItemType.Name,\r\n AddressItemType.ZipCode,\r\n AddressItemType.City,\r\n AddressItemType.State,\r\n AddressItemType.ThreeLetterISORegionName,\r\n AddressItemType.Street\r\n ];\r\n this._init();\r\n }\r\n\r\n public getItemFormat(id: number): IAddressItem | undefined {\r\n return this.metaData.find(item => {\r\n return item.type === id;\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.District, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\r\n }\r\n\r\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType): void {\r\n if (this.excludedTypes.includes(type)) {\r\n return;\r\n }\r\n\r\n const nameKey = AddressItemType[type].replace('_', '');\r\n\r\n // find out if currentItem is required field\r\n const validationRules = this._validationRules(type, nameKey);\r\n let isRequired = false;\r\n validationRules.forEach(rule => {\r\n if (rule.type === AddressValidationRuleType.Required) {\r\n isRequired = true;\r\n }\r\n });\r\n\r\n // if no optional string is provided in resource file, use the original label text\r\n const optionalString =\r\n this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\r\n const item: IAddressItem = {\r\n type,\r\n displayType,\r\n name: AddressItemType[type],\r\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\r\n maxLength: this.maxLength,\r\n validationRules: validationRules,\r\n isNewLine: true\r\n };\r\n\r\n this.metaData.push(item);\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: string): IAddressValidationRule[] {\r\n const validationRules: IAddressValidationRule[] = [];\r\n\r\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\r\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\r\n const message = this.resources[`${key}ErrorMessage`];\r\n switch (ruleType) {\r\n case AddressValidationRuleType.Required: {\r\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\r\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n return validationRules;\r\n }\r\n\r\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\r\n return {\r\n type,\r\n regEx,\r\n message\r\n };\r\n }\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressAlert {\r\n message?: string;\r\n}\r\n\r\nconst AdressAlert: React.FC = ({ message }) => (\r\n \r\n {message && <>{message}}\r\n \r\n);\r\n\r\nexport default AdressAlert;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressButton {\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\nconst AddressButton: React.FC = ({ className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressButton;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressCheckbox {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n isChecked: boolean;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressCheckbox: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressCheckbox;\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\nexport interface IAdressDropdown {\r\n id: string;\r\n name: string;\r\n className: string;\r\n value: string | number;\r\n additionalAddributes?: object;\r\n displayData: { key?: string | number; value?: string }[];\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\r\n let isSelected: boolean;\r\n if (typeof key === 'number') {\r\n isSelected = key === selectedValue;\r\n } else {\r\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst AdressDropdown: React.FC = ({ id, name, className, value, additionalAddributes, displayData, onChange }) => (\r\n \r\n);\r\n\r\nexport default AdressDropdown;\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\nexport interface IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\nconst AdressErrorMessage: React.FC = ({ message }) =>

{message}

;\r\n\r\nexport default AdressErrorMessage;\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\nexport interface IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\nconst AdressErrorTitle: React.FC = ({ title }) =>

{title}

;\r\n\r\nexport default AdressErrorTitle;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressInput {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n value: string;\r\n maxLength?: number;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressInput: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressInput;\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\nexport interface IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nconst AdressLabel: React.FC = ({ id, text }) => (\r\n \r\n);\r\n\r\nexport default AdressLabel;\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 classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressType, IAddressResource, IAddressResponse } from './../address-module.data';\r\n\r\nimport {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from './../address-format.data';\r\n\r\nimport AddressAlertComponent from './address-alert';\r\nimport AddressButtonComponent from './address-button';\r\nimport AdressCheckboxComponent from './address-checkbox';\r\nimport AdressDropdownComponent from './address-dropdown';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport AddressInputComponent from './address-input';\r\nimport AddressLabelComponent from './address-label';\r\n\r\nexport interface IAddressAddInputProps {\r\n isUpdating?: boolean;\r\n hasError?: boolean;\r\n hasExternalSubmitGroup?: boolean;\r\n addressType: AddressType;\r\n addressFormat: IAddressItem[];\r\n defaultCountryRegionId: string;\r\n defaultAddressType: number;\r\n selectedAddress?: Address;\r\n dropdownDisplayData: IAddressDropdownsData;\r\n resources: IAddressResource;\r\n addressActionResponse?: IAddressResponse;\r\n addAddressHeading?: HeadingData;\r\n editAddressHeading?: HeadingData;\r\n validationError?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?(): void;\r\n onCancel?(): void;\r\n}\r\n\r\nexport interface IAddressError {\r\n AddressError: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddItem {\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\nexport interface IAddressAddUpdateProps {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n}\r\n\r\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n};\r\n\r\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\r\n const {\r\n addressFormat,\r\n addressType,\r\n dropdownDisplayData,\r\n defaultCountryRegionId,\r\n defaultAddressType,\r\n validationError = {},\r\n onInputChange,\r\n onDropdownChange\r\n } = props;\r\n\r\n // @ts-ignore\r\n return addressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n const errorMessage = get(validationError, addressFormatItem.name);\r\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\r\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\r\n 'address-form__item-invalid': errorMessage\r\n });\r\n let input;\r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n \r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n let selectedValue = selectedAddress[addressFormatItem.name];\r\n\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue = selectedValue || defaultCountryRegionId;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue = selectedValue || defaultAddressType;\r\n }\r\n\r\n input = (\r\n \r\n );\r\n }\r\n\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className: className, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input: input\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const {\r\n editAddressHeading,\r\n addAddressHeading,\r\n selectedAddress = {},\r\n resources,\r\n hasError,\r\n onCancel,\r\n onSave,\r\n hasExternalSubmitGroup,\r\n isUpdating,\r\n addressActionResponse,\r\n telemetryContent\r\n } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: 'msc-address-form' },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: onSave && (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: onCancel && (\r\n \r\n ),\r\n hasError: hasError || false,\r\n error: {\r\n AddressError: { className: 'msc-address-form__error' },\r\n title: addressActionResponse && addressActionResponse.errorTitle && (\r\n \r\n ),\r\n message: addressActionResponse && addressActionResponse.errorMessage && (\r\n \r\n )\r\n }\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressDetailItem {\r\n isNewLine: boolean;\r\n isShowLabel: boolean;\r\n labelText: string;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nconst AddressDetailItem: React.FC = ({ isNewLine, isShowLabel, labelText, name, value }) => {\r\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\r\n const isEmpty = !(value && value.length > 0);\r\n const mainClass = isShowLabel\r\n ? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`\r\n : classname(className, {\r\n 'msc-address-detail__item-empty': isEmpty,\r\n 'msc-address-detail__item-newline': isNewLine\r\n });\r\n return (\r\n \r\n {isShowLabel && (\r\n <>\r\n {labelText}\r\n \r\n \r\n )}\r\n {value}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDetailItem;\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\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressItem } from './../address-format.data';\r\nimport AddressDetailItemComponent from './address-detail-item';\r\n\r\nexport interface IAddressShowItem {\r\n key: string;\r\n description: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressShowProps {\r\n AddressDetail: INodeProps;\r\n items: IAddressShowItem[];\r\n}\r\n\r\nexport interface IAddressShowInputProps {\r\n addressFormat: IAddressItem[];\r\n address: Address;\r\n addressPurposes: AddressPurpose[];\r\n}\r\n\r\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\r\n const { addressFormat, addressPurposes, address } = props;\r\n\r\n return {\r\n AddressDetail: { className: 'msc-address-detail' },\r\n items: addressFormat.map(item => {\r\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n const addressType = addressPurposes.find(\r\n addressTypeValue => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString()\r\n );\r\n if (addressType) {\r\n const value = addressType.Name || '';\r\n return {\r\n key: item.name,\r\n description: (\r\n \r\n )\r\n };\r\n }\r\n }\r\n return {\r\n key: item.name,\r\n description: (\r\n \r\n )\r\n };\r\n })\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { IAddressResource } from './../address-module.data';\r\nimport AddressButtonComponent from './address-button';\r\nimport AddressInputComponent from './address-input';\r\nimport { AddressShow, IAddressShowProps } from './address-show';\r\n\r\nexport interface IAddressSelectInputProps {\r\n hasExternalSubmitGroup?: boolean;\r\n addressFormat: AddressFormat;\r\n addresses: Address[];\r\n addressPurposes: AddressPurpose[];\r\n resources: IAddressResource;\r\n selectedAddress: Address;\r\n telemetryContent?: ITelemetryContent;\r\n onAddressOptionChange(event: React.ChangeEvent): void;\r\n onAddAddress(): void;\r\n onSave(): void;\r\n onCancel(): void;\r\n}\r\n\r\nexport interface IAddressSelectItem {\r\n key: number;\r\n SelectItem: INodeProps;\r\n input: React.ReactNode;\r\n showItems: IAddressShowProps;\r\n}\r\n\r\nexport interface IAddressSelectProps {\r\n SelectAddress: INodeProps;\r\n addButton: React.ReactNode;\r\n items: IAddressSelectItem[];\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n}\r\n\r\nconst getInput = (index: number, address: Address, props: IAddressSelectInputProps): React.ReactNode => {\r\n const { addresses, onAddressOptionChange, selectedAddress } = props;\r\n\r\n const ichecked = address.RecordId === selectedAddress.RecordId;\r\n const additionalAttributes = {\r\n checked: ichecked,\r\n 'aria-checked': ichecked,\r\n 'aria-setsize': addresses.length,\r\n 'aria-posinset': index + 1\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst getAddressSelectItems = (props: IAddressSelectInputProps): IAddressSelectItem[] => {\r\n const { addresses, addressFormat, addressPurposes } = props;\r\n\r\n return addresses.map((address, index) => {\r\n return {\r\n key: address.RecordId || 0,\r\n SelectItem: { className: 'msc-address-select__item' },\r\n input: getInput(index, address, props),\r\n showItems: AddressShow({\r\n addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''),\r\n address: address,\r\n addressPurposes: addressPurposes\r\n })\r\n };\r\n });\r\n};\r\n\r\nexport const AddressSelect = (props: IAddressSelectInputProps): IAddressSelectProps => {\r\n const { resources, onCancel, onSave, onAddAddress, hasExternalSubmitGroup } = props;\r\n\r\n return {\r\n SelectAddress: { className: 'msc-address-select' },\r\n addButton: (\r\n \r\n ),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: (\r\n \r\n ),\r\n items: getAddressSelectItems(props)\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport { action, computed, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { AutoSuggest } from './common/address-autosuggest';\r\nimport { AddressCommon } from './common/address-common';\r\nimport { AddressFormat } from './common/address-format';\r\nimport { AddressItemType } from './common/address-format.data';\r\nimport { AddressMetaData } from './common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from './common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from './common/components/address-add';\r\nimport { AddressSelect, IAddressSelectProps } from './common/components/address-select';\r\nimport { AddressShow, IAddressShowProps } from './common/components/address-show';\r\nimport { ICustomCheckoutShippingAddressData } from './custom-checkout-shipping-address.data';\r\nimport { ICustomCheckoutShippingAddressProps } from './custom-checkout-shipping-address.props.autogenerated';\r\n\r\nexport interface ICheckoutAddressProps extends ICustomCheckoutShippingAddressProps, IModuleStateProps {}\r\n\r\nexport interface ICheckoutShippingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutShippingAddressViewState;\r\n CheckoutShippingAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddress: IAddressShowProps;\r\n showAddressSelect: IAddressSelectProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * Address component\r\n * @extends {React.Component>}\r\n */\r\n// @ts-ignore\r\n@withModuleState\r\n@observer\r\nclass CheckoutShippingAddress extends React.Component {\r\n @observable private currentOperation: AddressOperation;\r\n @observable private selectedAddress?: Address;\r\n @observable private addUpdateAddress: Address;\r\n @observable private countryRegionId: string = 'USA';\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n @observable private customerAddresses: Address[];\r\n @observable private validationError: object;\r\n @observable private addressActionResponse?: IAddressResponse;\r\n @observable private isUpdating?: boolean;\r\n @observable private hasError?: boolean;\r\n @observable private addressListSelectedAddress: Address = {};\r\n\r\n private addressCommon: AddressCommon;\r\n private addressFormat: AddressFormat;\r\n private countryRegions: CountryRegionInfo[];\r\n private addressPurposes: AddressPurpose[];\r\n private resources: IAddressResource;\r\n private defaultAddressType: number = 6; // Default to Home\r\n private telemetryContent?: ITelemetryContent;\r\n private autoSuggest?: AutoSuggest;\r\n private multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n private retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n constructor(props: ICheckoutAddressProps) {\r\n super(props);\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.customerAddresses = data.address.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\r\n this.addressPurposes\r\n );\r\n this.validationError = {};\r\n this.retailMultiplePickUpOptionEnabled = data?.featureState?.result?.find(\r\n feature => feature.Name === this.multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: { channel }\r\n }\r\n },\r\n config: { autoSuggestionEnabled, autoSuggestOptions }\r\n } = this.props;\r\n\r\n try {\r\n await this.props.data.checkout;\r\n this._setDefaultCountryRegionId();\r\n await this._initModuleState();\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to initialize checkout data:', error);\r\n }\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => this._getStateProvinces()\r\n );\r\n\r\n reaction(\r\n () => this.currentOperation,\r\n async () => {\r\n try {\r\n await this._getStateProvinces();\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to get state provinces on operation change:', error);\r\n }\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\r\n this.autoSuggest = new AutoSuggest(\r\n telemetry,\r\n options,\r\n channel?.BingMapsApiKey,\r\n channel?.ChannelCountryRegionISOCode,\r\n channel?.DefaultLanguageId\r\n );\r\n\r\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\r\n if (\r\n this.props.data.storeSelectorStateManager.result &&\r\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n\r\n reaction(\r\n () =>\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi &&\r\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\r\n async () => {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\r\n async () => {\r\n await this._attachMapAutoSuggest();\r\n }\r\n );\r\n }\r\n }\r\n\r\n public async componentDidUpdate(): Promise {\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\r\n await this._attachMapAutoSuggest();\r\n }\r\n } else {\r\n this.autoSuggest?.disposeAutoSuggest();\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this._canShip()) {\r\n return null;\r\n }\r\n\r\n const { renderView, config } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n addressListSelectedAddress: this.addressListSelectedAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n customerAddresses: this.customerAddresses,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n isUpdating: this.isUpdating,\r\n hasError: this.hasError,\r\n className: config.className,\r\n viewState: {\r\n isShowAddress: this.currentOperation === AddressOperation.Show && this.selectedAddress,\r\n isShowAddresList: this.currentOperation === AddressOperation.List && this.customerAddresses.length > 0,\r\n isShowAddOrUpdateAddress:\r\n this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update\r\n },\r\n CheckoutShippingAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-shipping-address', config.className)\r\n },\r\n showAddress: this._renderShowAddress(),\r\n showAddressSelect: this._renderSelectAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n const addressFormat =\r\n this.currentOperation === AddressOperation.Add && this.addressCommon.isAuthenticatedFlow()\r\n ? this.addressFormat\r\n : this.addressFormat;\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n hasError: this.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n onSave: this.onSubmit,\r\n // tslint:disable-next-line: no-empty\r\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n private _renderSelectAddress = (): IAddressSelectProps => {\r\n return AddressSelect({\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n resources: this.resources,\r\n addressPurposes: this.addressPurposes,\r\n selectedAddress: this.addressListSelectedAddress,\r\n onAddressOptionChange: this._onAddressOptionChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n telemetryContent: this.telemetryContent,\r\n onAddAddress: this._goToAddAddress,\r\n onSave: this._onSelectAddress,\r\n // tslint:disable-next-line: no-empty\r\n onCancel: !this.selectedAddress ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({\r\n address: this.selectedAddress,\r\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''),\r\n addressPurposes: this.addressPurposes\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n };\r\n\r\n @action\r\n private _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n set(this.addUpdateAddress, { ['Street']: '' });\r\n set(this.addUpdateAddress, { ['ZipCode']: address.ZipCode });\r\n set(this.addUpdateAddress, { ['CountyName']: address.CountyName });\r\n set(this.addUpdateAddress, { ['City']: address.City });\r\n set(this.addUpdateAddress, { ['State']: address.State });\r\n set(this.addUpdateAddress, { ['DistrictName']: address.DistrictName });\r\n set(this.addUpdateAddress, { ['FullAddress']: address.FullAddress });\r\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\r\n setTimeout(() => {\r\n set(this.addUpdateAddress, { ['Street']: address.Street });\r\n }, 0);\r\n };\r\n\r\n @action\r\n private _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(\r\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n );\r\n addressFormatItem.forEach(format => {\r\n // @ts-ignore\r\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\r\n // @ts-ignore\r\n this.addressFormat[format.name] = '';\r\n }\r\n });\r\n this._clearValidation();\r\n };\r\n\r\n @action\r\n private _clearValidation = (): void => {\r\n this.validationError = {};\r\n };\r\n\r\n private _onAddressOptionChange = (event: React.ChangeEvent) => {\r\n const addressRecordId = event.currentTarget.value;\r\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\r\n if (selectedAddress) {\r\n this.addressListSelectedAddress = selectedAddress;\r\n }\r\n };\r\n\r\n private onAddressAddUpdate = (name: string, value: string | boolean) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n };\r\n\r\n private _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n };\r\n\r\n private _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n };\r\n\r\n private _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress)\r\n : Promise.resolve({ address: this.addUpdateAddress });\r\n } else {\r\n response = Promise.resolve({ address: this.addUpdateAddress });\r\n }\r\n\r\n this.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n async (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n try {\r\n await this._onAddOrUpdateSuccess(result);\r\n } catch (error) {\r\n this.hasError = true;\r\n this.props.context.telemetry.error('Failed to process address update:', error);\r\n this._updateModuleState();\r\n }\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n this._updateModuleState();\r\n }\r\n );\r\n };\r\n\r\n private _onCountryChange = (countryRegionId: string) => {\r\n this.countryRegionId = countryRegionId;\r\n const twoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\r\n set(this.addUpdateAddress, {\r\n ['ThreeLetterISORegionName']: countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n ['TwoLetterISORegionName']: twoLetterISORegionName\r\n });\r\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterISORegionName);\r\n this._clearAddressFields();\r\n };\r\n\r\n private _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const { config } = this.props;\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n if (!config.showAddressType) {\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n }\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n };\r\n\r\n private async _getStateProvinces(): Promise {\r\n if (\r\n !this.countryRegionId ||\r\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n return;\r\n }\r\n\r\n try {\r\n const result = await this.addressCommon.getStateProvinces(this.countryRegionId);\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { ['State']: '' });\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to get state provinces:', error);\r\n }\r\n }\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n private _getDefaultAddress = (): Address | undefined => {\r\n if (this.customerAddresses) {\r\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n }\r\n return undefined;\r\n };\r\n\r\n private _initModuleState = async (): Promise => {\r\n this.props.moduleState.init({\r\n status: this._canShip() ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n if (this._canShip()) {\r\n const defaultAddress = this._getShippingAddressFromCartLines() || this._getDefaultAddress();\r\n if (defaultAddress && !this.addressCommon.isEmpty(defaultAddress)) {\r\n this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\r\n try {\r\n await this._setShippingAddress(defaultAddress);\r\n this._updateModuleState();\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to set shipping address:', error);\r\n }\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n };\r\n\r\n private onSubmit = async (): Promise => {\r\n try {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._onAddressAddUpdateSubmit();\r\n break;\r\n case AddressOperation.List:\r\n await this._onSelectAddress();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n } catch (error) {\r\n this.props.context.telemetry.error('Error during submit operation:', error);\r\n }\r\n };\r\n\r\n private onCancel = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._clearAddressFields();\r\n if (!(!this.selectedAddress && !this.addressCommon.isAuthenticatedFlow())) {\r\n this._resetView();\r\n }\r\n\r\n break;\r\n case AddressOperation.List:\r\n if (this.selectedAddress) {\r\n this._resetView();\r\n }\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n private onEdit = (): void => {\r\n if (this.addressCommon.isAuthenticatedFlow() && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.List, this.shippingAddress);\r\n } else if (this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Update, this.shippingAddress);\r\n }\r\n\r\n this._updateModuleState();\r\n };\r\n\r\n private _getShippingAddressFromCartLines = (): Address | undefined => {\r\n const { request } = this.props.context;\r\n const { channelDeliveryOptionConfig } = this.props.data;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n\r\n const cartLines = this.retailMultiplePickUpOptionEnabled\r\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n\r\n if (cartLines && cartLines.length > 0) {\r\n return cartLines[0].ShippingAddress;\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n private _canShip = (): boolean => {\r\n const { checkout, channelDeliveryOptionConfig } = this.props.data;\r\n const { request } = this.props.context;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n if (!checkout.result || !request.channel || checkout.result.checkoutCart.isEmpty || checkout.result.checkoutCart.hasInvoiceLine) {\r\n return false;\r\n }\r\n\r\n // @ts-ignore: Type-checker not realizing above request.channel check\r\n return this.retailMultiplePickUpOptionEnabled\r\n ? checkout?.result?.checkoutCart?.cart?.CartLines?.some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : checkout?.result?.checkoutCart?.cart?.CartLines?.some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n };\r\n\r\n private _onSelectAddress = async () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\r\n await this._setShippingAddress(this.addressListSelectedAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n private _goToAddAddress = () => {\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n };\r\n\r\n private _onAddOrUpdateSuccess = async (response: IAddressResponse) => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n\r\n if (response.address) {\r\n this._updateCurrentOperation(AddressOperation.Show, response.address);\r\n try {\r\n await this._setShippingAddress(response.address);\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to set shipping address:', error);\r\n }\r\n this._updateModuleState();\r\n }\r\n };\r\n\r\n private _setShippingAddress = async (address: Address): Promise => {\r\n if (this.props.data.checkout.result) {\r\n const newShippingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newShippingAddress.TwoLetterISORegionName) {\r\n newShippingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n try {\r\n await this.props.data.checkout.result.updateShippingAddress({\r\n newShippingAddress\r\n });\r\n } catch (error) {\r\n this.props.context.telemetry.error('Failed to update shipping address:', error);\r\n }\r\n }\r\n };\r\n\r\n @computed get shippingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress;\r\n }\r\n\r\n private _resetView = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._updateCurrentOperation(\r\n this.addressCommon.isAuthenticatedFlow() ? AddressOperation.List : AddressOperation.Show,\r\n this.shippingAddress\r\n );\r\n break;\r\n default:\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n }\r\n this._updateModuleState();\r\n };\r\n\r\n private _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\r\n this.currentOperation = operation;\r\n this.selectedAddress = selectedAddress;\r\n\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n this.addUpdateAddress = this.selectedAddress ? { ...this.selectedAddress } : {};\r\n set(this.addUpdateAddress, {\r\n ['ThreeLetterISORegionName']: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n ['AddressTypeValue']: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\r\n });\r\n } else if (this.currentOperation === AddressOperation.List) {\r\n this.addressListSelectedAddress = this.selectedAddress ? { ...this.selectedAddress } : {};\r\n }\r\n };\r\n\r\n private _updateModuleState = () => {\r\n if (this.currentOperation === AddressOperation.Show) {\r\n this.props.moduleState.onReady();\r\n } else if (this.isUpdating) {\r\n this.props.moduleState.onPending();\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutShippingAddress;\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport {\r\n IAddressAddItem,\r\n IAddressAddUpdateProps,\r\n IAddressSelectItem,\r\n IAddressSelectProps,\r\n IAddressShowItem,\r\n IAddressShowProps\r\n} from '@msdyn365-commerce-modules/address';\r\nimport { ICheckoutShippingAddressViewProps } from './custom-checkout-shipping-address';\r\nimport { convert_a2_to_a3 } from '../../themes/venchi/utils/convert_a2_a3';\r\n\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressSelect: React.FC = ({\r\n SelectAddress,\r\n addButton,\r\n items,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {addButton}\r\n {items &&\r\n items.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n return (\r\n \r\n {item.input}\r\n \r\n \r\n );\r\n })}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const [hasHomeNumber, setHasHomeNumber] = React.useState(false);\r\n const addressContainerRef = React.useRef(null);\r\n // @ts-ignore\r\n const resources = other?.moduleProps?.resources;\r\n // @ts-ignore\r\n const localeString = other?.moduleProps?.context?.request?.locale;\r\n // @ts-ignore\r\n const sitePath = other?.moduleProps?.context?.request?.sitePath;\r\n const europe = ['/fr', '/de'];\r\n // @ts-ignore\r\n const currency = other?.moduleProps?.context?.request?.channel?.Currency;\r\n const locale =\r\n sitePath && europe.includes(sitePath)\r\n ? 'eu'\r\n : currency === 'EUR' && localeString === 'en-GB'\r\n ? 'eu'\r\n : localeString.replace('-', '');\r\n\r\n const countriesAvail = {\r\n enGB: {\r\n autocomplete: ['gb'],\r\n select: ['GBR']\r\n },\r\n it: {\r\n autocomplete: ['it'],\r\n select: ['ITA']\r\n },\r\n enUS: {\r\n autocomplete: ['us'],\r\n // autocomplete: ['us', 'ca'],\r\n //select: ['USA', 'CAN']\r\n select: ['USA']\r\n },\r\n eu: {\r\n // removed componentRestrictions for country as there is limit of 5 in google maps\r\n // autocomplete:['at','be','bg','ch','cz','de','dk','es','ee','fi','fr','gr','hr','hu','ie','li','lt','lu','lv','mc','nl','no','pl','pt','ro','sk','si','se'],\r\n autocomplete: [],\r\n select: [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'CHE',\r\n 'CZE',\r\n 'DEU',\r\n 'DNK',\r\n 'ESP',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'LIE',\r\n 'LTU',\r\n 'LUX',\r\n 'LVA',\r\n 'MCO',\r\n 'NLD',\r\n 'NOR',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'SWE'\r\n ]\r\n },\r\n enSG: {\r\n autocomplete: ['sg'],\r\n select: ['SGP']\r\n }\r\n };\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n // tslint:disable-next-line:typedef\r\n function gMapsAutocomplete() {\r\n const googleComponents = [\r\n { googleComponent: 'sublocality_level_1', id: 'shipping_addresscity' },\r\n { googleComponent: 'locality', id: 'shipping_addresscity' },\r\n { googleComponent: 'postal_town', id: 'shipping_addresscity' },\r\n {\r\n googleComponent: 'administrative_area_level_3',\r\n id: 'shipping_addresscity'\r\n },\r\n {\r\n googleComponent: 'administrative_area_level_1',\r\n id: 'shipping_addressstate'\r\n },\r\n { googleComponent: 'postal_code_prefix', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'postal_code', id: 'shipping_addresszipcode' },\r\n {\r\n googleComponent: 'country',\r\n id: 'shipping_addressthreeletterisoregionname'\r\n },\r\n {\r\n googleComponent: 'administrative_area_level_2',\r\n id: 'shipping_addresscounty'\r\n }\r\n ];\r\n\r\n const autocompleteFormField = document.getElementById('shipping_addressstreet');\r\n const addressErrorField = addressContainerRef?.current?.querySelector('.msc-address-form__alert');\r\n const saveAddressButton = document.querySelector('.ms-checkout__guided-card-btn-save.msc-btn') as HTMLButtonElement;\r\n\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address'],\r\n componentRestrictions: {\r\n country: countriesAvail[locale] && countriesAvail[locale].autocomplete\r\n }\r\n });\r\n if (autocompleteFormField === null) {\r\n return;\r\n }\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocompleteFormField);\r\n // @ts-ignore\r\n window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n let homeNumberPresent = false;\r\n setHasHomeNumber(false);\r\n\r\n const place = autocomplete.getPlace();\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n\r\n for (const googleComponent of googleComponents) {\r\n const addressComponents = place.address_components;\r\n if (addressComponents && addressComponents.length > 0) {\r\n // @ts-ignore\r\n addressComponents.forEach(addressComponent => {\r\n if (addressComponent.types.includes('street_number')) {\r\n homeNumberPresent = true;\r\n setHasHomeNumber(true);\r\n }\r\n populateFormElements(addressComponent, googleComponent);\r\n });\r\n\r\n if (!homeNumberPresent) {\r\n addressContainerRef?.current?.classList.add('address-form__item-invalid');\r\n addressErrorField!.innerHTML = resources.addressHomeNumberRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n setHasHomeNumber(true);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef no-any\r\n function populateFormElements(\r\n addressComponent: { types: any[]; short_name: string; long_name: string },\r\n formMap: { googleComponent: any; id: string }\r\n ) {\r\n const addressType = addressComponent.types[0];\r\n\r\n if (document.getElementById(formMap.id) === undefined || document.getElementById(formMap.id) === null) {\r\n return;\r\n }\r\n\r\n if (formMap.googleComponent === addressType) {\r\n if (formMap.id === 'shipping_addressthreeletterisoregionname' || formMap.id === 'shipping_addressstate') {\r\n const input = document.getElementById(formMap.id) as HTMLSelectElement;\r\n if (input !== null) {\r\n const formValue = locale === 'it' && formMap.id === 'shipping_addressstate' ? 'DEF' : addressComponent.short_name;\r\n const selectedValue = selectItemByValue(input, formValue, addressType === 'country' ? true : false);\r\n if (selectedValue !== undefined) {\r\n input.value = selectedValue;\r\n const event = new Event('change', { bubbles: true });\r\n input.dispatchEvent(event);\r\n }\r\n }\r\n } else {\r\n const formValue = formMap.id === 'shipping_addresscounty' ? addressComponent.short_name : addressComponent.long_name;\r\n const input = document.getElementById(formMap.id);\r\n if (input !== undefined) {\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(input, formValue);\r\n const eCustom = new Event('input', { bubbles: true });\r\n if (input !== null) {\r\n input.dispatchEvent(eCustom);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n // tslint:disable-next-line:typedef\r\n function selectItemByValue(elmnt: HTMLSelectElement, value: string, is_convert_a2_to_a3: boolean) {\r\n for (let i = 0; i < elmnt.options.length; i++) {\r\n const eValue = elmnt.options[i].value;\r\n if ((is_convert_a2_to_a3 && eValue === convert_a2_to_a3[value]) || (!is_convert_a2_to_a3 && eValue === value)) {\r\n return elmnt.options[i].value;\r\n }\r\n }\r\n }\r\n const checkPhone = () => {\r\n const saveAddressButton = document.querySelector('.ms-checkout__guided-card-btn-save.msc-btn') as HTMLButtonElement;\r\n const phone = document.getElementById('shipping_addressphone') as HTMLInputElement;\r\n if (phone) {\r\n const phoneCtn = phone.closest('.msc-address-form__item') as HTMLElement;\r\n const phoneAlert = phoneCtn.getElementsByClassName('msc-address-form__alert')[0];\r\n const pattern = /^[0-9]*$/;\r\n const pattern2 = /^\\+?\\d+$/;\r\n phone.setAttribute('aria-required', 'true');\r\n phone.setAttribute('type', 'tel');\r\n phone.setAttribute('maxlength', '15');\r\n if (phone.value.length === 0) {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n phone.onkeyup = () => {\r\n if (!phone.value.match(pattern) && !phone.value.match(pattern2)) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else if (phone.value.length < 6) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else {\r\n phoneCtn.classList.remove('address-form__item-invalid');\r\n phoneAlert.textContent = '';\r\n saveAddressButton.removeAttribute('disabled');\r\n }\r\n };\r\n }\r\n };\r\n function phoneValidation(): void {\r\n const addressForm = document.getElementsByClassName('msc-address-form')[0];\r\n const saveAddressButton = addressForm\r\n .closest('.ms-checkout__guided-card')\r\n ?.getElementsByClassName('ms-checkout__guided-card-btn-save')[0] as HTMLElement;\r\n const county = document.getElementById('shipping_addresscounty') as HTMLInputElement;\r\n const countyCtn = county && county !== null ? (county.closest('.msc-address-form__item') as HTMLInputElement) : undefined;\r\n const countyAlert = countyCtn?.getElementsByClassName('msc-address-form__alert')[0];\r\n\r\n if (countyCtn !== undefined) {\r\n countyCtn.onkeyup = () => {\r\n countyCtn?.classList.remove('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = '';\r\n }\r\n };\r\n }\r\n if (saveAddressButton !== undefined) {\r\n saveAddressButton.onclick = e => {\r\n const countyValid = locale === 'it' && (county.value === '' || county.value.length > 2) ? false : true;\r\n if (!countyValid) {\r\n countyCtn?.classList.add('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = 'Inserire Codice ISO a 2 lettere';\r\n }\r\n const elements = addressForm.querySelectorAll('input');\r\n let fieldInALL = true;\r\n elements.forEach(fieldInControl);\r\n function fieldInControl(element: HTMLInputElement): void {\r\n if (element.value === '' && element.name !== 'County') {\r\n fieldInALL = false;\r\n }\r\n }\r\n if (fieldInALL) {\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n React.useEffect(() => {\r\n gMapsAutocomplete();\r\n const options = document.querySelectorAll('#shipping_addressthreeletterisoregionname option');\r\n options.forEach(o => {\r\n const optionV = (o as HTMLOptionElement).value;\r\n if (countriesAvail[locale] && !countriesAvail[locale].select.includes(optionV)) {\r\n o.remove();\r\n }\r\n });\r\n const countrySelect = document.getElementById('shipping_addressthreeletterisoregionname') as HTMLSelectElement;\r\n if (locale === 'enUS') {\r\n countrySelect.value = 'USA';\r\n }\r\n const event = new Event('change', { bubbles: true });\r\n countrySelect.dispatchEvent(event);\r\n const stateSelect = document.getElementById('shipping_addressstate') as HTMLSelectElement;\r\n if (locale === 'it') {\r\n stateSelect.value = 'DEF';\r\n stateSelect.dispatchEvent(event);\r\n stateSelect.disabled = Boolean('true');\r\n }\r\n phoneValidation();\r\n }, []);\r\n // Phone Verifications\r\n React.useEffect(() => {\r\n checkPhone();\r\n }, [(document?.getElementById('shipping_addressphone') as HTMLInputElement)?.value]);\r\n React.useEffect(() => {\r\n phoneValidation();\r\n }, [document.getElementById('shipping_addressphone')]);\r\n\r\n React.useEffect(() => {\r\n const addressStreetField = document?.getElementById('shipping_addressstreet') as HTMLInputElement;\r\n const addressErrorField = addressContainerRef?.current?.querySelector('.msc-address-form__alert');\r\n const saveAddressButton = document.querySelector('.ms-checkout__guided-card-btn-save.msc-btn') as HTMLButtonElement;\r\n\r\n if (addressErrorField && addressStreetField!.value) {\r\n addressErrorField.innerHTML = '';\r\n saveAddressButton.setAttribute('disabled', 'false');\r\n addressContainerRef?.current?.classList.remove('address-form__item-invalid');\r\n }\r\n }, [(document?.getElementById('shipping_addressstreet') as HTMLInputElement)?.value]);\r\n\r\n React.useEffect(() => {\r\n const saveAddressButton = document.querySelector('.ms-checkout__guided-card-btn-save.msc-btn') as HTMLButtonElement;\r\n\r\n if (hasHomeNumber) {\r\n saveAddressButton.removeAttribute('disabled');\r\n } else {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n });\r\n\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n if (key === 'Name' && input) {\r\n // @ts-ignore\r\n input.props.maxLength = 34;\r\n }\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutShippingAddressView: React.FC = props => {\r\n const { CheckoutShippingAddress, viewState, showAddress, showAddressSelect, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\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 { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { Image, IViewPort } from '@msdyn365-commerce/core';\r\nimport { getFeatureToggleService } from '../../../services/featureToggleService';\r\nimport { IContentBlockConfig, IContentBlockProps } from '../definition-extensions/content-block.ext.props.autogenerated';\r\n\r\nconst DEFAULT_IMAGE_MODE = 2;\r\n\r\nconst DEFAULT_VIEWPORTS: IViewPort = {\r\n xs: { w: 800, h: 600 }, // max-width: 767px\r\n sm: { w: 1200, h: 900 }, // min-width: 768px and max-width: 991px\r\n md: { w: 1600, h: 900 }, // min-width: 992px and max-width: 1199px\r\n lg: { w: 1600, h: 700 }, // min-width: 1200px and max-width: 1599px\r\n xl: { w: 1600, h: 700 } // min-width: 1600px\r\n};\r\n\r\ntype IContentBlockFullConfig = IContentBlockConfig & {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n};\r\n\r\nconst ContentBlockView: React.FC> = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image: imageProp } = props;\r\n const { image } = props.config;\r\n const imageProps = {\r\n gridSettings: props.context.request.gridSettings ?? {},\r\n imageSettings: {\r\n ...(image?.imageSettings ?? {}),\r\n mode: image?.imageSettings?.mode || DEFAULT_IMAGE_MODE,\r\n viewports: image?.imageSettings?.viewports || DEFAULT_VIEWPORTS // Use || instead of ?? here\r\n }\r\n };\r\n\r\n const isLcpImage = props.config.preload;\r\n\r\n const htmlImage = imageProp && (\r\n {imageProp.props.altText}\r\n );\r\n\r\n //@ts-ignore\r\n const msdynImage = (\r\n \r\n );\r\n const { isFeatureEnabled } = getFeatureToggleService(props.context.request.cookies, props.context.app.config.features);\r\n\r\n const contentBlockImage = isFeatureEnabled('msdyn-image') ? msdynImage : htmlImage;\r\n\r\n const entireLink = contentBlockContainer.className.includes('linkplacement__entirebanner');\r\n // @ts-ignore\r\n const link = links && 'props' in links ? links.props.links[0].linkUrl.destinationUrl : '';\r\n return (\r\n \r\n {entireLink ? (\r\n \r\n {contentBlockImage}\r\n \r\n {title}\r\n {text}\r\n \r\n \r\n ) : (\r\n <>\r\n {image && {contentBlockImage}}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockView;\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 * IVideoPlayer 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 column = 'column',\r\n row = 'row'\r\n}\r\n\r\nexport const enum mobileVideoQuality {\r\n hdx = 'hdx',\r\n hq = 'hq',\r\n sd = 'sd',\r\n lo = 'lo'\r\n}\r\n\r\nexport interface IVideoPlayerConfig extends Msdyn365.IModuleConfig {\r\n video: Msdyn365.IVideoData;\r\n heading?: IHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n links?: ILinksData[];\r\n additionalContent?: IAdditionalContentData;\r\n autoplay?: boolean;\r\n mute?: boolean;\r\n loop?: boolean;\r\n autoCaptions?: string;\r\n playPauseTrigger?: boolean;\r\n controls?: boolean;\r\n playFullScreen?: boolean;\r\n hidePosterFrame?: boolean;\r\n maskLevel?: number;\r\n thumbnailFullWidth?: boolean;\r\n lazyLoad?: boolean;\r\n clientRender?: boolean;\r\n layout: layout;\r\n cta?: ICtaData;\r\n mobileVideoQuality?: mobileVideoQuality;\r\n shouldDisableAutoPlayOnMobile?: boolean;\r\n}\r\n\r\nexport interface IVideoPlayerResources {\r\n playLabel: string;\r\n pauseLabel: string;\r\n pausedLabel: string;\r\n playingLabel: string;\r\n unMuteLabel: string;\r\n muteLabel: string;\r\n fullScreenLabel: string;\r\n exitFullScreenLabel: string;\r\n seekBarLabel: string;\r\n videoTimeDurationLabel: string;\r\n closedCaptionLabel: string;\r\n optionButtonLabel: string;\r\n sliderThumbLabel: string;\r\n volumeThumbLabel: 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 ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAdditionalContentData {\r\n heading?: string;\r\n subtext?: string;\r\n links?: ILinksData[];\r\n}\r\n\r\nexport interface ICtaData {\r\n label?: string;\r\n link?: string;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IVideoPlayerProps extends Msdyn365.IModule {\r\n resources: IVideoPlayerResources;\r\n config: IVideoPlayerConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player';\r\nimport { IVideoPlayerProps, layout } from '../definition-extensions/video-player.ext.props.autogenerated';\r\nimport { isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport { getFeatureToggleService } from '../../../services/featureToggleService';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\n\r\nconst VideoPlayerView: React.FC> = props => {\r\n const { isFeatureEnabled } = getFeatureToggleService(props.context.request.cookies, props.context.app.config.features);\r\n const isAccessibleVideoPlayerEnabled = isFeatureEnabled('accessible-video');\r\n\r\n const getAutoplayValue = React.useCallback((): boolean => {\r\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\r\n\r\n if (!props.config.autoplay) return false;\r\n\r\n if (isMobileDevice && props.config.shouldDisableAutoPlayOnMobile) return false;\r\n\r\n return true;\r\n }, []);\r\n\r\n const getPlayer = (video_src?: string) =>\r\n isAccessibleVideoPlayerEnabled ? (\r\n props.player\r\n ) : (\r\n