{"version":3,"file":"static/js/16.e41a62e02bf2e8259aad.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-error.tsx?e7df","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-input.tsx?8156","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-label.tsx?b9fc","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-button.tsx?d230","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-dropdown.tsx?0798","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/section-header.tsx?6237","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-vat.tsx?3e32","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-email-verification.tsx?6026","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sign-up-terms-conditions.tsx?d962","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/components/sizeEnums.ts?e50e","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/nos-business-sign-up.tsx?f735","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/nos-business-sign-up.view.tsx?baad","webpack://Msdyn365.Commerce.Online/./src/modules/nos-phone-picker/components/sign-up-input-phone.tsx?c031","webpack://Msdyn365.Commerce.Online/./src/modules/nos-business-sign-up/nos-business-sign-up.props.autogenerated.ts?c869","webpack://Msdyn365.Commerce.Online/./src/modules/nos-phone-picker/nos-phone-picker.tsx?2b61","webpack://Msdyn365.Commerce.Online/./src/modules/nos-phone-picker/nos-phone-picker.view.tsx?a380","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.tsx?5c42","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.props.autogenerated.ts?e795","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.view.tsx?7000","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputID, InputType, Suggestion } from '../nos-business-sign-up';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value?: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent, input?: string): void;\r\n isSubmittedPressed: boolean;\r\n suggestions?: [];\r\n selectedSuggestion?: string;\r\n onSuggestionSelect?: (suggestion: string) => void;\r\n updateCompanyAddress?(inputType: string, newValue: string): void;\r\n}\r\n\r\nexport interface IBusinessSignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const SignUpInput: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n fieldReference,\r\n isSubmittedPressed,\r\n suggestions,\r\n selectedSuggestion,\r\n onSuggestionSelect,\r\n updateCompanyAddress\r\n}) => {\r\n const [inputValue, setInputValue] = React.useState(value);\r\n const [showSuggestion, setShowSuggestion] = React.useState(false);\r\n\r\n const autoSuggestFields = [InputID.CompanyName, InputID.Street];\r\n\r\n const listRef = React.useRef(null);\r\n\r\n React.useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (listRef.current && !listRef.current.contains(event.target as Node)) {\r\n setShowSuggestion(false);\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [setShowSuggestion]);\r\n\r\n React.useEffect(() => {\r\n if (selectedSuggestion && suggestions !== undefined && suggestions?.length > 0) {\r\n const foundSuggestion: Suggestion = suggestions.find((suggestion: Suggestion) => suggestion.id === selectedSuggestion) || {\r\n id: ''\r\n };\r\n if (foundSuggestion && updateCompanyAddress) {\r\n switch (id) {\r\n case InputID.CompanyName:\r\n if (foundSuggestion?.poi?.name !== undefined) {\r\n setInputValue(foundSuggestion?.poi?.name);\r\n updateCompanyAddress(InputID.CompanyName, foundSuggestion?.poi?.name as string);\r\n }\r\n break;\r\n case InputID.ZipCode:\r\n setInputValue(foundSuggestion.address?.postalCode);\r\n updateCompanyAddress(InputID.ZipCode, foundSuggestion?.address?.postalCode as string);\r\n break;\r\n case InputID.City:\r\n if (foundSuggestion.address?.localName) {\r\n setInputValue(foundSuggestion.address?.localName);\r\n updateCompanyAddress(InputID.City, foundSuggestion.address?.localName as string);\r\n } else if (foundSuggestion.address?.municipality) {\r\n setInputValue(foundSuggestion.address?.municipality);\r\n updateCompanyAddress(InputID.City, foundSuggestion?.address?.municipality as string);\r\n }\r\n break;\r\n case InputID.Street:\r\n setInputValue(foundSuggestion.address?.streetName);\r\n updateCompanyAddress(InputID.Street, foundSuggestion?.address?.streetName as string);\r\n break;\r\n case InputID.HouseNumber:\r\n setInputValue(foundSuggestion.address?.streetNumber ? foundSuggestion.address?.streetNumber : '');\r\n updateCompanyAddress(InputID.HouseNumber, foundSuggestion?.address?.streetNumber as string);\r\n break;\r\n }\r\n }\r\n }\r\n }, [selectedSuggestion]);\r\n\r\n if (type === InputType.TextArea) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const selectSuggestion = (fieldValue: string, addressId: string, showSuggestion: boolean = false) => {\r\n setInputValue(fieldValue);\r\n setShowSuggestion(showSuggestion);\r\n onSuggestionSelect?.(addressId);\r\n };\r\n\r\n const suggestionElement = (id: any, addressDisplay: string, fieldValue: string) => {\r\n if (fieldValue) {\r\n return (\r\n {\r\n selectSuggestion(fieldValue, id);\r\n }}\r\n onKeyDown={event => {\r\n if (event.key === 'Enter') {\r\n selectSuggestion(fieldValue, id);\r\n }\r\n }}\r\n role='option'\r\n >\r\n {addressDisplay}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const formatAddress = (parts: any) => {\r\n return parts\r\n .filter((part: any) => part)\r\n .join(', ')\r\n .trim();\r\n };\r\n\r\n const suggestionOption = (suggestions: any) => (\r\n
    \r\n {suggestions.map((suggestion: any) => {\r\n switch (id) {\r\n case InputID.CompanyName:\r\n return suggestionElement(\r\n suggestion.id,\r\n formatAddress([\r\n suggestion.poi?.name,\r\n suggestion.address?.localName,\r\n suggestion.address?.postalCode,\r\n suggestion.address?.streetName,\r\n suggestion.address?.streetNumber\r\n ]),\r\n suggestion.poi?.name\r\n );\r\n case InputID.Street:\r\n return suggestionElement(\r\n suggestion.id,\r\n formatAddress([\r\n suggestion.address?.streetName,\r\n suggestion.address?.streetNumber,\r\n suggestion.address?.localName,\r\n suggestion.address?.postalCode\r\n ]),\r\n suggestion.address?.streetName\r\n );\r\n default:\r\n return null;\r\n }\r\n })}\r\n
\r\n );\r\n\r\n return (\r\n <>\r\n {\r\n setInputValue(e.target.value);\r\n setShowSuggestion(autoSuggestFields.includes(id as InputID) ? true : false);\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n }}\r\n aria-autocomplete='list'\r\n aria-controls='autocomplete-list'\r\n ref={fieldReference}\r\n />\r\n {suggestions !== undefined && suggestions.length > 0 && showSuggestion && <>{suggestionOption(suggestions)}}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpInput;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpLabelProps {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpButtonProps {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n link?: string;\r\n telemetryContent: ITelemetryContent;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nexport const SignUpButton: React.FC = ({\r\n id,\r\n className,\r\n text,\r\n ariaLabel,\r\n telemetryContent,\r\n disabled,\r\n link,\r\n onClick\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, text);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n return disabled ? (\r\n \r\n {text}\r\n \r\n ) : (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpButton;\r\n","/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\nimport { INosBusinessSignUpResources } from '../nos-business-sign-up.props.autogenerated';\r\n\r\nexport interface IBusinessSignUpDropdownProps {\r\n id?: string;\r\n value: string;\r\n className: string;\r\n isRequired: boolean;\r\n options: IBusinessSignUpDropdownOption[];\r\n onChange: (event: React.ChangeEventHandler) => void;\r\n fieldReference?: React.RefObject;\r\n selectValue?: IBusinessSignUpDropdownOption;\r\n isSubmittedPressed: boolean;\r\n resources: INosBusinessSignUpResources;\r\n}\r\n\r\nexport interface IBusinessSignUpDropdownOption {\r\n key: string;\r\n value: string;\r\n InternationalCallingCode?: string;\r\n}\r\n\r\nexport const BusinessSignUpDropdown: React.FC = ({\r\n id,\r\n value,\r\n className,\r\n isRequired,\r\n options,\r\n onChange,\r\n fieldReference,\r\n selectValue,\r\n isSubmittedPressed,\r\n resources\r\n}) => {\r\n return (\r\n onChange(event)}\r\n >\r\n \r\n {options.map((option: IBusinessSignUpDropdownOption) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default BusinessSignUpDropdown;\r\n","import * as React from 'react';\r\n\r\ninterface ISectionHeaderProps {\r\n header: string;\r\n sectionLabel?: string;\r\n number?: string;\r\n}\r\n\r\nconst SectionHeader: React.FC = ({ header, sectionLabel, number }) => {\r\n return (\r\n \r\n
\r\n
{number}
\r\n

{header}

\r\n
\r\n
{sectionLabel}
\r\n
\r\n );\r\n};\r\n\r\nexport default SectionHeader;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../nos-business-sign-up';\r\nimport { INosBusinessSignUpResources } from '../nos-business-sign-up.props.autogenerated';\r\nimport SignUpButton from './sign-up-button';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n onClick?: (id: string) => void;\r\n telemetryContent: ITelemetryContent;\r\n buttonClassName?: string;\r\n isContinueWithoutVatId?: boolean;\r\n isVatValidationClicked?: boolean;\r\n isVatCheckFirstClickDone?: boolean;\r\n handleIscontinueWithoutVatId?: () => void;\r\n isVatValid?: boolean;\r\n resources: INosBusinessSignUpResources;\r\n isVatCheckExcecuted?: boolean;\r\n isSubmittedPressed: boolean;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const SignUpVAT: React.FC = ({\r\n id,\r\n resources,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n fieldReference,\r\n onClick,\r\n telemetryContent,\r\n buttonClassName,\r\n handleIscontinueWithoutVatId,\r\n isContinueWithoutVatId,\r\n isVatValidationClicked,\r\n isVatCheckFirstClickDone,\r\n isVatValid,\r\n isVatCheckExcecuted,\r\n isSubmittedPressed\r\n}) => {\r\n return (\r\n \r\n {handleIscontinueWithoutVatId && (\r\n
\r\n
\r\n handleIscontinueWithoutVatId()}\r\n />\r\n \r\n
\r\n
\r\n )}\r\n

{resources.vatLabel}

\r\n {!isVatValid && !isVatValidationClicked && !isContinueWithoutVatId && (\r\n \r\n )}\r\n
\r\n {!isContinueWithoutVatId && (\r\n
\r\n \r\n
\r\n )}\r\n {onClick ? (\r\n <>\r\n {!isContinueWithoutVatId && (\r\n
\r\n onClick('123'),\r\n disabled: isContinueWithoutVatId\r\n }}\r\n />\r\n
\r\n )}\r\n \r\n ) : null}\r\n
\r\n {/* System currently unavailable */}\r\n {!isContinueWithoutVatId && !isVatCheckExcecuted && isVatValidationClicked && (\r\n
{resources.vatIdFailed}
\r\n )}\r\n {/* VAT ID valid */}\r\n {isVatValid && !isContinueWithoutVatId &&
{resources.vatIdValid}
}\r\n {/* VAT ID valid but \"without VAT id\" is active */}\r\n {isVatValid && isContinueWithoutVatId && (\r\n
{resources.uncheckToContinueWithValidVat}
\r\n )}\r\n {/* VAT ID invalid */}\r\n {isVatCheckExcecuted && isVatValidationClicked && !isVatValid && !isContinueWithoutVatId && (\r\n
\r\n )}\r\n {(isContinueWithoutVatId || !isVatValid) &&

{resources.youWillBeChargedVat}

}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpVAT;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps, ITelemetryContent, getTelemetryAttributes, Button, getPayloadObject } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputID, InputType } from '../nos-business-sign-up';\r\nimport { INosBusinessSignUpResources } from '../nos-business-sign-up.props.autogenerated';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n onClick?: () => void;\r\n onConfirmCode?: (code: string) => void;\r\n telemetryContent: ITelemetryContent;\r\n buttonClassName?: string;\r\n isEmailVerificationInProcess?: boolean;\r\n isEmailVerified?: boolean;\r\n isUserVerificationFailed?: boolean;\r\n emailValidationCode: string;\r\n resources: INosBusinessSignUpResources;\r\n isSubmittedPressed: boolean;\r\n isUserExisting: boolean;\r\n hasExistingProspect: boolean;\r\n url: string;\r\n}\r\n\r\nexport interface IBusinessSignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const SignUpEmailVerification: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n fieldReference,\r\n onClick,\r\n telemetryContent,\r\n buttonClassName,\r\n onConfirmCode,\r\n isEmailVerificationInProcess,\r\n isEmailVerified,\r\n isUserVerificationFailed,\r\n emailValidationCode,\r\n resources,\r\n isSubmittedPressed,\r\n isUserExisting,\r\n hasExistingProspect,\r\n url\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, resources.sendEmailVerificationLabel);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n const testEmail = (email: string) => {\r\n // eslint-disable-next-line security/detect-unsafe-regex\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {onClick && (\r\n onClick()}\r\n role='button'\r\n {...attributes}\r\n >\r\n {resources.sendEmailVerificationLabel}\r\n \r\n )}\r\n
\r\n
\r\n {isEmailVerificationInProcess &&\r\n onConfirmCode &&\r\n (!isEmailVerified ? (\r\n \r\n

{resources.pleaseEnterVerificationCode}

\r\n \r\n \r\n
\r\n {resources.emailCodeHasBeenSent}\r\n
\r\n {isUserVerificationFailed && (\r\n
\r\n {isUserExisting\r\n ? `${resources.isUserExisting} `\r\n : hasExistingProspect\r\n ? resources.verificationPending\r\n : resources.emailVerificationFailed}\r\n {isUserExisting && {resources.signInLinkText}}\r\n
\r\n )}\r\n onConfirmCode(emailValidationCode)}\r\n role='button'\r\n disabled={emailValidationCode === ''}\r\n {...attributes}\r\n >\r\n {resources.confirmEmailCodeButtonLabel}\r\n \r\n
\r\n ) : (\r\n
\r\n {resources.emailVerified}\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default SignUpEmailVerification;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nimport { INosBusinessSignUpResources } from '../nos-business-sign-up.props.autogenerated';\r\n\r\nexport interface IBusinessSignUpTermsConditionsInputProps {\r\n id: string;\r\n name: string;\r\n key: string;\r\n type: string;\r\n className: string;\r\n onChange?(event: React.ChangeEvent): void;\r\n isVatCheckFirstClickDone?: boolean;\r\n resources: INosBusinessSignUpResources;\r\n isAcceptedTermsAndConditions: boolean;\r\n isSubmittedPressed: boolean;\r\n}\r\n\r\nexport const SignUpTermsConditions: React.FC = ({\r\n id,\r\n name,\r\n key,\r\n type,\r\n resources,\r\n className,\r\n onChange,\r\n isAcceptedTermsAndConditions,\r\n isSubmittedPressed\r\n}) => {\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {!isAcceptedTermsAndConditions && isSubmittedPressed && (\r\n
\r\n
{resources.termsAndConditionsValidate}
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SignUpTermsConditions;\r\n","export enum Sizes {\r\n Single = '1',\r\n Small = '2 - 9',\r\n Medium = '10 - 20',\r\n Big = '21 - 100',\r\n Giant = '101 - 1000'\r\n}\r\n\r\nexport const companySizes = [\r\n { key: Sizes.Single, value: Sizes.Single },\r\n { key: Sizes.Small, value: Sizes.Small },\r\n { key: Sizes.Medium, value: Sizes.Medium },\r\n { key: Sizes.Big, value: Sizes.Big },\r\n { key: Sizes.Giant, value: Sizes.Giant }\r\n];\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { commerceApiRequest, ContentEditableEvent, getUrlSync, Text } from '@msdyn365-commerce/core';\r\nimport { Address, BusinessPartnerProspect, CommerceProperty } from '@msdyn365-commerce/retail-proxy';\r\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { toJS } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { INosBusinessSignUpConfig, INosBusinessSignUpProps, INosBusinessSignUpResources } from './nos-business-sign-up.props.autogenerated';\r\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components/index';\r\nimport BusinessSignUpDropdown, { IBusinessSignUpDropdownOption } from './components/sign-up-dropdown';\r\n\r\nimport SectionHeader from './components/section-header';\r\nimport verifyEmailAction, { VerifyEmailInput } from '../../actions/verify-email.action';\r\nimport SignUpVAT from './components/sign-up-vat';\r\nimport SignUpEmailVerification from './components/sign-up-email-verification';\r\nimport validateEmailCodeAction, { ValidateEmailCodeInput } from '../../actions/validate-email-code.action';\r\nimport validateVatAction, { ValidateVatInput } from '../../actions/validate-vat.action';\r\nimport SignUpTermsConditions from './components/sign-up-terms-conditions';\r\nimport { IGetAvailableLanguagesData } from '../../actions/get-available-languages.action';\r\nimport { companySizes } from './components/sizeEnums';\r\nimport { GetAddressSuggestionInput, IGetAddressSuggestionData } from '../../actions/get-address-suggestion.action';\r\n\r\nexport interface IBusinessSignUpExtendedProps extends INosBusinessSignUpProps {\r\n formItems?: IFormItem[];\r\n}\r\n\r\nexport interface Suggestion {\r\n id: string;\r\n poi?: {\r\n name?: string;\r\n };\r\n address?: {\r\n postalCode?: string;\r\n localName?: string;\r\n country?: string;\r\n countryCodeISO3?: string;\r\n streetName?: string;\r\n streetNumber?: string;\r\n municipality?: string;\r\n };\r\n}\r\n\r\nexport interface IBusinessSignUpItem {\r\n wrapper: INodeProps;\r\n isAddressInput?: boolean;\r\n isValidateVatButton?: boolean;\r\n isSectionHeader?: boolean;\r\n id: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input?: React.ReactNode;\r\n url: string;\r\n}\r\n\r\nexport interface IBusinessState {\r\n isReady: boolean;\r\n formItems: IFormItem[];\r\n addressHasErrors: boolean;\r\n showAddressErrors: boolean;\r\n hasSubmitErrors: boolean;\r\n isContinueWithoutVatId: boolean;\r\n isVatValidationClicked: boolean;\r\n isVatCheckExcecuted: boolean;\r\n isEmailVerificationInProcess: boolean;\r\n isEmailVerified: boolean;\r\n isUserVerificationFailed: boolean;\r\n emailValidationCode: string;\r\n isSubmittedPressed: boolean;\r\n isVatCheckFirstClickDone: boolean;\r\n isAcceptedTermsAndConditions: boolean;\r\n isUserExisting: boolean;\r\n hasExistingProspect: boolean;\r\n isVatIdValid: boolean;\r\n suggestions: [];\r\n selectedSuggestion: string;\r\n}\r\n\r\nexport interface IBusinessSignUpLocalAccount {\r\n FormWrapper: INodeProps;\r\n items: IBusinessSignUpItem[];\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessSignUpViewProps {\r\n className: string;\r\n businessSignUp: IModuleProps;\r\n ContainerWrapper: INodeProps;\r\n heading: React.ReactNode;\r\n businessSignUpForm: IBusinessSignUpLocalAccount;\r\n formItems: IFormItem[];\r\n}\r\n\r\nexport interface IFormItem {\r\n id: string;\r\n type: InputType;\r\n label: string;\r\n value: string;\r\n maxChars?: string;\r\n isRequired: boolean;\r\n pattern?: string;\r\n address?: Address;\r\n customClass?: string;\r\n isValid?: boolean;\r\n fieldReference?: React.RefObject;\r\n options?: IBusinessSignUpDropdownOption[];\r\n selectValue?: IBusinessSignUpDropdownOption | string;\r\n number?: string;\r\n}\r\n\r\nexport enum InputType {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\r\n Text = 'text',\r\n Address = 'address',\r\n Email = 'email',\r\n TextArea = 'textarea',\r\n Button = 'button',\r\n Select = 'select',\r\n SectionHeader = 'sectionHeader',\r\n Checkbox = 'checkbox',\r\n Empty = 'empty',\r\n Phone = 'phone',\r\n VAT = 'vat',\r\n EmailVerification = 'emailVerification',\r\n Language = 'language',\r\n VATLabel = 'vatLabel',\r\n Country = 'Country',\r\n CompanyType = 'CompanyType'\r\n}\r\n\r\nexport enum InputID {\r\n FirstName = 'FirstName',\r\n LastName = 'LastName',\r\n Email = 'CompanyEmail',\r\n EmailValidation = 'CompanyEmailValidation',\r\n EmailVerification = 'EmailVerification',\r\n CompanyName = 'CompanyName',\r\n Address = 'CompanyAddress',\r\n PhoneCode = 'PhoneCode',\r\n Phone = 'Phone',\r\n JobTitle = 'JobTitle',\r\n Size = 'CompanySize',\r\n Department = 'Department',\r\n Comment = 'Comment',\r\n VAT = 'VAT',\r\n ValidateVatButton = 'VatButton',\r\n Country = 'Country',\r\n Language = 'Language',\r\n Salutation = 'Salutation',\r\n CompanyType = 'CompanyType',\r\n AdditionalAddressInformation = 'AdditionallAddressInformation',\r\n ContinueWithoutVAT = 'ContinueWithoutVAT',\r\n ExistingCustomerNumber = 'ExistingCustomerNumber',\r\n PersonalSectionHeader = 'PersonalSectionHeader',\r\n EmailSectionHeader = 'EmailSectionHeader',\r\n CompanySectionHeader = 'CompanySectionHeader',\r\n VATIdSectionHeader = 'VATIdSectionHeader',\r\n Empty = 'Empty',\r\n Street = 'Street',\r\n HouseNumber = 'Number',\r\n ZipCode = 'ZipCode',\r\n City = 'City'\r\n}\r\n\r\nexport interface AddressSuggestion {\r\n country: string;\r\n countryCode: string;\r\n countryCodeISO3: string;\r\n countrySecondarySubdivision: string;\r\n countrySubdivision: string;\r\n countrySubdivisionCode: string;\r\n countrySubdivisionName: string;\r\n freeformAddress: string;\r\n localName: string;\r\n municipality: string;\r\n neighbourhood: string;\r\n postalCode: string;\r\n streetName: string;\r\n streetNumber: string;\r\n}\r\n\r\nexport const renderInputSection = (\r\n url: string,\r\n resources: INosBusinessSignUpResources,\r\n inputs: IFormItem[],\r\n className: string,\r\n needToReset: boolean,\r\n onInputChange: (event: React.ChangeEvent) => void,\r\n showErrors: boolean,\r\n telemetryContent: ITelemetryContent,\r\n emailValidationCode: string,\r\n isSubmittedPressed: boolean,\r\n isUserExisting: boolean,\r\n hasExistingProspect: boolean,\r\n languageSlot?: React.ReactNode,\r\n countrySelect?: React.ReactNode,\r\n companyTypeSelect?: React.ReactNode,\r\n phoneSlot?: React.ReactNode,\r\n updateAddress?: (errors: boolean, currAddress?: Address) => void,\r\n onButtonClick?: (inputId: string) => void,\r\n buttonClassName?: string,\r\n isContinueWithoutVatId?: boolean,\r\n isVatValidationClicked?: boolean,\r\n isVatCheckFirstClickDone?: boolean,\r\n onIsContinueWithoutVatIdChange?: () => void,\r\n isEmailVerificationInProcess?: boolean,\r\n isEmailVerified?: boolean,\r\n isUserVerificationFailed?: boolean,\r\n confirmCode?: (code: string) => void,\r\n updateLanguage?: (newChosenLanguage: IGetAvailableLanguagesData) => void,\r\n updateCountry?: (newChosenCountry: IGetAvailableLanguagesData) => void,\r\n updateCompanyType?: (newChosenCompanyType: IGetAvailableLanguagesData) => void,\r\n updatePhone?: (newPhone: string) => void,\r\n updatePhoneCode?: (newPhoneCode: string) => void,\r\n isVatCheckExcecuted?: boolean,\r\n suggestions?: [],\r\n selectedSuggestion?: string,\r\n handleSuggestionSelect?: (suggestion: string) => void,\r\n updateCompanyAddress?: (inputType: string, newValue: string) => void\r\n): IBusinessSignUpItem[] => {\r\n return inputs.map((element, index) => {\r\n const {\r\n id,\r\n type,\r\n label,\r\n maxChars,\r\n isRequired,\r\n pattern,\r\n customClass,\r\n value,\r\n fieldReference,\r\n options,\r\n selectValue,\r\n isValid,\r\n number\r\n } = element;\r\n\r\n const baseSignUpItem: IBusinessSignUpItem = {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, customClass)\r\n },\r\n id,\r\n url,\r\n label: ,\r\n errorMessage: \r\n };\r\n\r\n if (type === InputType.Language) {\r\n if (languageSlot) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(languageSlot as React.ReactElement, {\r\n updateDropdown: updateLanguage,\r\n selectedValue: element.selectValue,\r\n isSubmittedPressed\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else if (type === InputType.Country) {\r\n if (countrySelect) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(countrySelect as React.ReactElement, {\r\n updateDropdown: updateCountry,\r\n selectedValue: element.selectValue,\r\n isSubmittedPressed\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else if (type === InputType.CompanyType) {\r\n if (companyTypeSelect) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(companyTypeSelect as React.ReactElement, {\r\n updateDropdown: updateCompanyType,\r\n selectedValue: element.selectValue,\r\n isSubmittedPressed\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else if (type === InputType.Phone) {\r\n if (phoneSlot) {\r\n baseSignUpItem.isAddressInput = true;\r\n\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(phoneSlot as React.ReactElement, {\r\n updatePhone: updatePhone,\r\n updatePhoneCode: updatePhoneCode,\r\n selectedValue: element.selectValue,\r\n inputValue: element.value,\r\n className,\r\n isSubmittedPressed\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else if (type === InputType.Empty) {\r\n baseSignUpItem.input = ;\r\n } else if (type === InputType.VAT) {\r\n if (onButtonClick && onIsContinueWithoutVatIdChange) {\r\n baseSignUpItem.input = (\r\n onButtonClick(id),\r\n isContinueWithoutVatId,\r\n isVatCheckFirstClickDone,\r\n isVatValidationClicked,\r\n handleIscontinueWithoutVatId: () => onIsContinueWithoutVatIdChange(),\r\n onChange: onInputChange,\r\n isVatValid: isValid,\r\n isVatCheckExcecuted,\r\n isSubmittedPressed\r\n }}\r\n />\r\n );\r\n }\r\n } else if (type === InputType.EmailVerification) {\r\n if (onButtonClick && confirmCode) {\r\n baseSignUpItem.input = (\r\n onButtonClick(InputType.EmailVerification),\r\n onConfirmCode: (code: string) => confirmCode(code),\r\n onChange: onInputChange,\r\n isEmailVerificationInProcess,\r\n isEmailVerified,\r\n isUserVerificationFailed,\r\n emailValidationCode,\r\n resources,\r\n isSubmittedPressed,\r\n isUserExisting,\r\n hasExistingProspect,\r\n url\r\n }}\r\n />\r\n );\r\n }\r\n } else if (type !== InputType.Button && type !== InputType.Select && type !== InputType.SectionHeader) {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n } else if (type === InputType.Button) {\r\n baseSignUpItem.isValidateVatButton = true;\r\n if (onButtonClick) {\r\n baseSignUpItem.input = (\r\n // TODO finish button\r\n onButtonClick(id)\r\n }}\r\n />\r\n );\r\n }\r\n } else if (type === InputType.Select) {\r\n if (options) {\r\n if (typeof selectValue !== 'string') {\r\n baseSignUpItem.input = (\r\n onInputChange(event)}\r\n selectValue={selectValue}\r\n isSubmittedPressed={isSubmittedPressed}\r\n resources={resources}\r\n />\r\n );\r\n }\r\n }\r\n } else if (type === InputType.SectionHeader) {\r\n baseSignUpItem.isSectionHeader = true;\r\n baseSignUpItem.input = ;\r\n }\r\n\r\n return baseSignUpItem;\r\n });\r\n};\r\n\r\n/**\r\n *\r\n * Business Request Form Modules\r\n * Form that a business can use to submit a request to become a partner with Microsoft.\r\n * @extends {React.Component>}\r\n */\r\nclass NosBusinessSignUp extends React.Component {\r\n // Used as default data\r\n public BusinessSignUpDefaultInputs: IFormItem[] = [\r\n {\r\n id: InputID.EmailSectionHeader,\r\n type: InputType.SectionHeader,\r\n label: this.props.resources.emailSectionHeaderLabel,\r\n value: this.props.resources.emailSectionHeader,\r\n isRequired: false,\r\n customClass: 'col-12',\r\n number: '1'\r\n },\r\n {\r\n id: InputID.EmailVerification,\r\n type: InputType.EmailVerification,\r\n label: this.props.resources.emailAddressLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'col-12'\r\n },\r\n {\r\n id: InputID.PersonalSectionHeader,\r\n type: InputType.SectionHeader,\r\n label: this.props.resources.personalSectionHeaderLabel,\r\n value: this.props.resources.personalSectionHeader,\r\n isRequired: false,\r\n customClass: 'col-12',\r\n number: '2'\r\n },\r\n {\r\n id: InputID.FirstName,\r\n type: InputType.Text,\r\n label: this.props.resources.firstNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-12 col-md-6',\r\n maxChars: '60'\r\n },\r\n {\r\n id: InputID.LastName,\r\n type: InputType.Text,\r\n label: this.props.resources.lastNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-12 col-md-6',\r\n maxChars: '60'\r\n },\r\n {\r\n id: InputID.Phone,\r\n type: InputType.Phone,\r\n label: this.props.resources.phoneLabelText,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-12 col-md-6'\r\n },\r\n {\r\n id: InputID.Language,\r\n type: InputType.Language,\r\n value: '',\r\n label: this.props.resources.languageSelectLabel,\r\n isRequired: true,\r\n options: [],\r\n selectValue: { key: '', value: '' },\r\n customClass: 'col-12 col-md-6'\r\n },\r\n {\r\n id: InputID.JobTitle,\r\n type: InputType.Text,\r\n label: this.props.resources.jobTitleLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'col-12 col-md-6'\r\n },\r\n // Empty space for styling\r\n {\r\n id: InputID.Empty,\r\n type: InputType.Empty,\r\n label: '',\r\n value: '',\r\n isRequired: false,\r\n customClass: 'col-12 col-md-6'\r\n },\r\n\r\n // Company Data\r\n {\r\n id: InputID.CompanySectionHeader,\r\n type: InputType.SectionHeader,\r\n label: this.props.resources.companySectionHeaderLabel,\r\n value: this.props.resources.companySectionHeader,\r\n isRequired: false,\r\n customClass: 'col-12 col-md-6',\r\n number: '3'\r\n },\r\n\r\n {\r\n id: InputID.CompanyName,\r\n type: InputType.Text,\r\n label: this.props.resources.companyLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-12',\r\n maxChars: '60'\r\n },\r\n {\r\n id: InputID.Street,\r\n type: InputType.Text,\r\n label: this.props.resources.streetLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-9 col-md-9'\r\n },\r\n {\r\n id: InputID.HouseNumber,\r\n type: InputType.Text,\r\n label: this.props.resources.numberLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-3 col-md-3'\r\n },\r\n {\r\n id: InputID.ZipCode,\r\n type: InputType.Text,\r\n label: this.props.resources.zipLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-3 col-md-2'\r\n },\r\n {\r\n id: InputID.City,\r\n type: InputType.Text,\r\n label: this.props.resources.cityLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'col-9 col-md-4'\r\n },\r\n {\r\n id: InputID.Country,\r\n type: InputType.Country,\r\n value: '',\r\n label: this.props.resources.countrySelect,\r\n isRequired: true,\r\n options: [],\r\n selectValue: { key: '', value: '' },\r\n customClass: 'col-12 col-md-6'\r\n },\r\n {\r\n id: InputID.AdditionalAddressInformation,\r\n type: InputType.Text,\r\n label: this.props.resources.additionalAddressLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'col-12 col-md-12'\r\n },\r\n {\r\n id: InputID.CompanyType,\r\n type: InputType.CompanyType,\r\n value: '',\r\n label: this.props.resources.companyTypeLabel,\r\n isRequired: true,\r\n options: [],\r\n selectValue: { key: '', value: '' },\r\n customClass: 'col-12 col-md-6'\r\n },\r\n {\r\n id: InputID.Size,\r\n type: InputType.Select,\r\n label: this.props.resources.companySizeLabel,\r\n options: companySizes,\r\n value: '',\r\n selectValue: { key: '', value: '' },\r\n isRequired: false,\r\n customClass: 'col-12 col-md-6'\r\n },\r\n {\r\n id: InputID.ExistingCustomerNumber,\r\n type: InputType.Text,\r\n label: this.props.resources.exisitingCustomerNumberLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'col-6'\r\n },\r\n {\r\n id: InputID.VATIdSectionHeader,\r\n type: InputType.SectionHeader,\r\n label: '',\r\n value: this.props.resources.vatIdSectionHeader,\r\n isRequired: false,\r\n customClass: 'col-12',\r\n number: '4'\r\n },\r\n\r\n {\r\n id: InputID.VAT,\r\n type: InputType.VAT,\r\n label: '',\r\n value: '',\r\n isRequired: false,\r\n isValid: false,\r\n customClass: 'col-12'\r\n }\r\n ];\r\n\r\n private readonly formChildReference: React.RefObject = React.createRef();\r\n\r\n private readonly moduleClassName: string = 'nos-business-sign-up';\r\n\r\n private needsToReset: boolean = false;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IBusinessSignUpExtendedProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isContinueWithoutVatId: false,\r\n isVatValidationClicked: false,\r\n isEmailVerificationInProcess: false,\r\n isEmailVerified: false,\r\n isUserVerificationFailed: false,\r\n isReady: false,\r\n isVatCheckExcecuted: false,\r\n isVatCheckFirstClickDone: false,\r\n isAcceptedTermsAndConditions: false,\r\n formItems: this.props.formItems || this._addedReference(),\r\n addressHasErrors: false,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false,\r\n isSubmittedPressed: false,\r\n emailValidationCode: '',\r\n isUserExisting: false,\r\n hasExistingProspect: false,\r\n isVatIdValid: false,\r\n suggestions: [],\r\n selectedSuggestion: ''\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.formChildReference.current?.focus();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const { formItems } = this.state;\r\n const { className, heading } = config;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n businessSignUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, className)\r\n },\r\n ContainerWrapper: {\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: (\r\n \r\n ),\r\n businessSignUpForm: this._renderForm(),\r\n formItems\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle the heading change event.\r\n * @param event - Content Editable Event.\r\n */\r\n public handleHeadingChange = (event: ContentEditableEvent): void => {\r\n this.props.config.heading.text = event.target.value;\r\n };\r\n\r\n private _renderForm(): IBusinessSignUpLocalAccount {\r\n const { config, resources, slots } = this.props;\r\n const {\r\n showAddressErrors,\r\n hasSubmitErrors,\r\n isReady,\r\n formItems,\r\n isContinueWithoutVatId,\r\n isEmailVerificationInProcess,\r\n isEmailVerified,\r\n isUserVerificationFailed,\r\n isVatValidationClicked,\r\n isVatCheckFirstClickDone,\r\n isVatCheckExcecuted,\r\n emailValidationCode,\r\n isSubmittedPressed,\r\n isUserExisting,\r\n hasExistingProspect,\r\n suggestions,\r\n selectedSuggestion\r\n } = this.state;\r\n const {\r\n signUpButtonArialabel,\r\n signUpButtonText,\r\n cancelButtonArialabel,\r\n cancelButtonText,\r\n errorMessage,\r\n partialAddressErrorMessage\r\n } = resources;\r\n const languageSlot = (slots && slots.languageSlot && slots.languageSlot.length > 0 && slots.languageSlot[0]) || undefined;\r\n const countrySelect = (slots && slots.countrySlot && slots.countrySlot.length > 0 && slots.countrySlot[0]) || undefined;\r\n const companyTypeSelect =\r\n (slots && slots.companyTypeSlot && slots.companyTypeSlot.length > 0 && slots.companyTypeSlot[0]) || undefined;\r\n const phoneSlot = (slots && slots.phoneSlot && slots.phoneSlot.length > 0 && slots.phoneSlot[0]) || undefined;\r\n\r\n const successPageURL =\r\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\r\n getUrlSync('home', this.props.context.actionContext);\r\n\r\n const url = this.props.context.request.user.signInUrl || '';\r\n\r\n const handleSuggestionSelect = (suggestionId: string) => {\r\n const foundSuggestion: Suggestion = suggestions.find((suggestion: Suggestion) => suggestion.id === suggestionId) || {\r\n id: ''\r\n };\r\n if (foundSuggestion.address?.country) {\r\n this._updateCountry({\r\n key: foundSuggestion.address.countryCodeISO3 || '',\r\n value: foundSuggestion.address.country\r\n });\r\n }\r\n\r\n this.setState({ selectedSuggestion: suggestionId });\r\n };\r\n\r\n const form = {\r\n FormWrapper: {\r\n className: 'row'\r\n },\r\n items: renderInputSection(\r\n url,\r\n resources,\r\n formItems,\r\n `${this.moduleClassName}__form-item`,\r\n this.needsToReset,\r\n this._onInputChange,\r\n showAddressErrors,\r\n this.telemetryContent,\r\n emailValidationCode,\r\n isSubmittedPressed,\r\n isUserExisting,\r\n hasExistingProspect,\r\n languageSlot,\r\n countrySelect,\r\n companyTypeSelect,\r\n phoneSlot,\r\n this._onAddressChange,\r\n this._onButtonClick,\r\n this.moduleClassName,\r\n isContinueWithoutVatId,\r\n isVatValidationClicked,\r\n isVatCheckFirstClickDone,\r\n this._onIsContinueWithoutVatIdChange,\r\n isEmailVerificationInProcess,\r\n isEmailVerified,\r\n isUserVerificationFailed,\r\n this._confirmEmailCode,\r\n this._updateLanguage,\r\n this._updateCountry,\r\n this._updateCompanyType,\r\n this._updatePhone,\r\n this._updatePhoneCode,\r\n isVatCheckExcecuted,\r\n suggestions,\r\n selectedSuggestion,\r\n handleSuggestionSelect,\r\n this._updateCompanyAddress\r\n ),\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n hasSubmitErrors && ,\r\n showAddressErrors && (\r\n \r\n )\r\n ],\r\n disclaimer: [\r\n \r\n ]\r\n };\r\n\r\n if (this.needsToReset) {\r\n this.needsToReset = false;\r\n }\r\n\r\n return form;\r\n }\r\n\r\n private readonly _onInputChange = (\r\n event: React.ChangeEvent\r\n ): void => {\r\n const AutocompleteSearch = (query: string, type: string, limit: number) => {\r\n if (!limit) {\r\n limit = 8;\r\n }\r\n const handleSearch = async (query: string) => {\r\n if (query.length > 2) {\r\n try {\r\n const actionInput = new GetAddressSuggestionInput(type, query, limit);\r\n const response = await commerceApiRequest(this.props.context.request, 'GetAddressSuggestion', 'post', actionInput);\r\n const responseData = toJS(response).data as IGetAddressSuggestionData;\r\n const addressSuggestions = responseData.results;\r\n if (addressSuggestions.length > 0) {\r\n this.setState({ suggestions: addressSuggestions });\r\n } else {\r\n this.setState({ suggestions: [] });\r\n }\r\n } catch (error) {\r\n console.error('Error fetching search results:', error);\r\n }\r\n }\r\n };\r\n\r\n void handleSearch(query);\r\n };\r\n\r\n const newForm = this.state.formItems;\r\n\r\n let isEmailVerified;\r\n\r\n newForm.forEach(item => {\r\n if (item?.id === event.target?.id) {\r\n item.value = event.target.value;\r\n\r\n AutocompleteSearch(item.value, item.id, this.props.config.azureMapsSuggestionLimit);\r\n\r\n if (item.type === InputType.Select) {\r\n item.selectValue = item.options?.find(el => el.value === event.target.value);\r\n if (item.selectValue?.key) {\r\n item.value = item.selectValue.value;\r\n }\r\n }\r\n\r\n // A change in the VAT makes it invalid so the user has to validate it again.\r\n if (item.id === InputID.VAT) {\r\n this.setState({ isVatValidationClicked: false, isVatCheckExcecuted: false });\r\n item.isValid = false;\r\n }\r\n\r\n // Makes Email invalid again.\r\n if (item?.id === InputID.EmailVerification) {\r\n this.setState({ isEmailVerificationInProcess: false });\r\n this.setState({ isEmailVerified: false });\r\n this.setState({ isUserVerificationFailed: false });\r\n isEmailVerified = false;\r\n }\r\n }\r\n });\r\n\r\n if (event.target?.id === InputID.EmailValidation) {\r\n this.setState({ emailValidationCode: event.target.value });\r\n }\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n\r\n this.setState({\r\n isReady:\r\n event.target.id === InputID.VAT\r\n ? false\r\n : this._isFormReady(isEmailVerified, this.state.isContinueWithoutVatId, this.state.isVatValidationClicked),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private _addedReference(): IFormItem[] {\r\n const newFormFields = this.BusinessSignUpDefaultInputs;\r\n newFormFields[0].fieldReference = this.formChildReference;\r\n return newFormFields;\r\n }\r\n\r\n private _updateCompanyAddress = (inputType: string, newValue: string) => {\r\n const newForm = [...this.state.formItems];\r\n const formItem = newForm.find(item => item.id === inputType);\r\n\r\n if (formItem) {\r\n formItem.value = newValue;\r\n\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n\r\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const addressItem = newForm.find(item => {\r\n return item.type === InputType.Address;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (addressItem) {\r\n addressItem.address = currentAddress;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm,\r\n addressHasErrors: errors,\r\n showAddressErrors: false\r\n });\r\n }\r\n };\r\n\r\n private readonly _onIsContinueWithoutVatIdChange = () => {\r\n this.setState({\r\n isReady: this._isFormReady(this.state.isEmailVerified, !this.state.isContinueWithoutVatId, this.state.isVatValidationClicked),\r\n isContinueWithoutVatId: !this.state.isContinueWithoutVatId\r\n });\r\n };\r\n\r\n private readonly _onIsAcceptedTermsAndConditions = () => {\r\n this.setState(\r\n {\r\n isAcceptedTermsAndConditions: !this.state.isAcceptedTermsAndConditions\r\n },\r\n () => {\r\n this._changeIsAcceptedTermsAndConditions();\r\n }\r\n );\r\n };\r\n\r\n private readonly _changeIsAcceptedTermsAndConditions = () => {\r\n this.setState({\r\n isReady: this._isFormReady(this.state.isEmailVerified, this.state.isContinueWithoutVatId, this.state.isVatValidationClicked)\r\n });\r\n };\r\n\r\n private readonly _onButtonClick = (id: string) => {\r\n if (id === InputType.EmailVerification) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._onVerifyEmailClick();\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._onValidateVATClick();\r\n }\r\n };\r\n\r\n private readonly _onValidateVATClick = async () => {\r\n const vatId = this._getItem(InputID.VAT);\r\n const companyName = this._getItem(InputID.CompanyName);\r\n if (vatId) {\r\n const newFormItems = this.state.formItems;\r\n const actionInput = new ValidateVatInput(vatId.value, companyName?.value ?? '');\r\n await validateVatAction(actionInput, this.props.context.actionContext).then(res => {\r\n newFormItems.forEach(el => {\r\n if (el.id === InputID.VAT) {\r\n el.isValid = res.response.isValid;\r\n }\r\n });\r\n this.setState({\r\n formItems: newFormItems,\r\n isVatCheckExcecuted: res.response.isVatCheckExcecuted ?? false,\r\n isVatIdValid: res.response.isValid\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n isReady: this._isFormReady(this.state.isEmailVerified, this.state.isContinueWithoutVatId, true),\r\n isVatValidationClicked: true,\r\n isVatCheckFirstClickDone: true\r\n });\r\n };\r\n\r\n private readonly _onVerifyEmailClick = async () => {\r\n const emailAddress = this._getItem(InputID.EmailVerification);\r\n if (emailAddress) {\r\n const actionInput = new VerifyEmailInput(emailAddress.value);\r\n await verifyEmailAction(actionInput, this.props.context.actionContext).then(res => {\r\n this.setState({ isEmailVerificationInProcess: res.response, isUserVerificationFailed: false });\r\n });\r\n }\r\n };\r\n\r\n private readonly _confirmEmailCode = async (code: string) => {\r\n const emailAddress = this._getItem(InputID.EmailVerification);\r\n if (emailAddress) {\r\n const actionInput = new ValidateEmailCodeInput(emailAddress.value, code);\r\n await validateEmailCodeAction(actionInput, this.props.context.actionContext).then((res: any) => {\r\n if (!res.validCode) {\r\n this.setState({ isUserVerificationFailed: true });\r\n } else if (res.validCode && res.isUserExisting) {\r\n this.setState({\r\n isUserVerificationFailed: true,\r\n isUserExisting: true\r\n });\r\n } else if (res.validCode && !res.isUserExisting) {\r\n this.setState({\r\n isUserVerificationFailed: res.existingProspect,\r\n isUserExisting: false,\r\n isEmailVerified: !res.existingProspect,\r\n hasExistingProspect: res.existingProspect\r\n });\r\n }\r\n this.setState({\r\n isReady: this._isFormReady(\r\n !this.state.isUserVerificationFailed,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n )\r\n });\r\n });\r\n }\r\n };\r\n\r\n private readonly _updateLanguage = (newChosenLanguage: IGetAvailableLanguagesData) => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const languageItem = newForm.find(item => {\r\n return item.type === InputType.Language;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (languageItem) {\r\n languageItem.value = newChosenLanguage.value;\r\n languageItem.selectValue = newChosenLanguage;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n\r\n private readonly _updateCountry = (newChosenCountry: IGetAvailableLanguagesData) => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const countryItem = newForm.find(item => {\r\n return item.type === InputType.Country;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (countryItem) {\r\n countryItem.value = newChosenCountry.value;\r\n countryItem.selectValue = newChosenCountry;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n private readonly _updateCompanyType = (newChosenCompanyType: IGetAvailableLanguagesData) => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const companyTypeItem = newForm.find(item => {\r\n return item.type === InputType.CompanyType;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (companyTypeItem) {\r\n companyTypeItem.value = newChosenCompanyType.value;\r\n companyTypeItem.selectValue = newChosenCompanyType;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n\r\n private readonly _updatePhone = (newInput: string) => {\r\n const newForm = this.state.formItems;\r\n const phoneItem = newForm.find(item => {\r\n return item.type === InputType.Phone;\r\n });\r\n if (phoneItem) {\r\n phoneItem.value = newInput;\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n private readonly _updatePhoneCode = (newChosenPhoneCode: string) => {\r\n const newForm = this.state.formItems;\r\n const phoneCodeItem = newForm.find(item => {\r\n return item.type === InputType.Phone;\r\n });\r\n\r\n if (phoneCodeItem) {\r\n phoneCodeItem.selectValue = newChosenPhoneCode;\r\n this.setState({\r\n isReady: this._isFormReady(\r\n this.state.isEmailVerified,\r\n this.state.isContinueWithoutVatId,\r\n this.state.isVatValidationClicked\r\n ),\r\n formItems: newForm\r\n });\r\n }\r\n };\r\n\r\n private readonly _isFormReady = (\r\n isEmailVerified?: boolean,\r\n isContinueWithoutVatId?: boolean,\r\n isVatValidationClicked?: boolean\r\n ): boolean => {\r\n const { formItems } = this.state;\r\n for (const currentInput of formItems) {\r\n // Will return FALSE if:\r\n // - input field is required\r\n // IF is address AND addressHasErrors === true\r\n // ELSE value is undefined OR empty\r\n // OR\r\n // - pattern provided and value does not match pattern\r\n // OR\r\n // - accepts terms and conditions checkbox is not checked\r\n\r\n if (currentInput.isRequired) {\r\n if (currentInput.value === undefined || currentInput.value === '') {\r\n return false;\r\n }\r\n if (currentInput.id === InputID.Phone) {\r\n if (currentInput.value === '' || currentInput.selectValue === '+' || currentInput.selectValue === undefined) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (currentInput.id === InputID.VAT) {\r\n if (!(!currentInput.isValid && isVatValidationClicked && !this.state.isVatCheckExcecuted)) {\r\n if (!currentInput.isValid) {\r\n if (!isContinueWithoutVatId) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\r\n return false;\r\n }\r\n }\r\n if (isEmailVerified !== undefined && isEmailVerified === false) {\r\n return false;\r\n } else if (!this.state.isEmailVerified) {\r\n return false;\r\n }\r\n if (!this.state.isAcceptedTermsAndConditions) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n private readonly _onSubmit = (event: React.MouseEvent) => {\r\n this.setState({ isSubmittedPressed: true });\r\n if (this.state.isReady) {\r\n if (this.state.addressHasErrors) {\r\n this.setState({\r\n showAddressErrors: true\r\n });\r\n\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n\r\n // Check for matching id and if not empty\r\n const firstName = this._getItem(InputID.FirstName);\r\n const lastName = this._getItem(InputID.LastName);\r\n const companyName = this._getItem(InputID.CompanyName);\r\n const companyEmail = this._getItem(InputID.EmailVerification);\r\n const jobTitle = this._getItem(InputID.JobTitle);\r\n const companySize = this._getItem(InputID.Size);\r\n const comments = this._getItem(InputID.Comment);\r\n const companyCity = this._getItem(InputID.City);\r\n const companyStreet = this._getItem(InputID.Street);\r\n const companyHouseNumber = this._getItem(InputID.HouseNumber);\r\n const companyZipCode = this._getItem(InputID.ZipCode);\r\n const companyPhone = this._getItem(InputID.Phone);\r\n const country = this._getItem(InputID.Country);\r\n const existingCustomerNumber = this._getItem(InputID.ExistingCustomerNumber);\r\n const language = this._getItem(InputID.Language);\r\n const companyType = this._getItem(InputID.CompanyType);\r\n const additionalAddressInformation = this._getItem(InputID.AdditionalAddressInformation);\r\n const vatId = this._getItem(InputID.VAT);\r\n const isVatIdValid = this.state.isVatIdValid;\r\n const isVatCheckExcecuted = this.state.isVatCheckExcecuted;\r\n\r\n const newCompanyAddress: Address = {\r\n Email: companyEmail?.value,\r\n City: companyCity?.value,\r\n Street: `${companyStreet?.value} ${companyHouseNumber?.value}`,\r\n StreetNumber: companyHouseNumber?.value,\r\n ZipCode: companyZipCode?.value,\r\n Phone: `${companyPhone?.selectValue}${companyPhone?.value}`, // Once it has to be with dropdown, choose below line\r\n ThreeLetterISORegionName: typeof country?.selectValue === 'object' ? country?.selectValue?.key : '',\r\n AddressTypeValue: 9\r\n };\r\n\r\n const ExtensionProperties: CommerceProperty[] = [\r\n {\r\n Key: 'TECExistingCustomerNumber',\r\n Value: {\r\n StringValue: existingCustomerNumber?.value\r\n }\r\n },\r\n {\r\n Key: 'TECLanguage',\r\n Value: {\r\n StringValue: typeof language?.selectValue === 'object' ? language?.selectValue?.key : ''\r\n }\r\n },\r\n {\r\n Key: 'TECCompanyTypeCode',\r\n Value: {\r\n StringValue: typeof companyType?.selectValue === 'object' ? companyType?.selectValue?.key : ''\r\n }\r\n },\r\n {\r\n Key: 'TECAdditionalInfo',\r\n Value: {\r\n StringValue: additionalAddressInformation?.value\r\n }\r\n },\r\n {\r\n Key: 'TECVatId',\r\n Value: {\r\n StringValue: vatId?.value\r\n }\r\n },\r\n {\r\n Key: 'TECVatIdIsValid',\r\n Value: {\r\n BooleanValue: isVatIdValid\r\n }\r\n },\r\n {\r\n Key: 'TECIsVatCheckExcecuted',\r\n Value: {\r\n BooleanValue: isVatCheckExcecuted\r\n }\r\n }\r\n ];\r\n\r\n const newPartner: BusinessPartnerProspect = {\r\n // TODO: Include Vat and change BusinessPartnerProspect\r\n FirstName: firstName && firstName.value,\r\n LastName: lastName && lastName.value,\r\n CompanyName: companyName && companyName.value,\r\n Address: newCompanyAddress,\r\n JobTitle: jobTitle && jobTitle.value,\r\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\r\n Comments: comments && comments.value,\r\n ExtensionProperties: ExtensionProperties\r\n };\r\n\r\n // Prevent the a href in order to execute the async request first (firefox specific workaround)\r\n event.preventDefault();\r\n\r\n // Create business partner request\r\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\r\n .catch(() => {\r\n this.setState({\r\n hasSubmitErrors: true,\r\n isReady: false\r\n });\r\n })\r\n .finally(() => {\r\n const config = this.props.config;\r\n window.location.href =\r\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\r\n getUrlSync('home', this.props.context.actionContext) ||\r\n '';\r\n });\r\n }\r\n };\r\n\r\n private readonly _onCancel = () => {\r\n // Reset values of the form\r\n const cleanForm = this.state.formItems;\r\n cleanForm.forEach(input => {\r\n input.value = '';\r\n });\r\n\r\n // Set reset flag so address input will get reset on next renderInputSection() call\r\n this.needsToReset = true;\r\n\r\n this.setState({\r\n isReady: false,\r\n formItems: cleanForm,\r\n addressHasErrors: true,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\r\n if (isAddress) {\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.address;\r\n });\r\n }\r\n return this.state.formItems.find(item => {\r\n if (item?.id === id) {\r\n if (id === InputID.Phone) {\r\n return item;\r\n }\r\n return item.value !== '';\r\n } else {\r\n return undefined;\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport default NosBusinessSignUp;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './nos-business-sign-up';\r\n\r\nconst NosBusinessSignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input,\r\n isAddressInput,\r\n isValidateVatButton,\r\n isSectionHeader\r\n}) => {\r\n // Hide label and error message if rendering address section\r\n return (\r\n \r\n {!isValidateVatButton && !isSectionHeader && label}\r\n {!isAddressInput && errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst NosBusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {disclaimer}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n
\r\n {button}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NosBusinesSignUpView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../../nos-business-sign-up';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value: string;\r\n pattern?: string;\r\n className: string;\r\n options?: any[];\r\n onChangeInput: (event: any, value: string, type: string) => void;\r\n selectedValue: any;\r\n isSubmittedPressed: boolean;\r\n}\r\n\r\nconst SignUpInputPhonePicker: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n onChangeInput,\r\n options,\r\n selectedValue = '+',\r\n isSubmittedPressed\r\n}) => {\r\n const handlePhoneCodeChange = (event: any, value: string, select: string) => {\r\n const re = /^[\\+]+[0-9\\b]+$/;\r\n const replus = /^[\\+]+$/;\r\n if (re.test(event.target.value) || replus.test(event.target.value)) {\r\n onChangeInput(event, value, select);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n handlePhoneCodeChange(event, value, 'select')}\r\n />\r\n
\r\n
\r\n onChangeInput(event, value, 'input')}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignUpInputPhonePicker;\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 * INosBusinessSignUp containerModule 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\nimport * as React from 'react';\r\n\r\nexport interface INosBusinessSignUpConfig extends Msdyn365.IModuleConfig {\r\n heading: IHeadingData;\r\n confirmationLink: IConfirmationLinkData;\r\n className?: string;\r\n clientRender?: boolean;\r\n azureMapsSuggestionLimit: number;\r\n}\r\n\r\nexport interface INosBusinessSignUpResources {\r\n firstNameLabel: string;\r\n firstNameMaxLength: string;\r\n salutationLabel: string;\r\n lastNameLabel: string;\r\n lastNameMaxLength: string;\r\n emailAddressLabel: string;\r\n phoneLabelText: string;\r\n phoneMaxLength: string;\r\n companyLabel: string;\r\n companyMaxLength: string;\r\n companyAddressLabel: string;\r\n companyAddressMaxLength: string;\r\n jobTitleLabel: string;\r\n jobTitleMaxLength: string;\r\n departmentLabel: string;\r\n departmentMaxLength: string;\r\n companySizeLabel: string;\r\n companySizeMaxLength: string;\r\n commentLabel: string;\r\n commentMaxLength: string;\r\n errorMessage: string;\r\n signUpButtonText: string;\r\n signUpButtonArialabel: string;\r\n cancelButtonText: string;\r\n cancelButtonArialabel: string;\r\n requiredFieldMissingSummaryError: string;\r\n requiredFieldMissingError: string;\r\n fieldIncorrectError: string;\r\n partialAddressErrorMessage: string;\r\n vatLabel: string;\r\n vat: string;\r\n vatValidateButton: string;\r\n vatRevalidateButton: string;\r\n withoutVatCheckbox: string;\r\n countrySelect: string;\r\n languageSelectLabel: string;\r\n companyTypeLabel: string;\r\n additionalAddressLabel: string;\r\n emailSectionHeader: string;\r\n emailSectionHeaderLabel: string;\r\n vatIdSectionHeader: string;\r\n vatIdSectionHeaderLabel: string;\r\n personalSectionHeader: string;\r\n personalSectionHeaderLabel: string;\r\n companySectionHeader: string;\r\n companySectionHeaderLabel: string;\r\n exisitingCustomerNumberLabel: string;\r\n verifyEmailLabel: string;\r\n streetLabel: string;\r\n numberLabel: string;\r\n zipLabel: string;\r\n cityLabel: string;\r\n vatIdValid: string;\r\n vatIdNotValid: string;\r\n continueWithoutVatOrValidate: string;\r\n youWillBeChargedVat: string;\r\n uncheckToContinueWithValidVat: string;\r\n emailVerified: string;\r\n emailVerificationFailed: string;\r\n verificationPending: string;\r\n isUserExisting: string;\r\n emailCodeHasBeenSent: string;\r\n verifyEmailCodeLabel: string;\r\n pleaseEnterVerificationCode: string;\r\n select: string;\r\n sendEmailVerificationLabel: string;\r\n confirmEmailCodeButtonLabel: string;\r\n vatIdFailed: string;\r\n termsAndConditions: string;\r\n termsAndConditionsValidate: string;\r\n signInLinkText: 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 IConfirmationLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface INosBusinessSignUpProps extends Msdyn365.IModule {\r\n resources: INosBusinessSignUpResources;\r\n config: INosBusinessSignUpConfig;\r\n slots: {\r\n languageSlot: React.ReactNode[];\r\n countrySlot: React.ReactNode[];\r\n companyTypeSlot: React.ReactNode[];\r\n phoneSlot: React.ReactNode[];\r\n };\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { INosPhonePickerData } from './nos-phone-picker.data';\r\nimport { INosPhonePickerProps } from './nos-phone-picker.props.autogenerated';\r\nimport SignUpInputPhonePicker from './components/sign-up-input-phone';\r\nimport { IGetAvailableCountriesData } from '../../actions/get-available-countries.action';\r\nimport { InputType } from '../nos-business-sign-up';\r\n\r\n/**\r\n * Interface for IPhonePickerExtendedProps.\r\n */\r\nexport interface IPhonePickerExtendedProps extends INosPhonePickerProps {\r\n updatePhone(phone: string): void;\r\n updatePhoneCode(newSelectValue: string): void;\r\n selectedValue: string;\r\n inputValue: string;\r\n className: string;\r\n isSubmittedPressed: boolean;\r\n}\r\n\r\n/**\r\n * Interface for IPhonePickerState.\r\n */\r\nexport interface IPhonePickerState {\r\n phoneId?: string;\r\n}\r\n\r\n/**\r\n * Interface for IPhonePickerViewProps.\r\n */\r\nexport interface IPhonePickerViewProps {\r\n className: string;\r\n PhonePicker: IModuleProps;\r\n phoneComponent: any;\r\n}\r\n\r\n/**\r\n *\r\n * Address component.\r\n * @extends {React.Component, IPhonePickerState>}\r\n */\r\nclass NosPhonePicker extends React.Component {\r\n @observable private availablePhones?: IGetAvailableCountriesData[];\r\n\r\n public constructor(props: IPhonePickerExtendedProps) {\r\n super(props);\r\n }\r\n\r\n public componentDidMount(): void {\r\n // Initializing data props\r\n this._dataInitialize(this.props);\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IPhonePickerExtendedProps, nextState: IPhonePickerState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { renderView, config, selectedValue } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n className: config.className,\r\n PhonePicker: {\r\n moduleProps: this.props,\r\n className: classnames('ms-business-account-address', config.className)\r\n },\r\n phoneComponent: this._initializeDropdown(this.availablePhones ?? [], selectedValue)\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private readonly _initializeDropdown = (availablePhones: IGetAvailableCountriesData[], selectedValue: string) => {\r\n return (\r\n , inputValue: string, type: string) =>\r\n this._onInputChange(event, inputValue, type)\r\n }\r\n />\r\n );\r\n };\r\n\r\n private readonly _onInputChange = (event: React.ChangeEvent, inputValue: string, type: string) => {\r\n if (type === 'select') {\r\n this.props.updatePhoneCode(event.target.value);\r\n // }\r\n } else {\r\n this.props.updatePhone(event.target.value);\r\n }\r\n };\r\n\r\n /**\r\n * Method data initialization.\r\n * @param props -The account management props.\r\n */\r\n private readonly _dataInitialize = (props: IPhonePickerExtendedProps): void => {\r\n const { data } = props;\r\n\r\n reaction(\r\n () => data.availableCountries.result,\r\n () => {\r\n this.availablePhones = data.availableCountries.result ?? [];\r\n }\r\n );\r\n };\r\n}\r\n\r\nexport default NosPhonePicker;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IPhonePickerViewProps } from './nos-phone-picker';\r\n\r\n/**\r\n * Update Component.\r\n * @param param0 - Root param.\r\n * @param param0.phoneComponent\r\n * @returns - Node.\r\n */\r\nconst PhonePickerNode: React.FC = ({ phoneComponent }) => {\r\n return {phoneComponent};\r\n};\r\n\r\n/**\r\n * View Component.\r\n * @param props - Props.\r\n * @returns - PhonePicker Module.\r\n */\r\nconst NosPhoneTypePickerView: React.FC = props => {\r\n const { PhonePicker, phoneComponent } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NosPhoneTypePickerView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { INosTextBlockProps, INosTextBlockConfig, ILinksData } from './nos-text-block.props.autogenerated';\r\n\r\nexport interface INosTextBlockViewProps extends INosTextBlockProps {\r\n paragraph?: React.ReactNode;\r\n pictogram?: React.ReactNode;\r\n className?: string;\r\n clientRender?: boolean;\r\n links?: ILinksData[];\r\n}\r\n\r\n/**\r\n *\r\n * TextBlock component.\r\n */\r\nclass NosTextBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { layout, paragraph, pictogram, links, className } = this.props.config;\r\n const text = paragraph && (\r\n \r\n );\r\n\r\n const icon = pictogram &&
;\r\n\r\n const textBlockViewProps = {\r\n ...this.props,\r\n layout: layout,\r\n paragraph: text,\r\n pictogram: icon,\r\n links: links,\r\n className: classnames('nos-text-block', className)\r\n };\r\n return this.props.renderView(textBlockViewProps) as React.ReactElement;\r\n }\r\n\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\r\n}\r\nexport default NosTextBlock;\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 * INosTextBlock 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 alignment {\r\n left = 'left',\r\n right = 'right',\r\n center = 'center'\r\n}\r\n\r\nexport const enum fontsize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n extralarge = 'extralarge'\r\n}\r\n\r\nexport const enum layout {\r\n row = 'row',\r\n column = 'column'\r\n}\r\n\r\nexport const enum theme {\r\n corporate = 'corporate',\r\n tecdoc = 'tecdoc',\r\n teccom = 'teccom'\r\n}\r\n\r\nexport interface INosTextBlockConfig extends Msdyn365.IModuleConfig {\r\n paragraph?: Msdyn365.RichText;\r\n pictogram?: string;\r\n links?: ILinksData[];\r\n alignment?: alignment;\r\n fontsize?: fontsize;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout?: layout;\r\n theme?: theme;\r\n}\r\n\r\nexport const enum LinksButtonType {\r\n primaryDark = 'primaryDark',\r\n primaryLight = 'primaryLight',\r\n secondaryDark = 'secondaryDark',\r\n secondaryLight = 'secondaryLight'\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 buttonType?: LinksButtonType;\r\n}\r\n\r\nexport interface INosTextBlockProps extends Msdyn365.IModule {\r\n config: INosTextBlockConfig;\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { INosTextBlockViewProps } from './nos-text-block';\r\nimport { LinksButtonType } from './nos-text-block.props.autogenerated';\r\n\r\nconst NosTextBlockView: React.FC = props => {\r\n const { links } = props.config;\r\n return (\r\n
\r\n
\r\n {props.pictogram}\r\n {props.paragraph}\r\n
\r\n {links && (\r\n
\r\n {links.map((link, index) => {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default NosTextBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\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 */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n"],"names":["SignUpError","_ref","id","className","type","message","errorClassName","React","classnames","role","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","isSubmittedPressed","suggestions","selectedSuggestion","onSuggestionSelect","updateCompanyAddress","inputValue","setInputValue","showSuggestion","setShowSuggestion","autoSuggestFields","InputID","CompanyName","Street","listRef","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","_foundSuggestion$poi","_foundSuggestion$addr","_foundSuggestion$addr2","_foundSuggestion$addr3","_foundSuggestion$addr6","_foundSuggestion$addr9","_foundSuggestion$addr10","_foundSuggestion$addr11","_foundSuggestion$addr12","_foundSuggestion$addr13","undefined","length","foundSuggestion","find","suggestion","_foundSuggestion$poi2","_foundSuggestion$poi3","poi","name","ZipCode","address","postalCode","City","_foundSuggestion$addr4","_foundSuggestion$addr5","localName","municipality","_foundSuggestion$addr7","_foundSuggestion$addr8","streetName","HouseNumber","streetNumber","InputType","TextArea","selectSuggestion","fieldValue","addressId","arguments","suggestionElement","addressDisplay","key","tabIndex","onClick","onKeyDown","formatAddress","parts","filter","part","join","trim","e","includes","ref","map","_suggestion$poi","_suggestion$address","_suggestion$address2","_suggestion$address3","_suggestion$address4","_suggestion$poi2","_suggestion$address5","_suggestion$address6","_suggestion$address7","_suggestion$address8","_suggestion$address9","suggestionOption","SignUpLabel","forId","text","htmlFor","SignUpButton","ariaLabel","telemetryContent","disabled","link","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","Object","assign","href","options","selectValue","resources","selected","select","option","header","sectionLabel","number","buttonClassName","handleIscontinueWithoutVatId","isContinueWithoutVatId","isVatValidationClicked","isVatCheckFirstClickDone","isVatValid","isVatCheckExcecuted","checked","withoutVatCheckbox","vatLabel","continueWithoutVatOrValidate","vatRevalidateButton","vatValidateButton","vatIdFailed","vatIdValid","uncheckToContinueWithValidVat","dangerouslySetInnerHTML","__html","vatIdNotValid","youWillBeChargedVat","onConfirmCode","isEmailVerificationInProcess","isEmailVerified","isUserVerificationFailed","emailValidationCode","isUserExisting","hasExistingProspect","url","sendEmailVerificationLabel","email","test","emailVerified","pleaseEnterVerificationCode","verifyEmailCodeLabel","EmailValidation","emailCodeHasBeenSent","verificationPending","emailVerificationFailed","signInLinkText","confirmEmailCodeButtonLabel","isAcceptedTermsAndConditions","termsAndConditions","termsAndConditionsValidate","Sizes","companySizes","Single","Small","Medium","Big","Giant","renderInputSection","inputs","needToReset","onInputChange","showErrors","languageSlot","countrySelect","companyTypeSelect","phoneSlot","updateAddress","onButtonClick","onIsContinueWithoutVatIdChange","confirmCode","updateLanguage","updateCountry","updateCompanyType","updatePhone","updatePhoneCode","handleSuggestionSelect","element","index","label","maxChars","customClass","isValid","baseSignUpItem","wrapper","errorMessage","Language","isAddressInput","input","updateDropdown","selectedValue","splice","Country","CompanyType","Phone","Empty","VAT","SignUpVAT","EmailVerification","SignUpEmailVerification","code","Select","SectionHeader","isValidateVatButton","BusinessSignUpDropdown","isSectionHeader","NosBusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","EmailSectionHeader","emailSectionHeaderLabel","emailSectionHeader","emailAddressLabel","PersonalSectionHeader","personalSectionHeaderLabel","personalSectionHeader","FirstName","Text","firstNameLabel","LastName","lastNameLabel","phoneLabelText","languageSelectLabel","JobTitle","jobTitleLabel","CompanySectionHeader","companySectionHeaderLabel","companySectionHeader","companyLabel","streetLabel","numberLabel","zipLabel","cityLabel","AdditionalAddressInformation","additionalAddressLabel","companyTypeLabel","Size","companySizeLabel","ExistingCustomerNumber","exisitingCustomerNumberLabel","VATIdSectionHeader","vatIdSectionHeader","formChildReference","moduleClassName","needsToReset","handleHeadingChange","config","heading","_onInputChange","_event$target2","AutocompleteSearch","query","limit","async","actionInput","GetAddressSuggestionInput","response","commerceApiRequest","context","request","addressSuggestions","toJS","data","results","setState","error","console","handleSearch","newForm","state","formItems","forEach","item","_event$target","_item$options","_item$selectValue","azureMapsSuggestionLimit","el","isReady","_isFormReady","hasSubmitErrors","_updateCompanyAddress","inputType","newValue","formItem","_onAddressChange","errors","currentAddress","addressItem","Address","addressHasErrors","showAddressErrors","_onIsContinueWithoutVatIdChange","_onIsAcceptedTermsAndConditions","_changeIsAcceptedTermsAndConditions","_onButtonClick","_onVerifyEmailClick","_onValidateVATClick","vatId","_getItem","companyName","_companyName$value","newFormItems","ValidateVatInput","validateVatAction","actionContext","then","res","_res$response$isVatCh","isVatIdValid","emailAddress","VerifyEmailInput","verifyEmailAction","_confirmEmailCode","ValidateEmailCodeInput","validateEmailCodeAction","validCode","existingProspect","_updateLanguage","newChosenLanguage","languageItem","_updateCountry","newChosenCountry","countryItem","_updateCompanyType","newChosenCompanyType","companyTypeItem","_updatePhone","newInput","phoneItem","_updatePhoneCode","newChosenPhoneCode","phoneCodeItem","currentInput","match","_onSubmit","_country$selectValue","_language$selectValue","_companyType$selectVa","preventDefault","firstName","lastName","companyEmail","jobTitle","companySize","comments","Comment","companyCity","companyStreet","companyHouseNumber","companyZipCode","companyPhone","country","existingCustomerNumber","language","companyType","additionalAddressInformation","newCompanyAddress","Email","StreetNumber","ThreeLetterISORegionName","AddressTypeValue","ExtensionProperties","Key","Value","StringValue","BooleanValue","newPartner","CompanySize","Comments","createProspectAsync","callerContext","catch","finally","window","location","confirmationLink","linkUrl","destinationUrl","getUrlSync","_onCancel","cleanForm","isAddress","_addedReference","getTelemetryObject","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","focus","shouldComponentUpdate","nextProps","nextState","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","countrySlot","companyTypeSlot","successPageURL","user","signInUrl","form","FormWrapper","items","suggestionId","countryCodeISO3","buttons","disclaimer","SignUpTermsConditions","newFormFields","NosBusinessSignUpItem","Node","Module","button","onChangeInput","placeholder","handlePhoneCodeChange","HeadingTag","NosPhonePicker","_initializeDropdown","availablePhones","_this$props$className","SignUpInputPhonePicker","_dataInitialize","reaction","availableCountries","result","_data$availableCountr","_this$availablePhones","PhonePicker","phoneComponent","__decorate","observable","PhonePickerNode","NosTextBlock","handleTextChange","paragraph","layout","pictogram","links","Msdyn365","icon","textBlockViewProps","alignment","fontsize","theme","LinksButtonType","renderModuleAttributes","buttonType","primaryDark","primaryLight","secondaryDark","secondaryLight","linkText","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","ImageList","handleParagraphChange","images","_renderImageListItems","imageList","defaultImageSettings","viewports","xs","q","w","h","lg","xl","lazyload","disableLazyLoad","_image$imageSettings","_link$linkText","image","imageProps","gridSettings","imageSettings","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","openInNewTab","loadFailureBehavior","linkAltText","linkAriaLabel","linkOpenInNewTab","_heading$tag","imageListTitle","tag","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","src","altText","InteractiveFeatureCollection","_telemetryContent","title","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","ArrayExtensions","hasElements","editableLinks","contentAction","etext","editableLink","additionalProperties","onTelemetryClick","push","onTextChange","InteractiveFeatureItem","handleLinkTextChange","linkIndex","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","sm","md","moduleType","typeName","imagePropertyName","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel"],"sourceRoot":""}