{"version":3,"sources":["webpack:///./src/themes/stemichelle-new/views/smwe-sign-up.view.tsx?3a72","webpack:///src/modules/site-picker/site-picker.view.tsx?dcff","webpack:///./src/themes/erath/views/footer-item.view.tsx?82a3","webpack:///./src/modules/smwe-sign-up/smwe-sign-up.view.tsx?c609","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?0029","webpack:///src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?d307","webpack:///src/modules/account-invoice-tile/account-invoice-tile.tsx?9a78","webpack:///src/modules/aad-generic/aad-generic.view.tsx?ecad","webpack:///./src/themes/stemichelle/views/footer-item.view.tsx?2ab1","webpack:///./src/themes/columbiacrest/views/footer-item.view.tsx?6ad6","webpack:///src/modules/aad-generic/aad-generic.tsx?d537","webpack:///./src/themes/patzhall/views/footer-item.view.tsx?784b","webpack:///./src/themes/north-star/views/footer-item.view.tsx?57e5","webpack:///./src/dataActions/wine-club-signup.ts?d478","webpack:///./src/modules/wine-club/wine-club-confirmation.tsx?9cb0","webpack:///./src/modules/wine-club/wine-club-input-radio-checkbox.tsx?77c2","webpack:///./src/modules/wine-club/wine-club-countries.data.ts?310d","webpack:///./src/modules/wine-club/wine-club-input.data.ts?828d","webpack:///./src/modules/wine-club/wine-club-membership.tsx?a1b2","webpack:///./src/modules/wine-club/wine-club-input-dropdown.tsx?26e5","webpack:///./src/modules/wine-club/wine-club-input-text.tsx?f4a5","webpack:///./src/modules/wine-club/wine-club-shipping.tsx?14d9","webpack:///./src/modules/wine-club/wine-club.tsx?6363","webpack:///./src/themes/colsolare/views/footer-item.view.tsx?ffa1","webpack:///./src/themes/blend/views/smwe-sign-up.view.tsx?86b8","webpack:///./src/modules/promo-banner-cookie/promo-banner-cookie.tsx?d3ce","webpack:///./src/themes/intrinsic-wine-co/views/footer-item.view.tsx?8e35","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-button.tsx?4965","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-error.tsx?9c17","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-input.tsx?70ac","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-label.tsx?57c5","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-loading-icon.tsx?050e","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-loading-message.tsx?b5fb","webpack:///./src/modules/smwe-sign-up/components/smwe-sign-up-success.tsx?b5ca","webpack:///./src/modules/smwe-sign-up/smwe-sign-up.tsx?7a58","webpack:///./src/themes/spring-valley-vineyard/views/footer-item.view.tsx?dbeb","webpack:///./src/themes/generazioni/views/footer-item.view.tsx?8252","webpack:///./src/themes/conn-creek/views/footer-item.view.tsx?c6e3","webpack:///./src/modules/content-block-with-title/content-block-with-title.tsx?ceeb","webpack:///src/modules/footer-item/footer-item.tsx?f8b4","webpack:///src/modules/site-picker/site-picker.tsx?35ca","webpack:///src/modules/account-invoice-tile/account-invoice-tile.view.tsx?4620","webpack:///./src/themes/elicit/views/smwe-sign-up.view.tsx?3000","webpack:///./src/themes/enoteca/views/footer-item.view.tsx?008e","webpack:///src/modules/footer-item/footer-item.view.tsx?235e","webpack:///./src/themes/fth/views/smwe-sign-up.view.tsx?786b","webpack:///./src/themes/stagsleap/views/footer-item.view.tsx?fb57","webpack:///./src/themes/fth/views/footer-item.view.tsx?9800"],"names":["SignUpItem","_ref","wrapper","label","errorMessage","input","React","Node","Object","assign","SignUpEmailVerification","_ref2","email","buttonWrapper","buttons","successMessage","map","message","button","SignUpLoading","_ref4","modal","modalBody","icon","_showPassword","event","newPasswordState","document","getElementById","reenterPasswordState","iconElements","getElementsByClassName","type","i","length","className","SignUpView","props","signUp","viewState","loading","defaultAADConainer","aadConainer","heading","signUpLocalAccount","Module","isShowLoading","_ref3","localAccount","items","emailVerification","disclaimer","pwRequirements","item","isNewPassword","key","isRequired","role","onClick","error","index","LocalAccount","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","renderSiteOptions","_renderMobileView","_props$config$heading","SitePickerMenu","SitePickerMenuSpan","config","text","siteOptionsState","_renderDesktopView","FooterItemView","constructor","_formatLinkData","Link","undefined","href","path","destinationUrl","newUrl","URL","this","context","request","url","requestUrl","render","FooterItem","_renderElement","HeadingContainer","linkText","image","link","ariaLabel","tabIndex","onKeyPress","AccountInvoiceTileDescription","description","_mapEditableLinks","linkdata","telemetryContent","editableLinks","payLoad","getPayloadObject","forEach","contentAction","etext","attributes","getTelemetryAttributes","editableLink","linkUrl","openInNewTab","additionalProperties","push","AccountInvoiceTileLinks","links","requestContext","onTextChange","Msdyn365","editProps","AccountInvoiceTile","super","handleHeadingChange","target","value","handleLinkTextChange","linkIndex","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_data$customerBalance","data","resources","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","result","OpenInvoiceBalance","toFixed","format","viewProps","_objectSpread","moduleProps","classnames","tag","onEdit","LinksComponent","renderView","aadGeneric","aadAPIConainer","AadGeneric","moduleClassName","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","shouldComponentUpdate","nextProps","id","pathName","linkChecker","_getPathNameFromURL","toString","location","pathname","linkURL","_unused","split","WineClubInput","shouldCacheOutput","getCacheKey","getCacheObjectType","dataCacheType","createWineClubInput","inputData","createWineClubSignUpInput","WineClubId","wineClubId","AddressEmail","addressEmail","AddressFirstName","addressFirstName","AddressLastName","addressLastName","AddressLine1","addressLine1","AddressLine2","addressLine2","AddressPhone","addressPhone","City","city","Country","country","CustomerId","customerId","DeliveryPreference","deliveryPreference","IsGifted","isGifted","State","state","Zipcode","zipcode","async","wineClubAction","ctx","execute","action","WineClubConfirmation","shippingAddress","fields","wineClub_confirmationHeading","wineClub_confirmationText","wineClub_confirmationShippingAddressHeading","firstName","lastName","address1","address2","zip","phone","wineClub_buttonBack","renderButton","toggleStep","wineClub_buttonSignup","renderSubmit","__decorate","observer","WineClubInputRadioCheckbox","group","checked","onChange","handleChange","countries","getInputs","wineClub_membershipTypeLabel","required","wineClub_membershipTypeOptionIsNotGifted","wineClub_membershipTypeOptionIsGifted","validation","validate","wineClub_membershipTypeValidationMessage","match","WineClubMembership","_validateFields","bind","wineClub_membershipHeading","wineClub_membershipText","_renderMembershipInputs","renderValidation","wineClub_membershipErrorMessage","wineClub_buttonNext","handleNext","membershipInput","find","option","isChecked","membership","resetAddressSelect","WineClubInputDropdown","disabled","_renderOptions","isSelected","WineClubInputText","onBlur","_blurInput","validateInput","observable","WineClubShipping","includes","wineClub_shippingHeading","wineClub_shippingTextIsGifted","wineClub_shippingText","_renderAddressDropdown","isAddressSelected","selectedAddress","_renderShippingForm","wineClub_shippingErrorMessage","_renderAddresses","_renderSelectedAddress","customerAddresses","address","FullAddress","showForm","wineClub_shippingSelectEnter","wineClub_shippingSelectLabel","handleAddressChange","Name","Street","ZipCode","ThreeLetterISORegionName","Phone","_renderShippingInputs","_renderShippingCountry","shippingInputs","filter","shippingInputsIsGifted","_getValue","invalidInput","emptyInput","WineClub","fieldsDefault","addressMap","moduleData","serverData","submitSuccess","submitFailure","step","components","shipping","confirmation","customerEmail","user","emailAddress","_renderValidation","_renderButton","_renderSubmit","_toggleStep","_handleChange","_handleAddressChange","_resetAddressSelect","_handleNext","_handleSubmit","StepComponent","_renderStep","classname","_renderHeading","isAuthenticated","onSubmit","signInUrl","wineClub_formSuccess","_renderText","failureMessage","Heading","headingTag","toggle","getAttribute","_handleAddressUpdate","_handleAddressClear","_handleAssignEmail","addressMapContent","fullNameArray","slice","join","preventDefault","clubId","customerAccountNumber","actionContext","then","response","Message","wineClub_formFailure","catch","Error","JSON","stringify","PromoBannerCookie","bannerDismissed","_closeModal","bodyClass","_isCookieSet","body","classList","add","hostname","cookie","cookies","setConsentCookie","console","log","style","backgroundColor","_renderContent","dismissible","_setCookie","cookieMaxAge","set","maxAge","promoBannerCookie","get","remove","_target","color","textColor","_renderTitle","RichTextComponent","title","SignUpButton","Button","SignUpError","errorClassName","GetMaxLength","maxLength","parsedMaxLength","parseInt","isNaN","SignUpInput","pattern","SignUpLabel","forId","htmlFor","SignUpLoadingIcon","SignUpLoadingMessage","SignUpSuccess","successClassName","SignUp","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","isInitialized","obj","ID","toLowerCase","emailRegex","PAT","isEmailVerificationRequried","VERIFY","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","errorMessages","required_field","requiredFieldMissingError","passwordDefaultRegex","emailEntered","componentDidUpdate","Modal","isOpen","ModalBody","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","loadingMessage","display","_renderLocalAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","emailAddressLabelText","passwordLabelText","confirmPasswordLabelText","verificationCodeLabelText","SignUpButtonComponent","sendCodeButtonAriaLabel","_isFormValid","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","passwordEntryMismatchError","requiredFieldMissingSummaryError","fieldIncorrectError","labelText","SignUpLabelComponent","SignUpInputComponent","e","ContentBlockWithTitle","slots","_renderLinkedTitle","dangerouslySetInnerHTML","getRichTextHtml","contentBlockNoHeadings","_renderSlotItems","slot","handleTextChange","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","ItemContainer","onTelemetryClick","ariaHiddenAttr","src","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","shouldSkipToMainImage","PureComponent","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","current","contains","_sitePickerMenuNode","_resetSiteOptionsState","focus","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","createRef","_renderSiteOptions","_updateViewport","viewport","device","Type","isMobile","_document","_document2","MsDyn365","isBrowser","addEventListener","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","_document3","_document4","removeEventListener","_this$props$config$he","_this$props$config$he2","ref","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","_renderSitePickerImage","expandSiteOptionsState","setState","currentTarget","isConsentGiven","cookieConfig","defaultImageSettings","sm","md","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","createElement","siteRedirectUrl","siteName","Image","altText","_getViewport","innerWidth","computed"],"mappings":"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F,qBACpBnJ,KAAKxD,MAAM4M,aACPhG,EAAU+F,oBACV,WACAnJ,KAAKxD,MAAM6M,WACX,yBAGPjG,GAAaA,EAAUkG,uBACpBtJ,KAAKxD,MAAM+M,aACPnG,EAAUkG,sBACV,iCAxC9Bf,EAAoBiB,YAAA,CADzBC,KACKlB,GAmDSA,QCnDf,IAAMmB,EAAN,cAAyCjP,YAM9B4F,SACH,OACI5F,gBAAA,OAAK6B,UAAU,cACX7B,gBAAA,SAAO6B,UAAU,oBACb7B,gBAAA,SACI6B,UAAU,mBACVH,KAAM6D,KAAKxD,MAAML,KACjBiJ,GAAIpF,KAAKxD,MAAM4I,GAAE,aACLpF,KAAKxD,MAAMmN,OAAS3J,KAAKxD,MAAMmN,MAC3ChH,MAAO3C,KAAKxD,MAAMmG,MAClBiH,QAAS5J,KAAKxD,MAAMoN,QACpBC,SAAU7J,KAAKxD,MAAMsN,eAExB9J,KAAKxD,MAAMmG,UAnB1B+G,EAA0BF,YAAA,CAD/BC,KACKC,GA2BSA,Q,oBC3CR,MAAMK,EAAsB,CAC/B,cACA,gBACA,UACA,UACA,iBACA,UACA,SACA,WACA,aACA,sBACA,YACA,UACA,QACA,mBACA,YACA,UACA,aACA,UACA,UACA,8BACA,WACA,UACA,UACA,SACA,yBACA,UACA,SACA,UACA,UACA,qBACA,WACA,SACA,iCACA,SACA,WACA,eACA,UACA,WACA,2BACA,SACA,qBACA,iBACA,2BACA,OACA,QACA,yBACA,mBACA,gBACA,WACA,UACA,QACA,wCACA,eACA,aACA,UACA,OACA,UACA,SACA,iBACA,UACA,eACA,WACA,WACA,qBACA,UACA,sBACA,cACA,oBACA,UACA,UACA,WACA,mBACA,iBACA,eACA,UACA,SACA,gBACA,wCACA,8BACA,iBACA,SACA,UACA,UACA,QACA,YACA,SACA,+BACA,UACA,aACA,OACA,mCACA,YACA,WACA,gBACA,4BACA,SACA,QACA,mCACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,mBACA,cACA,SACA,QACA,sBACA,UACA,QACA,SACA,SACA,aACA,iBACA,WACA,SACA,aACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,oBACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,6BACA,UACA,SACA,WACA,aACA,aACA,sBACA,aACA,UACA,UACA,QACA,cACA,uBACA,gBACA,cACA,YACA,iBACA,wBACA,OACA,iBACA,wBACA,cACA,SACA,OACA,WACA,QACA,wBACA,kBACA,mBACA,WACA,OACA,cACA,WACA,SACA,WACA,cACA,QACA,UACA,UACA,SACA,SACA,QACA,SACA,aACA,wBACA,eACA,mBACA,SACA,aACA,eACA,qBACA,WACA,WACA,kBACA,UACA,eACA,gBACA,cACA,QACA,+BACA,iBACA,aACA,WACA,0BACA,aACA,gCACA,QACA,WACA,yBACA,YACA,SACA,cACA,QACA,eACA,SACA,WACA,WACA,cACA,gBACA,UACA,gBACA,sBACA,UACA,SACA,eACA,2BACA,SACA,SACA,UACA,uBACA,iBACA,gBACA,uCACA,UACA,aACA,UACA,eACA,YACA,UACA,0BACA,qBACA,oBACA,iBACA,sBACA,iBACA,SACA,YChPSC,EAAa5G,GACf,CACH,CACIgC,GAAI,aACJ9K,MAAO8I,EAAU6G,6BACjBC,UAAU,EACV/N,KAAM,QACNmC,QAAS,CACL8E,EAAU+G,yCACV/G,EAAUgH,uCAEdC,WAAY,CACRC,SAAW3H,KACEA,EAEbvH,QAASgI,EAAUmH,2CAG3B,CACInF,GAAI,YACJuE,MAAO,kBACPrP,MAAO,aACP4P,UAAU,EACV/N,KAAM,QAEV,CACIiJ,GAAI,WACJuE,MAAO,kBACPrP,MAAO,YACP4P,UAAU,EACV/N,KAAM,QAEV,CACIiJ,GAAI,QACJuE,MAAO,kBACPrP,MAAO,gBACP4P,UAAU,EACV/N,KAAM,OACNkO,WAAY,CACRC,SAAW3H,MAEGA,IAASA,EAAM6H,MADX,qIAGlBpP,QAAS,iCAGjB,CACIgK,GAAI,QACJuE,MAAO,kBACPrP,MAAO,eACP4P,UAAU,EACV/N,KAAM,OACN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","file":"static/js/18.b55664e47949bdafeed4.chunk.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n ISignUpEmailVerification, ISignUpItem, ISignUpLoading, ISignUpLocalAccount, ISignUpViewProps\r\n} from '../../../modules/smwe-sign-up/./smwe-sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\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\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer,\r\n pwRequirements\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n const isNewPassword = item.key === 'newPassword';\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else if (isNewPassword || item.key === 'reenterPassword') {\r\n return (\r\n \r\n {isNewPassword && pwRequirements}\r\n {item.label}\r\n {item.errorMessage}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = (event: React.MouseEvent) => {\r\n const newPasswordState = document.getElementById('newPassword') as HTMLInputElement;\r\n const reenterPasswordState = document.getElementById('reenterPassword') as HTMLInputElement;\r\n const iconElements = document.getElementsByClassName('ms-sign-up__password-icon');\r\n if (newPasswordState && reenterPasswordState && iconElements) {\r\n newPasswordState.type = (newPasswordState.type === 'password') ? 'text' : 'password';\r\n reenterPasswordState.type = (reenterPasswordState.type === 'password') ? 'text' : 'password';\r\n for (let i = 0; i < iconElements.length; i++) {\r\n iconElements[i].className = (iconElements[i].className === 'ms-sign-up__password-icon ms-sign-up__password-icon-show')\r\n ? 'ms-sign-up__password-icon ms-sign-up__password-icon-hide'\r\n : 'ms-sign-up__password-icon ms-sign-up__password-icon-show';\r\n }\r\n }\r\n};\r\n\r\nexport default SignUpView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignUpEmailVerification, ISignUpItem, ISignUpLoading, ISignUpLocalAccount, ISignUpViewProps\r\n} from './smwe-sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\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\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer,\r\n pwRequirements\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n const isNewPassword = item.key === 'newPassword';\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else if (isNewPassword || item.key === 'reenterPassword') {\r\n return (\r\n <>\r\n {isNewPassword && pwRequirements}\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = (event: React.MouseEvent | React.KeyboardEvent) => {\r\n const newPasswordState = document.getElementById('newPassword') as HTMLInputElement;\r\n const reenterPasswordState = document.getElementById('reenterPassword') as HTMLInputElement;\r\n const iconElements = document.getElementsByClassName('sign-up-password-icon');\r\n if (newPasswordState && reenterPasswordState && iconElements) {\r\n newPasswordState.type = newPasswordState.type === 'password' ? 'text' : 'password';\r\n reenterPasswordState.type = reenterPasswordState.type === 'password' ? 'text' : 'password';\r\n for(let i = 0; i < iconElements.length; i++) {\r\n iconElements[i].className = iconElements[i].className === 'sign-up-password-icon icon-show-password' ? 'sign-up-password-icon icon-hide-password' :'sign-up-password-icon icon-show-password';\r\n }\r\n }\r\n};\r\n\r\nexport default SignUpView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n private pathName: string = '';\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return {this._renderElement(this.props)};\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const { heading, HeadingContainer, Link, linkText, image, text } = props;\r\n const { link } = this.props.config;\r\n if (Link) {\r\n this._formatLinkData(Link);\r\n }\r\n if (heading && text) {\r\n return (\r\n <>\r\n {heading}\r\n {text}\r\n \r\n {linkText}\r\n {image}\r\n \r\n \r\n \r\n );\r\n } else if (heading) {\r\n ( {heading});\r\n } else if (Link) {\r\n const linkChecker = this._getPathNameFromURL(link!.linkUrl.destinationUrl.toString());\r\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\r\n this.pathName = window.location.pathname;\r\n } else {\r\n this.pathName = this.props.context.request.url.requestUrl.pathname;\r\n }\r\n if(linkChecker === this.pathName){\r\n return (\r\n \r\n {linkText}\r\n \r\n {image}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {linkText}\r\n \r\n {image}\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if (Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n private _getPathNameFromURL(linkURL: string): string {\r\n let pathName = '';\r\n try {\r\n // if linkURL is a full url\r\n pathName = new URL(linkURL).pathname;\r\n } catch {\r\n pathName = linkURL.split('?')[0];\r\n }\r\n return pathName;\r\n }\r\n\r\n}\r\n\r\nexport default FooterItemView;\r\n","import * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\nimport { createWineClubSignUpInput } from './DataActionExtension.g';\r\n\r\n/**\r\n * WineClub Input Action\r\n */\r\n\r\nexport class WineClubInput implements Msdyn365.IActionInput {\r\n public input: IDataServiceRequest;\r\n\r\n constructor(input: IDataServiceRequest) {\r\n this.input = input;\r\n }\r\n\r\n public shouldCacheOutput = () => { return false; };\r\n public getCacheKey = () => { return 'IWineClubInput'; };\r\n public getCacheObjectType = () => 'IWineClubInput';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nexport interface IWineClubInputData {\r\n result: string;\r\n Message: string;\r\n}\r\n\r\nexport interface IWineClubInfo {\r\n wineClubId: string;\r\n customerId: string;\r\n isGifted: boolean;\r\n deliveryPreference: string;\r\n addressFirstName: string;\r\n addressLastName: string;\r\n addressEmail: string;\r\n addressPhone: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n city: string;\r\n state: string;\r\n zipcode: string;\r\n country: string;\r\n}\r\n\r\nexport const createWineClubInput = (inputData: IWineClubInfo): WineClubInput => {\r\n return new WineClubInput(\r\n createWineClubSignUpInput({\r\n WineClubId: inputData.wineClubId,\r\n AddressEmail: inputData.addressEmail,\r\n AddressFirstName: inputData.addressFirstName,\r\n AddressLastName: inputData.addressLastName,\r\n AddressLine1: inputData.addressLine1,\r\n AddressLine2: inputData.addressLine2,\r\n AddressPhone: inputData.addressPhone,\r\n City: inputData.city,\r\n Country: inputData.country,\r\n CustomerId: inputData.customerId,\r\n DeliveryPreference: inputData.deliveryPreference,\r\n IsGifted: inputData.isGifted,\r\n State: inputData.state,\r\n Zipcode: inputData.zipcode\r\n })\r\n );\r\n};\r\n\r\nexport async function wineClubAction(input: WineClubInput, ctx: Msdyn365.IActionContext): Promise {\r\n return input.input.execute(ctx);\r\n}\r\n\r\nexport const IWineClubAction = Msdyn365.createObservableDataAction({\r\n action: >wineClubAction,\r\n input: createWineClubInput\r\n});","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IWineClubStepComponentProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubConfirmation component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubConfirmation extends React.Component {\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public render(): JSX.Element {\r\n const { resources } = this.props;\r\n const shippingAddress = this.props.fields.shippingAddress;\r\n\r\n return (\r\n
\r\n
\r\n

{resources && resources.wineClub_confirmationHeading}

\r\n

{resources && resources.wineClub_confirmationText}

\r\n
\r\n
\r\n
\r\n
{resources && resources.wineClub_confirmationShippingAddressHeading}
\r\n

{shippingAddress.firstName} {shippingAddress.lastName}

\r\n

{shippingAddress.address1}

\r\n {shippingAddress.address2 ? (

{shippingAddress.address2}

) : null}\r\n

{shippingAddress.city}, {shippingAddress.state} {shippingAddress.zip}

\r\n

{shippingAddress.country}

\r\n

{shippingAddress.phone}

\r\n

{shippingAddress.email}

\r\n
\r\n
\r\n
\r\n {resources && resources.wineClub_buttonBack &&\r\n this.props.renderButton(\r\n resources.wineClub_buttonBack,\r\n 'shipping',\r\n this.props.toggleStep,\r\n 'wine-club-button-back'\r\n )\r\n }\r\n {resources && resources.wineClub_buttonSignup &&\r\n this.props.renderSubmit(\r\n resources.wineClub_buttonSignup,\r\n 'wine-club-button-signup'\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default WineClubConfirmation;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IWineClubInputProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubInputRadioCheckbox component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubInputRadioCheckbox extends React.Component {\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default WineClubInputRadioCheckbox;","export const countries: string[] = [\r\n 'Afghanistan',\r\n 'Aland Islands',\r\n 'Albania',\r\n 'Algeria',\r\n 'American Samoa',\r\n 'Andorra',\r\n 'Angola',\r\n 'Anguilla',\r\n 'Antarctica',\r\n 'Antigua and Barbuda',\r\n 'Argentina',\r\n 'Armenia',\r\n 'Aruba',\r\n 'Ascension Island',\r\n 'Australia',\r\n 'Austria',\r\n 'Azerbaijan',\r\n 'Bahamas',\r\n 'Bahrain',\r\n 'Bangladesh, Peoples Rep. of',\r\n 'Barbados',\r\n 'Belarus',\r\n 'Belgium',\r\n 'Belize',\r\n 'Benin, Peoples Rep. of',\r\n 'Bermuda',\r\n 'Bhutan',\r\n 'Bolivia',\r\n 'Bonaire',\r\n 'Bosnia-Herzegovina',\r\n 'Botswana',\r\n 'Brazil',\r\n 'British Indian Ocean Territory',\r\n 'Brunei',\r\n 'Bulgaria',\r\n 'Burkina Faso',\r\n 'Burundi',\r\n 'Cambodia',\r\n 'Cameroon, United Rep. of',\r\n 'Canada',\r\n 'Cape Verde Islands',\r\n 'Cayman Islands',\r\n 'Central African Republic',\r\n 'Chad',\r\n 'Chile',\r\n 'China, Peoples Rep. of',\r\n 'Christmas Island',\r\n 'Cocos Islands',\r\n 'Colombia',\r\n 'Comoros',\r\n 'Congo',\r\n 'Congo, The Democratic Republic of the',\r\n 'Cook Islands',\r\n 'Costa Rica',\r\n 'Croatia',\r\n 'Cuba',\r\n 'Curacao',\r\n 'Cyprus',\r\n 'Czech Republic',\r\n 'Denmark',\r\n 'Diego Garcia',\r\n 'Djibouti',\r\n 'Dominica',\r\n 'Dominican Republic',\r\n 'Ecuador',\r\n 'Egypt, Arab Rep. of',\r\n 'El Salvador',\r\n 'Equatorial Guinea',\r\n 'Eritrea',\r\n 'Estonia',\r\n 'Ethiopia',\r\n 'Falkland Islands',\r\n 'Faeroe Islands',\r\n 'Fiji Islands',\r\n 'Finland',\r\n 'France',\r\n 'French Guiana',\r\n 'French Polynesia (Moorea & Tahiti',\r\n 'French Southern Territories',\r\n 'Gabon Republic',\r\n 'Gambia',\r\n 'Georgia',\r\n 'Germany',\r\n 'Ghana',\r\n 'Gibraltar',\r\n 'Greece',\r\n 'Greenland (Kalaallit Nunaat)',\r\n 'Grenada',\r\n 'Guadeloupe',\r\n 'Guam',\r\n 'Guantanamo Bay (U.S. Naval Base)',\r\n 'Guatemala',\r\n 'Guernsey',\r\n 'Guinea Bissau',\r\n 'Guinea, Peoples Rev. Rep.',\r\n 'Guyana',\r\n 'Haiti',\r\n 'Heard Island and McDonald Island',\r\n 'Honduras',\r\n 'Hong Kong',\r\n 'Hungary',\r\n 'Iceland',\r\n 'India',\r\n 'Indonesia',\r\n 'Iran',\r\n 'Iraq',\r\n 'Ireland, Rep. of',\r\n 'Isle of Man',\r\n 'Israel',\r\n 'Italy',\r\n 'Ivory Coast Rep. of',\r\n 'Jamaica',\r\n 'Japan',\r\n 'Jersey',\r\n 'Jordan',\r\n 'Kazakhstan',\r\n 'Kenya, Rep of.',\r\n 'Kiribati',\r\n 'Kuwait',\r\n 'Kyrgyzstan',\r\n 'Laos',\r\n 'Latvia',\r\n 'Lebanon',\r\n 'Lesotho',\r\n 'Liberia',\r\n 'Libya',\r\n 'Liechtenstein',\r\n 'Lithuania',\r\n 'Luxembourg',\r\n 'Macao',\r\n 'Macedonia',\r\n 'Madagascar',\r\n 'Malawi',\r\n 'Malaysia',\r\n 'Maldives, Rep. of',\r\n 'Mali',\r\n 'Malta',\r\n 'Marshall Islands',\r\n 'Martinique',\r\n 'Mauritania',\r\n 'Mauritius',\r\n 'Mayotte',\r\n 'Mexico',\r\n 'Micronesia, Fed. States of',\r\n 'Moldova',\r\n 'Monaco',\r\n 'Mongolia',\r\n 'Montenegro',\r\n 'Montserrat',\r\n 'Morocco, Kingdom of',\r\n 'Mozambique',\r\n 'Myanmar',\r\n 'Namibia',\r\n 'Nepal',\r\n 'Netherlands',\r\n 'Netherlands Antilles',\r\n 'New Caledonia',\r\n 'New Zealand',\r\n 'Nicaragua',\r\n 'Niger Republic',\r\n 'Nigeria, Fed. Rep. of',\r\n 'Niue',\r\n 'Norfolk Island',\r\n 'North Mariana Islands',\r\n 'North Korea',\r\n 'Norway',\r\n 'Oman',\r\n 'Pakistan',\r\n 'Palau',\r\n 'Palestinian Territory',\r\n 'Panama, Rep. of',\r\n 'Papua New Guinea',\r\n 'Paraguay',\r\n 'Peru',\r\n 'Philippines',\r\n 'Pitcairn',\r\n 'Poland',\r\n 'Portugal',\r\n 'Puerto Rico',\r\n 'Qatar',\r\n 'Reunion',\r\n 'Romania',\r\n 'Russia',\r\n 'Rwanda',\r\n 'Samoa',\r\n 'Saipan',\r\n 'San Marino',\r\n 'Sao Tome and Principe',\r\n 'Saudi Arabia',\r\n 'Senegal Republic',\r\n 'Serbia',\r\n 'Seychelles',\r\n 'Sierra Leone',\r\n 'Singapore, Rep. of',\r\n 'Slovakia',\r\n 'Slovenia',\r\n 'Solomon Islands',\r\n 'Somolia',\r\n 'South Africa',\r\n 'South Georgia',\r\n 'South Korea',\r\n 'Spain',\r\n 'Sri Lanka, Dem. Soc. Rep. of',\r\n 'St. Barthelemy',\r\n 'St. Helena',\r\n 'St. Kits',\r\n 'St. Pierre and Miquelon',\r\n 'St. Martin',\r\n 'St Vincent and the Grenadines',\r\n 'Sudan',\r\n 'Suriname',\r\n 'Svalbard and Jan Mayen',\r\n 'Swaziland',\r\n 'Sweden',\r\n 'Switzerland',\r\n 'Syria',\r\n 'Tadzhikistan',\r\n 'Taiwan',\r\n 'Tanzania',\r\n 'Thailand',\r\n 'Timor-Leste',\r\n 'Togo, Rep. of',\r\n 'Tokelau',\r\n 'Tonga Islands',\r\n 'Trinidad and Tobago',\r\n 'Tunisia',\r\n 'Turkey',\r\n 'Turkmenistan',\r\n 'Turks and Caicos Islands',\r\n 'Tuvalu',\r\n 'Uganda',\r\n 'Ukraine',\r\n 'United Arab Emirates',\r\n 'United Kingdom',\r\n 'United States',\r\n 'United States Minor Outlying Islands',\r\n 'Uruguay',\r\n 'Uzbekistan',\r\n 'Vanuatu',\r\n 'Vatican City',\r\n 'Venezuela',\r\n 'Vietnam',\r\n 'Virgin Islands, British',\r\n 'Virgin Islands, US',\r\n 'Wallis and Futuna',\r\n 'Western Sahara',\r\n 'Yemen Arab Republic',\r\n 'Zaire, Rep. of',\r\n 'Zambia',\r\n 'Zimbabwe'\r\n];\r\n\r\n// tslint:disable-next-line: no-empty-interface\r\nexport interface IWineClubCountriesData {}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { countries } from './wine-club-countries.data';\r\nimport { IWineClubResources } from './wine-club.props.autogenerated';\r\nimport { inputType } from './wine-club.types';\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nexport const getInputs = (resources: IWineClubResources): inputType[] => {\r\n return [\r\n {\r\n id: 'membership',\r\n label: resources.wineClub_membershipTypeLabel,\r\n required: true,\r\n type: 'radio',\r\n options: [\r\n resources.wineClub_membershipTypeOptionIsNotGifted,\r\n resources.wineClub_membershipTypeOptionIsGifted\r\n ],\r\n validation: {\r\n validate: (value: string): boolean => {\r\n return !!value;\r\n },\r\n message: resources.wineClub_membershipTypeValidationMessage\r\n }\r\n },\r\n {\r\n id: 'firstName',\r\n group: 'shippingAddress',\r\n label: 'First Name',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'lastName',\r\n group: 'shippingAddress',\r\n label: 'Last Name',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'email',\r\n group: 'shippingAddress',\r\n label: 'Email Address',\r\n required: true,\r\n type: 'text',\r\n validation: {\r\n validate: (value: string): boolean => {\r\n const email = /^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]+(?:-+[a-z0-9]+)*\\.)+(?:xn--[a-z0-9]+|[a-z]{2,16})$/i;\r\n return !!(value && value.match(email));\r\n },\r\n message: 'Enter a valid email address.'\r\n }\r\n },\r\n {\r\n id: 'phone',\r\n group: 'shippingAddress',\r\n label: 'Phone Number',\r\n required: true,\r\n type: 'text',\r\n validation: {\r\n validate: (value: string): boolean => {\r\n const phone = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n return !!(value.match(phone));\r\n },\r\n message: 'Enter a valid phone number.'\r\n }\r\n },\r\n {\r\n id: 'address1',\r\n group: 'shippingAddress',\r\n label: 'Address 1',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'address2',\r\n group: 'shippingAddress',\r\n label: 'Address 2',\r\n required: false,\r\n type: 'text',\r\n },\r\n {\r\n id: 'city',\r\n group: 'shippingAddress',\r\n label: 'City',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'state',\r\n group: 'shippingAddress',\r\n label: 'State',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'zip',\r\n group: 'shippingAddress',\r\n label: 'Zip',\r\n required: true,\r\n type: 'text',\r\n },\r\n {\r\n id: 'country',\r\n group: 'shippingAddress',\r\n label: 'Country',\r\n required: true,\r\n type: 'select',\r\n options: countries\r\n }\r\n ];\r\n};\r\n\r\n// tslint:disable-next-line: no-empty-interface\r\nexport interface IWineClubInputData {}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport WineClubInputRadioCheckbox from './wine-club-input-radio-checkbox';\r\nimport { getInputs } from './wine-club-input.data';\r\nimport { IWineClubResources } from './wine-club.props.autogenerated';\r\nimport { IWineClubInputProps, IWineClubStepComponentProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubMembership component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubMembership extends React.Component {\r\n\r\n //==========================================================================\r\n // Variables\r\n //==========================================================================\r\n\r\n private resources: IWineClubResources;\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public constructor(props: IWineClubStepComponentProps) {\r\n super(props);\r\n this.resources = this.props.resources || [];\r\n this._validateFields = this._validateFields.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { resources } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

{resources && resources.wineClub_membershipHeading}

\r\n

{resources && resources.wineClub_membershipText}

\r\n
\r\n
\r\n {this._renderMembershipInputs()}\r\n
\r\n
\r\n {this.props.error &&\r\n this.props.renderValidation(\r\n resources && resources.wineClub_membershipErrorMessage,\r\n 'wine-club-error'\r\n )\r\n }\r\n {resources && resources.wineClub_buttonNext &&\r\n this.props.renderButton(\r\n resources.wineClub_buttonNext,\r\n 'shipping',\r\n this.props.toggleStep,\r\n 'wine-club-button-next btn-primary',\r\n this._validateFields,\r\n this.props.handleNext\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // Private Methods\r\n //==========================================================================\r\n\r\n // Renders form radio input from object data for the membership step.\r\n private _renderMembershipInputs(): JSX.Element[] {\r\n const membershipInput: IWineClubInputProps = getInputs(this.resources).find(input => input.id === 'membership') as IWineClubInputProps;\r\n const membershipOptions: string[] = membershipInput.options as string[];\r\n return membershipOptions.map((option, index) => {\r\n const isChecked = (option === this.props.fields.membership);\r\n return (\r\n {\r\n this.props.handleChange(event);\r\n this.props.resetAddressSelect();\r\n }}\r\n />\r\n );\r\n });\r\n }\r\n\r\n // Validates membership radio input.\r\n private _validateFields(): boolean {\r\n return !!this.props.fields.membership;\r\n }\r\n}\r\n\r\nexport default WineClubMembership;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IWineClubInputProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubInputDropdown component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubInputDropdown extends React.Component {\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // Private Methods\r\n //==========================================================================\r\n\r\n // Render dropdown options from array.\r\n private _renderOptions(): JSX.Element[] {\r\n const options: string[] | undefined = this.props.options ? this.props.options : [];\r\n return options.map((option, index) => {\r\n const isSelected = option === this.props.value;\r\n return (\r\n \r\n {option}\r\n \r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default WineClubInputDropdown;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IWineClubInputProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubInputText component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubInputText extends React.Component {\r\n\r\n //==========================================================================\r\n // Variables\r\n //==========================================================================\r\n\r\n @observable private error: boolean = false;\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n {this.props.validation && this.error && this.props.renderValidation!(this.props.validation.message, 'wine-club-error')}\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // Private Methods\r\n //==========================================================================\r\n\r\n // Validates field with corresponding validation function.\r\n private _blurInput(event: React.ChangeEvent | React.ChangeEvent, validateInput: Function): void {\r\n validateInput(event.target.value) ? this.error = false : this.error = true;\r\n }\r\n}\r\n\r\nexport default WineClubInputText;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { countries } from './wine-club-countries.data';\r\nimport WineClubInputDropdown from './wine-club-input-dropdown';\r\nimport WineClubInputText from './wine-club-input-text';\r\nimport { getInputs } from './wine-club-input.data';\r\nimport { IWineClubResources } from './wine-club.props.autogenerated';\r\nimport { IWineClubInputProps, IWineClubStepComponentProps } from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClubShipping component\r\n * @extends {React.Component}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClubShipping extends React.Component {\r\n\r\n //==========================================================================\r\n // Variables\r\n //==========================================================================\r\n\r\n private resources: IWineClubResources;\r\n private isGifted?: boolean;\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public constructor(props: IWineClubStepComponentProps) {\r\n super(props);\r\n this.resources = this.props.resources || [];\r\n this.isGifted = this.props.fields && this.props.fields.membership.includes('gift');\r\n this._validateFields = this._validateFields.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { resources } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

{resources && resources.wineClub_shippingHeading}

\r\n

\r\n {this.isGifted ? resources && resources.wineClub_shippingTextIsGifted : resources && resources.wineClub_shippingText}\r\n

\r\n
\r\n\r\n {/* Render address dropdown if membership is not a gift */}\r\n {!this.isGifted && this._renderAddressDropdown()}\r\n\r\n {/* Render address form if membership is a gift or if user wants to add an address not specified */}\r\n {(this.isGifted || (this.props.isAddressSelected && !this.props.selectedAddress)) && this._renderShippingForm()}\r\n\r\n {/* Render validation message if there's an error */}\r\n {this.props.error &&\r\n this.props.renderValidation(\r\n resources && resources.wineClub_shippingErrorMessage,\r\n 'wine-club-error'\r\n )\r\n }\r\n\r\n {/* Render back and next buttons */}\r\n
\r\n {resources && resources.wineClub_buttonBack &&\r\n this.props.renderButton(\r\n resources.wineClub_buttonBack,\r\n 'membership',\r\n this.props.toggleStep,\r\n 'wine-club-button-back'\r\n )\r\n }\r\n {resources && resources.wineClub_buttonNext &&\r\n this.props.renderButton(\r\n resources.wineClub_buttonNext,\r\n 'confirmation',\r\n this.props.toggleStep,\r\n 'wine-club-button-next',\r\n this._validateFields,\r\n this.props.handleNext\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // Private Methods\r\n //==========================================================================\r\n\r\n // Render dropdown to select current addresses.\r\n private _renderAddressDropdown(): JSX.Element {\r\n return (\r\n
\r\n {this._renderAddresses()}\r\n {this.props.selectedAddress && this._renderSelectedAddress()}\r\n
\r\n );\r\n }\r\n\r\n // Renders select dropdown from user's current addresses.\r\n private _renderAddresses(): JSX.Element {\r\n const options: string[] = this.props.customerAddresses.map((address, index) => address.FullAddress || `Address ${index}`);\r\n const showForm: string = this.resources.wineClub_shippingSelectEnter;\r\n options.push(showForm);\r\n return (\r\n \r\n );\r\n }\r\n\r\n // Renders user's selected address from dropdown.\r\n private _renderSelectedAddress(): JSX.Element {\r\n return (\r\n
\r\n

{this.props.selectedAddress!.Name}

\r\n

{this.props.selectedAddress!.Street}

\r\n

{this.props.selectedAddress!.City}, {this.props.selectedAddress!.State} {this.props.selectedAddress!.ZipCode}

\r\n

{this.props.selectedAddress!.ThreeLetterISORegionName}

\r\n

{this.props.selectedAddress!.Phone}

\r\n
\r\n );\r\n }\r\n\r\n // Render shipping address form.\r\n private _renderShippingForm(): JSX.Element {\r\n return (\r\n
\r\n {this._renderShippingInputs()}\r\n {this._renderShippingCountry()}\r\n
\r\n );\r\n }\r\n\r\n // Renders form text inputs from object data for the shipping step.\r\n private _renderShippingInputs(): JSX.Element[] {\r\n let shippingInputs = getInputs(this.resources).filter(input => input.group === 'shippingAddress' && input.type === 'text' && input.id !== 'email');\r\n const shippingInputsIsGifted = getInputs(this.resources).filter(input => input.group === 'shippingAddress' && input.type === 'text');\r\n this.isGifted && (shippingInputs = shippingInputsIsGifted);\r\n\r\n return shippingInputs.map((input, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n // Sets value of input fields with form object variable for data binding.\r\n private _getValue(input: IWineClubInputProps): string {\r\n return input.group ? this.props.fields[input.group][input.id] : this.props.fields[input.id];\r\n }\r\n\r\n // Renders form dropdown input from object data for shipping country.\r\n private _renderShippingCountry(): JSX.Element {\r\n const country = getInputs(this.resources).find(input => input.id === 'country');\r\n return (\r\n \r\n );\r\n }\r\n\r\n // Validates all shipping fields.\r\n private _validateFields(): boolean {\r\n const shippingInputs = getInputs(this.resources).filter(input => input.group === 'shippingAddress');\r\n\r\n // Find text fields that need validation, then find inputs that fail the corresponding validation.\r\n const validationInputs = shippingInputs.filter(input => input.type === 'text' && input.validation);\r\n const invalidInput = validationInputs.find(input => !input.validation!.validate(this.props.fields.shippingAddress[input.id]));\r\n\r\n // Find required text fields that are empty.\r\n const requiredInputs = shippingInputs.filter(input => input.required === true);\r\n const emptyInput = requiredInputs.find(input => !this.props.fields.shippingAddress[input.id] || this.props.fields.shippingAddress[input.id] === 'Select');\r\n\r\n // If there is either an invalid or empty input, return false.\r\n return !(invalidInput || emptyInput);\r\n }\r\n}\r\n\r\nexport default WineClubShipping;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\nimport classname from 'classnames';\r\nimport { action, observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { createWineClubInput, wineClubAction } from '../../dataActions/wine-club-signup';\r\nimport WineClubConfirmation from './wine-club-confirmation';\r\nimport WineClubMembership from './wine-club-membership';\r\nimport WineClubShipping from './wine-club-shipping';\r\nimport { IWineClubData } from './wine-club.data';\r\nimport { IWineClubProps } from './wine-club.props.autogenerated';\r\nimport { addressMapType, componentsType, fieldsType, headingsType, IWineClubStepComponentProps} from './wine-club.types';\r\n\r\n//==============================================================================\r\n/**\r\n * WineClub component\r\n * @extends {React.Component>}\r\n */\r\n//==============================================================================\r\n@observer\r\nclass WineClub extends React.Component> {\r\n\r\n //==========================================================================\r\n // Variables\r\n //==========================================================================\r\n\r\n private fieldsDefault: fieldsType = {\r\n membership: '',\r\n shippingAddress: {\r\n firstName: '',\r\n lastName: '',\r\n phone: '',\r\n email: '',\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zip: '',\r\n country: 'Select'\r\n }\r\n };\r\n\r\n @observable private fields: fieldsType = this.fieldsDefault;\r\n\r\n private addressMap: addressMapType = [\r\n {\r\n moduleData: 'phone',\r\n serverData: 'Phone'\r\n },\r\n {\r\n moduleData: 'address1',\r\n serverData: 'Street'\r\n },\r\n {\r\n moduleData: 'city',\r\n serverData: 'City'\r\n },\r\n {\r\n moduleData: 'state',\r\n serverData: 'State'\r\n },\r\n {\r\n moduleData: 'zip',\r\n serverData: 'ZipCode'\r\n },\r\n {\r\n moduleData: 'country',\r\n serverData: 'ThreeLetterISORegionName'\r\n },\r\n ];\r\n\r\n @observable private submitSuccess: boolean = false;\r\n @observable private submitFailure: boolean = false;\r\n @observable private failureMessage: string | undefined;\r\n @observable private error: boolean = false;\r\n\r\n @observable private customerAddresses: Address[];\r\n @observable private isAddressSelected: boolean = false;\r\n @observable private selectedAddress: Address | undefined;\r\n\r\n @observable private step: string = 'membership';\r\n\r\n private components: componentsType = {\r\n membership: WineClubMembership,\r\n shipping: WineClubShipping,\r\n confirmation: WineClubConfirmation\r\n };\r\n\r\n private customerEmail?: string;\r\n\r\n //==========================================================================\r\n // Public Methods\r\n //==========================================================================\r\n\r\n public constructor(props: IWineClubProps) {\r\n super(props);\r\n const { context, data } = this.props;\r\n this.customerEmail = context && context.request && context.request.user && context.request.user.emailAddress;\r\n this.customerAddresses = (data.address && data.address.result) || [];\r\n\r\n this._renderValidation = this._renderValidation.bind(this);\r\n this._renderButton = this._renderButton.bind(this);\r\n this._renderSubmit = this._renderSubmit.bind(this);\r\n this._toggleStep = this._toggleStep.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n this._handleAddressChange = this._handleAddressChange.bind(this);\r\n this._resetAddressSelect = this._resetAddressSelect.bind(this);\r\n this._handleNext = this._handleNext.bind(this);\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config, context, resources } = this.props;\r\n const user = context && context.request && context.request.user;\r\n const StepComponent: React.ComponentType = this._renderStep(this.step);\r\n\r\n return (\r\n
\r\n {config && config.heading && this._renderHeading(config.heading, 'wine-club-heading')}\r\n { // If form has already been successfully submitted, do not render form.\r\n !this.submitSuccess ?\r\n // If user is logged in, render form. If not, redirect to Sign In page.\r\n (user.isAuthenticated ? (\r\n
\r\n \r\n \r\n ) : window.location.assign(user.signInUrl as string))\r\n : null\r\n }\r\n {this.submitSuccess && resources && resources.wineClub_formSuccess && this._renderText(resources.wineClub_formSuccess, 'wine-club-form-success')}\r\n {this.submitFailure && this.failureMessage && this._renderText(this.failureMessage, 'wine-club-form-failure')}\r\n
\r\n );\r\n }\r\n\r\n //==========================================================================\r\n // Private Methods\r\n //==========================================================================\r\n\r\n // Renders built-in Heading component.\r\n private _renderHeading(heading: headingsType, className?: string): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n // Renders text component.\r\n private _renderText(text: string, className?: string): JSX.Element {\r\n return (\r\n
\r\n {text}\r\n
\r\n );\r\n }\r\n\r\n // Renders validation error messages.\r\n private _renderValidation(text: string, className?: string): JSX.Element {\r\n return (\r\n
\r\n {text}\r\n
\r\n );\r\n }\r\n\r\n // Renders 'Back' and 'Next' buttons that toggles between steps.\r\n private _renderButton(\r\n text: string,\r\n step: string,\r\n toggle: Function,\r\n className?: string,\r\n validate?: Function,\r\n handleNext?: Function\r\n ): JSX.Element {\r\n return (\r\n handleNext && handleNext(validate)}\r\n >\r\n {\r\n return validate ? validate() && toggle(step) : toggle(step);\r\n }}\r\n >\r\n {text}\r\n \r\n
\r\n );\r\n }\r\n\r\n // Renders 'Submit' button that sends form data to backend.\r\n private _renderSubmit(text: string, className?: string): JSX.Element {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // Clears error messages when toggling between steps.\r\n private _toggleStep(step: string): void {\r\n this.error = false;\r\n this.submitSuccess = false;\r\n this.submitFailure = false;\r\n this.step = step;\r\n }\r\n\r\n // Renders active step.\r\n private _renderStep(step: string): React.ComponentType {\r\n return this.components[step];\r\n }\r\n\r\n // Updates form object variable with updated values on input change.\r\n @action\r\n private _handleChange(event: React.ChangeEvent | React.ChangeEvent): void {\r\n event.target.getAttribute('data-group')\r\n ? this.fields[event.target.getAttribute('data-group') as string][event.target.id] = event.target.value\r\n : this.fields[event.target.id] = event.target.value;\r\n }\r\n\r\n // Changes form shipping address object variable with selected address values or clears if undefined.\r\n @action\r\n private _handleAddressChange(event: React.ChangeEvent | React.ChangeEvent): void {\r\n if (!this.isAddressSelected) {this.isAddressSelected = true;}\r\n const selectedAddress: Address | undefined = this.customerAddresses.find(address => address.FullAddress === event.target.value);\r\n if (selectedAddress) {\r\n this.selectedAddress = selectedAddress;\r\n this._handleAddressUpdate(this.selectedAddress);\r\n } else {\r\n this.selectedAddress = undefined;\r\n this._handleAddressClear();\r\n this._handleAssignEmail();\r\n }\r\n }\r\n\r\n // Updates form shipping address object variable with selected address values.\r\n @action\r\n private _handleAddressUpdate(address: Address): void {\r\n this.addressMap.forEach(addressMapContent => {\r\n address[addressMapContent.serverData]\r\n ? this.fields.shippingAddress[addressMapContent.moduleData] = address[addressMapContent.serverData]\r\n : '';\r\n });\r\n\r\n // To be fixed in the future. For now, we need to split the full name to be accepted by the server.\r\n const fullName = address.Name;\r\n const fullNameArray = fullName!.split(' ');\r\n const firstName = fullNameArray[0];\r\n const lastName = fullNameArray.slice(1).join(' ');\r\n\r\n this.fields.shippingAddress.firstName = firstName;\r\n this.fields.shippingAddress.lastName = lastName;\r\n this._handleAssignEmail();\r\n }\r\n\r\n // Clears form shipping address object variable.\r\n @action\r\n private _handleAddressClear(): void {\r\n this.fields.shippingAddress = this.fieldsDefault.shippingAddress;\r\n }\r\n\r\n // Automatically assigns form shipping address email to user's email.\r\n @action\r\n private _handleAssignEmail(): void {\r\n this.fields.shippingAddress.email = this.customerEmail!;\r\n }\r\n\r\n // Resets address select boolean to revert default dropdown value.\r\n @action\r\n private _resetAddressSelect(): void {\r\n this.isAddressSelected = false;\r\n this.selectedAddress = undefined;\r\n this._handleAddressClear();\r\n }\r\n\r\n // Runs active step's validation function and sets error variable to allow/restrict 'Next' button.\r\n private _handleNext(validate: Function): void {\r\n validate() ? this.error = false : this.error = true;\r\n }\r\n\r\n // Submits form and sends form object variable data to retail server.\r\n private _handleSubmit(event: React.MouseEvent | React.KeyboardEvent | React.FormEvent): void {\r\n event.preventDefault();\r\n\r\n // Resets submit success and failure messages in case user clicks button again without rerendering.\r\n this.submitSuccess = false;\r\n this.submitFailure = false;\r\n\r\n const { config, context, resources } = this.props;\r\n const { shippingAddress } = this.fields;\r\n const wineClubId: string = config && config.clubId;\r\n const customerId: string = context && context.request && context.request.user && context.request.user.customerAccountNumber!;\r\n const isGifted: boolean = this.fields && this.fields.membership.includes('gift');\r\n\r\n const input = createWineClubInput({\r\n wineClubId: wineClubId,\r\n customerId: customerId,\r\n isGifted: isGifted,\r\n deliveryPreference: 'DELIVERY',\r\n addressFirstName: shippingAddress.firstName,\r\n addressLastName: shippingAddress.lastName,\r\n addressEmail: shippingAddress.email,\r\n addressPhone: shippingAddress.phone,\r\n addressLine1: shippingAddress.address1,\r\n addressLine2: shippingAddress.address2 || '',\r\n city: shippingAddress.city,\r\n state: shippingAddress.state,\r\n zipcode: shippingAddress.zip,\r\n country: shippingAddress.country\r\n });\r\n\r\n wineClubAction(input, this.props.context.actionContext)\r\n .then(response => {\r\n if (response.result) {\r\n this.submitSuccess = true;\r\n } else {\r\n this.submitFailure = true;\r\n this.failureMessage = response.Message || (resources && resources.wineClub_formFailure);\r\n }\r\n })\r\n .catch(error => {\r\n throw new Error(JSON.stringify(error, null, 4));\r\n });\r\n }\r\n}\r\n\r\nexport default WineClub;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n ISignUpEmailVerification, ISignUpItem, ISignUpLoading, ISignUpLocalAccount, ISignUpViewProps\r\n} from '../../../modules/smwe-sign-up/./smwe-sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\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\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer,\r\n pwRequirements\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n const isNewPassword = item.key === 'newPassword';\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else if (isNewPassword || item.key === 'reenterPassword') {\r\n return (\r\n \r\n {isNewPassword && pwRequirements}\r\n {item.label}\r\n {item.errorMessage}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = (event: React.MouseEvent) => {\r\n const newPasswordState = document.getElementById('newPassword') as HTMLInputElement;\r\n const reenterPasswordState = document.getElementById('reenterPassword') as HTMLInputElement;\r\n const iconElements = document.getElementsByClassName('ms-sign-up__password-icon');\r\n if (newPasswordState && reenterPasswordState && iconElements) {\r\n newPasswordState.type = (newPasswordState.type === 'password') ? 'text' : 'password';\r\n reenterPasswordState.type = (reenterPasswordState.type === 'password') ? 'text' : 'password';\r\n for (let i = 0; i < iconElements.length; i++) {\r\n iconElements[i].className = (iconElements[i].className === 'ms-sign-up__password-icon ms-sign-up__password-icon-show')\r\n ? 'ms-sign-up__password-icon ms-sign-up__password-icon-hide'\r\n : 'ms-sign-up__password-icon ms-sign-up__password-icon-show';\r\n }\r\n }\r\n};\r\n\r\nexport default SignUpView;\r\n","import { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICookieValue, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IPromoBannerCookieData } from './promo-banner-cookie.data';\r\nimport { ILinkData, IPromoBannerCookieProps } from './promo-banner-cookie.props.autogenerated';\r\n\r\n// =========================================================================\r\n// MODULE-WIDE CONSTANTS\r\n// =========================================================================\r\nconst CookieName = 'promoBannerCookie';\r\n\r\n/**\r\n *\r\n * PromoBannerCookie component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass PromoBannerCookie extends React.Component> {\r\n\r\n // ==========================================================================\r\n // OBSERVABLES\r\n // ==========================================================================\r\n\r\n @observable private bannerDismissed: boolean = false;\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n constructor(props: IPromoBannerCookieProps) {\r\n super(props);\r\n this._closeModal = this._closeModal.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.config.bodyClass && (!this._isCookieSet || this.bannerDismissed === false)) {\r\n document.body.classList.add(this.props.config.bodyClass);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\r\n return null;\r\n }\r\n\r\n const { config } = this.props;\r\n const cookie = this.props.context.request.cookies;\r\n\r\n try {\r\n cookie.setConsentCookie();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n if (this._isCookieSet === true || this.bannerDismissed === true) { return null; }\r\n return (\r\n \r\n {this._renderContent}\r\n {this._renderButton(config.dismissible!)}\r\n \r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _setCookie(): void {\r\n const cookieMaxAge = this.props.config.cookieMaxAge ? this.props.config.cookieMaxAge * 60 * 60 : 86400;\r\n this.props.context.request.cookies.set(CookieName, true, { path: '/', maxAge: cookieMaxAge });\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _isCookieSet(): boolean {\r\n const cookie = this.props.context.request.cookies;\r\n const promoBannerCookie = cookie.get(CookieName) as ICookieValue<{}> | undefined;\r\n\r\n if (promoBannerCookie === undefined || promoBannerCookie.value === 'false') { return false; }\r\n\r\n return (!!promoBannerCookie.value);\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _closeModal(): void {\r\n this._setCookie();\r\n if (this.props.config.bodyClass) {\r\n document.body.classList.remove(this.props.config.bodyClass);\r\n }\r\n this.bannerDismissed = true;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _target(link: ILinkData): string | undefined {\r\n return (link.openInNewTab) ? '_blank' : undefined;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _renderContent(): JSX.Element {\r\n const { config } = this.props;\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderTitle}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {this._renderTitle}\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _renderTitle(): JSX.Element | null {\r\n const title = this.props.config.title;\r\n if (!title) { return null; }\r\n if (!title.text) { return null; }\r\n return (\r\n \r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderButton(dismissible: boolean): JSX.Element | null {\r\n if (!dismissible) { return null; }\r\n\r\n return \r\n);\r\n\r\nexport default SignUpButton;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n\r\n};\r\n\r\nexport default SignUpError;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport interface ISignUpInputProps {\r\n id?: string;\r\n // tslint:disable-next-line:no-any\r\n type: any;\r\n value?: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n onChange?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface ISignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst SignUpInput: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n onChange }) => (\r\n \r\n );\r\n\r\nexport default SignUpInput;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpLabel {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpLoadingIcon {\r\n className: string;\r\n}\r\n\r\nconst SignUpLoadingIcon: React.FC = ({ className }) => (\r\n
\r\n);\r\n\r\nexport default SignUpLoadingIcon;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpLoadingMessage {\r\n className: string;\r\n message: string;\r\n}\r\n\r\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\r\n
\r\n {message}\r\n
\r\n);\r\n\r\nexport default SignUpLoadingMessage;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface ISignUpSuccess {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\r\n const successClassName = `${className}__${type}-success`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpSuccess;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n Heading, IModuleProps, INodeProps, Modal, ModalBody\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\n\r\nimport SignUpButtonComponent from './components/smwe-sign-up-button';\r\nimport SignUpErrorComponent from './components/smwe-sign-up-error';\r\nimport SignUpInputComponent from './components/smwe-sign-up-input';\r\nimport SignUpLabelComponent from './components/smwe-sign-up-label';\r\nimport SignUpLoadingIconComponent from './components/smwe-sign-up-loading-icon';\r\nimport SignUpLoadingMessageComponent from './components/smwe-sign-up-loading-message';\r\nimport SignUpSuccessComponent from './components/smwe-sign-up-success';\r\nimport { ISmweSignUpConfig, ISmweSignUpProps, ISmweSignUpResources } from './smwe-sign-up.props.autogenerated';\r\n\r\nexport interface ISignUpViewState {\r\n isShowLoading: boolean;\r\n}\r\n\r\nexport interface ISignUpItem {\r\n wrapper: INodeProps;\r\n key: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpEmailVerification {\r\n isRequired: boolean;\r\n email: ISignUpItem;\r\n buttonWrapper: INodeProps;\r\n buttons: React.ReactNode[];\r\n successMessage: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n}\r\n\r\nexport interface ISignUpLocalAccount {\r\n localAccount: INodeProps;\r\n items: ISignUpItem[];\r\n emailVerification: ISignUpEmailVerification;\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n pwRequirements: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpLoading {\r\n modal: INodeProps;\r\n modalBody: INodeProps;\r\n icon: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface ISignUpViewProps {\r\n className: string;\r\n viewState: ISignUpViewState;\r\n loading: ISignUpLoading;\r\n signUp: IModuleProps;\r\n defaultAADConainer: INodeProps;\r\n aadConainer: INodeProps;\r\n heading: React.ReactNode;\r\n signUpLocalAccount: ISignUpLocalAccount;\r\n}\r\n\r\n/**\r\n *\r\n * SignUp component\r\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\r\n * Please ensure any change in module don't break contract with AAD.\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass SignUp extends React.Component> {\r\n private moduleClassName: string = 'ms-sign-up';\r\n @observable private emailRegex: string;\r\n @observable private newPasswordRegex: string;\r\n @observable private reenterPasswordRegex: string;\r\n @observable private isEmailVerificationRequried: boolean;\r\n @observable private isInitialized: boolean;\r\n @observable private emailEntered: string;\r\n\r\n // tslint:disable-next-line:no-any\r\n private initializationTimer: any;\r\n\r\n constructor(props: ISmweSignUpProps) {\r\n super(props);\r\n // tslint:disable-next-line:max-line-length\r\n const passwordDefaultRegex = '^((?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\\\d)(?=.*[^A-Za-z0-9]))([A-Za-z\\\\d@#$%^&*\\\\-_+=[\\\\]{}|\\\\\\\\:\\',?/`~\\'();!]|\\\\.(?!@)){8,16}$';\r\n this.emailRegex = '^[a-zA-Z0-9.!#$%&\\'^_`{}~-]+@[a-zA-Z0-9-]+(?:\\\\.[a-zA-Z0-9-]+)*$';\r\n this.newPasswordRegex = passwordDefaultRegex;\r\n this.reenterPasswordRegex = passwordDefaultRegex;\r\n this.isEmailVerificationRequried = false;\r\n this.isInitialized = false;\r\n this.emailEntered = '';\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._onInit();\r\n }\r\n\r\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\r\n public componentDidUpdate(): void {\r\n // tslint:disable-next-line:no-string-literal\r\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\r\n // tslint:disable-next-line:no-string-literal\r\n window['$element']['initialize']();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config, resources } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n viewState: {\r\n isShowLoading: !this.isInitialized\r\n },\r\n signUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, config.className)\r\n },\r\n loading: {\r\n modal: {\r\n tag: Modal,\r\n isOpen: true\r\n },\r\n modalBody: {\r\n tag: ModalBody\r\n },\r\n icon: ,\r\n message: ,\r\n },\r\n defaultAADConainer: {\r\n id: 'api',\r\n style: { display: 'none' }\r\n },\r\n aadConainer: {\r\n id: this.isInitialized ? 'api' : null,\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: ,\r\n signUpLocalAccount: this._renderLocalAccount()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public _onInit = () => {\r\n this._prePopulateData();\r\n this._updateErrorMessage();\r\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\r\n this.initializationTimer = setInterval(() => { this._isInitializationSuccessful(); }, 100);\r\n setTimeout(() => { clearInterval(this.initializationTimer); }, 10000);\r\n };\r\n\r\n // After successful AAD initialization, remove waiting and preload any data, if needed.\r\n private _isInitializationSuccessful = () => {\r\n // tslint:disable-next-line:no-string-literal\r\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\r\n clearInterval(this.initializationTimer);\r\n this.isInitialized = true;\r\n }\r\n };\r\n\r\n private _prePopulateData = () => {\r\n const resources: ISmweSignUpResources = this.props.resources || {};\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\r\n // tslint:disable-next-line:no-string-literal\r\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\r\n switch (obj.ID.toLowerCase()) {\r\n case 'email': {\r\n this.emailRegex = obj.PAT;\r\n this.isEmailVerificationRequried = obj.VERIFY;\r\n break;\r\n }\r\n case 'newpassword': {\r\n this.newPasswordRegex = obj.PAT;\r\n break;\r\n }\r\n case 'reenterpassword': {\r\n this.reenterPasswordRegex = obj.PAT;\r\n break;\r\n }\r\n default:\r\n }\r\n\r\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\r\n case 'password': {\r\n obj.PAT_DESC = resources.invalidPasswordError;\r\n break;\r\n }\r\n case 'emailbox': {\r\n obj.PAT_DESC = resources.invalidEmailAddressError;\r\n break;\r\n }\r\n default:\r\n }\r\n });\r\n }\r\n };\r\n\r\n private _updateErrorMessage = () => {\r\n const resources: ISmweSignUpResources = this.props.resources || {};\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (window && window['CONTENT']) {\r\n const errorMessages = {\r\n required_field: resources.requiredFieldMissingError\r\n };\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n Object.assign(window['CONTENT'], errorMessages);\r\n }\r\n };\r\n\r\n private _renderLocalAccount(): ISignUpLocalAccount {\r\n const { config, resources } = this.props;\r\n return {\r\n localAccount: {\r\n id: 'attributeList',\r\n className: `${this.moduleClassName}__account-items attr`\r\n },\r\n items: [\r\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\r\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\r\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\r\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\r\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\r\n ],\r\n emailVerification: {\r\n isRequired: this.isEmailVerificationRequried,\r\n email: this._renderInput('email_ver_input', 'text', resources.verificationCodeLabelText),\r\n buttonWrapper: {\r\n className: `${this.moduleClassName}__email-verification-buttons verify`,\r\n 'data-claim_id': 'email'\r\n },\r\n buttons: [\r\n (\r\n \r\n ),\r\n (\r\n \r\n ),\r\n (\r\n \r\n ),\r\n (\r\n \r\n )\r\n ],\r\n successMessage: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n ,\r\n ,\r\n ,\r\n ,\r\n ,\r\n \r\n ]\r\n },\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n ,\r\n ,\r\n ,\r\n \r\n ],\r\n disclaimer: config.disclaimer && ,\r\n pwRequirements: config.pwRequirements && \r\n };\r\n }\r\n\r\n private _isFormValid(): boolean {\r\n if (this.emailEntered === ' ' && this.emailRegex) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n private _renderInput(id: string, type: string, labelText: string, maxLength?: string, pattern?: string): ISignUpItem {\r\n const className = `${this.moduleClassName}__account-item`;\r\n return (\r\n {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\r\n },\r\n key: id,\r\n label: (\r\n \r\n ),\r\n errorMessage: (\r\n \r\n ),\r\n input: (\r\n this.emailEntered = e.target.value\r\n }\r\n }\r\n />\r\n )\r\n\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default SignUp;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { IContentBlockWithTitleData } from './content-block-with-title.data';\r\nimport {\r\n IContentBlockWithTitleConfig,\r\n IContentBlockWithTitleProps,\r\n ITitleData\r\n} from './content-block-with-title.props.autogenerated';\r\n\r\n// ==============================================================================\r\n/**\r\n * ContentBlockWithTitle component\r\n * @extends {React.PureComponent>}\r\n */\r\n// ==============================================================================\r\nclass ContentBlockWithTitle extends React.PureComponent> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { config, slots } = this.props;\r\n\r\n return (\r\n
\r\n {config && config.title && this._renderLinkedTitle(config)}\r\n {config && config.text &&\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n }\r\n {slots.contentBlockNoHeadings && this._renderSlotItems(slots.contentBlockNoHeadings)}\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderLinkedTitle(config: IContentBlockWithTitleConfig): JSX.Element {\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderTitle(config.title!)}\r\n \r\n );\r\n } else {\r\n return this._renderTitle(config.title!);\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderTitle(title: ITitleData): JSX.Element {\r\n if (title.text === '') {\r\n return <>;\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderSlotItems(items: React.ReactNode[]): JSX.Element {\r\n return (\r\n
\r\n {items.map((slot: React.ReactNode, index: number) => (\r\n \r\n {slot}\r\n \r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContentBlockWithTitle;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n ISignUpEmailVerification, ISignUpItem, ISignUpLoading, ISignUpLocalAccount, ISignUpViewProps\r\n} from '../../../modules/smwe-sign-up/./smwe-sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\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\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer,\r\n pwRequirements\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n const isNewPassword = item.key === 'newPassword';\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else if (isNewPassword || item.key === 'reenterPassword') {\r\n return (\r\n \r\n {isNewPassword && pwRequirements}\r\n {item.label}\r\n {item.errorMessage}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = (event: React.MouseEvent) => {\r\n const newPasswordState = document.getElementById('newPassword') as HTMLInputElement;\r\n const reenterPasswordState = document.getElementById('reenterPassword') as HTMLInputElement;\r\n const iconElements = document.getElementsByClassName('ms-sign-up__password-icon');\r\n if (newPasswordState && reenterPasswordState && iconElements) {\r\n newPasswordState.type = (newPasswordState.type === 'password') ? 'text' : 'password';\r\n reenterPasswordState.type = (reenterPasswordState.type === 'password') ? 'text' : 'password';\r\n for (let i = 0; i < iconElements.length; i++) {\r\n iconElements[i].className = (iconElements[i].className === 'ms-sign-up__password-icon ms-sign-up__password-icon-show')\r\n ? 'ms-sign-up__password-icon ms-sign-up__password-icon-hide'\r\n : 'ms-sign-up__password-icon ms-sign-up__password-icon-show';\r\n }\r\n }\r\n};\r\n\r\nexport default SignUpView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n ISignUpEmailVerification, ISignUpItem, ISignUpLoading, ISignUpLocalAccount, ISignUpViewProps\r\n} from '../../../modules/smwe-sign-up/./smwe-sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\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\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer,\r\n pwRequirements\r\n}) => {\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n const isNewPassword = item.key === 'newPassword';\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n } else if (isNewPassword || item.key === 'reenterPassword') {\r\n return (\r\n \r\n {isNewPassword && pwRequirements}\r\n {item.label}\r\n {item.errorMessage}\r\n {item.input}\r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _showPassword = (event: React.MouseEvent | React.KeyboardEvent) => {\r\n const newPasswordState = document.getElementById('newPassword') as HTMLInputElement;\r\n const reenterPasswordState = document.getElementById('reenterPassword') as HTMLInputElement;\r\n const iconElements = document.getElementsByClassName('ms-sign-up__password-icon');\r\n if (newPasswordState && reenterPasswordState && iconElements) {\r\n newPasswordState.type = (newPasswordState.type === 'password') ? 'text' : 'password';\r\n reenterPasswordState.type = (reenterPasswordState.type === 'password') ? 'text' : 'password';\r\n for (let i = 0; i < iconElements.length; i++) {\r\n iconElements[i].className = (iconElements[i].className === 'ms-sign-up__password-icon ms-sign-up__password-icon-show')\r\n ? 'ms-sign-up__password-icon ms-sign-up__password-icon-hide'\r\n : 'ms-sign-up__password-icon ms-sign-up__password-icon-show';\r\n }\r\n }\r\n};\r\n\r\nexport default SignUpView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;"],"sourceRoot":""}