{"version":3,"sources":["webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?a91f","webpack:///src/modules/sign-in/sign-in.view.tsx?a753","webpack:///src/modules/sign-in/components/sign-in-loading-icon.tsx?3d5a","webpack:///src/modules/sign-in/components/sign-in-text.tsx?92d7","webpack:///src/modules/sign-in/components/sign-in-button.tsx?a9cc","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?955a","webpack:///src/modules/sign-in/components/sign-in-label.tsx?d42c","webpack:///src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?5f47","webpack:///src/modules/account-generic-tile/account-generic-tile.tsx?4504","webpack:///src/modules/sign-in/sign-in.tsx?44ed","webpack:///src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?9383","webpack:///src/modules/account-generic-tile/account-generic-tile.view.tsx?bca1","webpack:///src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?c84d","webpack:///src/modules/loyalty-terms/loyalty-terms.tsx?0629","webpack:///src/modules/sign-in/components/sign-in-input.tsx?eb41","webpack:///src/modules/account-generic-tile/components/account-generic-tile-links.tsx?e4df","webpack:///src/modules/account-loyalty/account-loyalty.tsx?82db","webpack:///src/modules/sign-in/components/sign-in-link.tsx?fc9f","webpack:///src/modules/sign-in/components/sign-in-error.tsx?2f11","webpack:///src/modules/loyalty-terms/loyalty-terms.view.tsx?5155","webpack:///src/modules/account-loyalty/components/account-loyalty-small-components.tsx?9694","webpack:///src/modules/sign-in/components/sign-in-description.tsx?196e","webpack:///src/modules/account-loyalty/account-loyalty.view.tsx?06f4","webpack:///src/modules/sign-in/components/sign-in-loading-message.tsx?7f4d"],"names":["ErrorComponent","error","React","className","CreditComponent","verbagePrefix","verbagePostfix","value","SignInLoading","modal","modalBody","icon","message","Node","Object","SignInView","props","signIn","viewState","loading","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signUpDescription","signUpLink","Module","isShowLoading","localAccount","items","forgetPassword","disclaimer","signInButton","map","item","key","wrapper","label","input","LocalAccount","socialAccounts","button","image","text","SocialAccount","SignInLoadingIcon","SignInText","SignInButton","id","ariaLabel","telemetryContent","disabled","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","AccountCustomerBalanceTileView","AccountCustomerBalanceTile","heading","content","links","SignInLabel","forId","htmlFor","_mapEditableLinks","linkdata","length","editableLinks","forEach","link","index","contentAction","etext","linkText","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","AccountCustomerBalanceTileLinks","onTextChange","requestContext","Msdyn365","editProps","AccountGenericTile","constructor","super","handleHeadingChange","event","this","config","target","handleLinkTextChange","linkIndex","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","render","viewProps","moduleProps","classnames","tag","onEdit","LinksComponent","renderView","SignIn","moduleClassName","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","emailRegex","emailId","SA_FIELDS","AttributeFields","ID","resources","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","assign","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","Modal","isOpen","ModalBody","SignInLoadingIconComponent","SignInLoadingMessageComponent","loadingMessage","style","display","_renderInput","emailAddressLabelText","emailAddressAriaLabel","passwordLabelText","SignInLinkComponent","href","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","SignInErrorComponent","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","SignInDescriptionComponent","description","signUpDescriptionText","signUpButtonAriaLabel","signUpButtonText","type","labelText","pattern","SignInLabelComponent","SignInInputComponent","iconImage","_createImageMarkup","SignInTextComponent","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","__decorate","observable","observer","_initState","reaction","hasError","setState","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BCustomer","IsB2b","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","Heading","headingTag","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","computed","AccountGenericTileView","LoyaltyTermsModal","TelemetryConstant","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","toggle","onToggle","applicationNode","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onChange","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","url","requestUrl","isJoining","substring","qsps","split","qsp","splitQsp","isModalOpen","clicked","hideToggle","slots","serviceTerms","loyaltyCard","user","isAuthenticated","completeClass","classname","status","modalToggle","innerRef","joinLoyaltytermsToggleText","result","undefined","CardNumber","IssueLoyaltyInput","apiSettings","issueLoyalty","actionContext","then","card","redirectToLoyalty","location","getUrlSync","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","catch","debug","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignInInput","AccountGenericTileLinks","AccountLoyalty","decimalPrecision","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","points","pointsActivity","exception","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","current","focus","_buttonAvailableRef","_buttonExpireRef","BackToShopping","loyaltyCardLabel","totalAvailablePointsLabel","backToShoppingText","backToShopAttributes","loyaltyCardData","rewardPoints","RewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","_renderModal","onOpened","Info","Points","Breakdown","PointsBreakdown","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_formatJoinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","homeButton","title","date","format","joinDateFormatted","Intl","DateTimeFormat","locale","month","day","year","Date","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","AccountLoyaltyModalLabel","Description","availableModalLabel","ActivePoints","labelFor","availableModalTrigger","color","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalClassName","modalHeaderClassName","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","activity","Activity","activityType","_getTimelineType","activityDate","cultureFormatter","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","toString","replace","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","SignInLink","SignInError","errorClassName","LoyaltyTermsView","SignInDescription","AccountLoyaltyView","autoFocus","fade","zIndex","onClosed","SignInLoadingMessage"],"mappings":"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","file":"static/js/2.f894f284dfd9e0a7722f.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n \n {error}\n \n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n \n {value}\n \n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n \n {label}\n \n \n {value}\n \n
\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem, ISignInLoading, ISignInLocalAccount, ISignInSocialAccount, ISignInSocialItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n forgetPassword,\n disclaimer,\n error,\n signInButton\n}) => {\n\n return (\n \n {items && items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({\n socialAccounts,\n items\n}) => {\n\n return (\n \n {items && items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default SignInLoadingIcon;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => (\n \n {text}\n \n);\n\nexport default SignInText;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInButton;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport {\n IAccountGenericTileConfig, IAccountGenericTileProps\n} from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && \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 AccountGenericTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps,\n nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: ,\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(this.emailId, 'email', resources.emailAddressLabelText, resources.emailAddressAriaLabel, this.emailRegex),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: \n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount('FacebookExchange', resources.facebookButtonText, resources.facebookButtonAriaLabel, config.facebookIcon),\n this._renderSocialAccount('MicrosoftAccountExchange', resources.microsoftButtonText, resources.microsoftButtonAriaLabel, config.microsoftIcon)\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: ,\n signUpDescription: ,\n signUpLink: (\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.signInDisclaimer = event.target.value;\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.signInHeading.text = event.target.value;\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.signUpHeading.text = event.target.value;\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return (\n {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n\n }\n );\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(`${this.moduleClassName}__social-account`, `${this.moduleClassName}__social-account-${id}`, 'accountButton', 'msc-btn'),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BCustomer = customerResult ? customerResult.IsB2b : false;\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BCustomer) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BCustomer))\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (account.Balance === 0 && account.CreditLimit === 0 && account.InvoiceAccountBalance === 0 && account.InvoiceAccountCreditLimit === 0) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: { tag: Modal, className: 'ms-loyalty-terms__modal', toggle: props.onToggle, applicationNode: 'renderPage', isOpen: props.isOpen, returnFocusRef: props.returnRef },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: ,\n submitButton: \n {props.resources.joinLoyaltyTermsText}\n ,\n heading:

\n {props.resources.loyaltyTermsHeading}\n

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: ,\n agreeText:

\n {props.resources.loyaltyAgreeToTerms}\n

\n };\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps,\n nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: {\n isAuthenticated\n }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: (hideToggle !== true) && ,\n modal: isAuthenticated && loyaltyCard.result && loyaltyCard.result.CardNumber === undefined && LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then((card) => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then((fullCard) => {\n this.props.context.actionContext.update(new GetLoyaltyCardInput(this.props.context.request.apiSettings), fullCard);\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(new GetLoyaltyCardInput(this.props.context.request.apiSettings), card);\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n ariaLabel,\n onChange\n}) => (\n \n);\n\nexport default SignInInput;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\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 AccountGenericTileLinks: 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 ? : 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-generic-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 AccountGenericTileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport { getLoyaltyRewardPointActivityTimelineAsync, getLoyaltyRewardPointsExpiringSoonAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { Button, format, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps { }\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\n };\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints: loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: isModalOpen && this._renderModal() || { isOpen: false, returnFocusRef: this.state.currentFocus, onOpened: this._onOpenModal },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading &&\n (\n \n ),\n\n // Account info\n infoLabel:\n (\n \n ),\n cardNumber:\n (\n \n ),\n joinDate:\n (\n \n ),\n\n // Points\n pointsLabel:\n (\n \n ),\n points: rewardPoints &&\n (\n \n ),\n\n homeButton: rewardPoints &&\n (\n \n { backToShoppingText }\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n private _formatJoinDate(date: Date): string {\n return format(this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, { month: 'long', day: 'numeric', year: 'numeric' }).format(new Date(date)));\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}` || 'available-points';\n const expiringId = loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}` || 'expiring-points';\n const { availablePointsLabel, availablePointsAriaLabel, expiringPointsFormatLabel, expiringPointsFormatAriaLabel } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return ({\n label:\n (\n \n ),\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined &&\n (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined &&\n (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined &&\n (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined &&\n (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n });\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription:\n (\n \n ),\n totalPoints:\n (\n \n ),\n date:\n (\n \n ),\n balanceLabel:\n (\n \n ),\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints!.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map((activity) => {\n return ({\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType:\n (\n \n ),\n activityDate:\n (\n \n ),\n activityPoints:\n (\n \n )\n });\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (focusRef: React.RefObject, loyaltyCard: LoyaltyCard, currentLoyaltyPoints: LoyaltyRewardPoint, expiring: boolean) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync({ callerContext: actionContext, queryResultSettings: {} }, loyaltyCard.CardNumber, currentLoyaltyPoints.RewardPointId, 30)\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync({ callerContext: actionContext, queryResultSettings: {} }, loyaltyCard.CardNumber, currentLoyaltyPoints.RewardPointId)\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n
\n );\n\n};\n\nexport default SignInError;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n \n {modal.heading}\n \n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountLoyaltyLabel {\n className?: string;\n text?: string | number;\n}\n\nexport const AccountLoyaltyLabel: React.FC = ({ className, text }) => (\n

\n { text }\n

\n);\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\n \n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) => (\n

\n {description}\n

\n);\n\nexport default SignInDescription;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyViewProps } from './account-loyalty';\n\nconst AccountLoyaltyView: React.FC = props => {\n\n const { AccountLoyalty, Info, Points, Breakdown, RewardPoints, PointsBreakdown, Button, heading, infoLabel, cardNumber, joinDate, pointsLabel, points, rewardPoints, homeButton, pointsModal } = props;\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\n return (\n \n {heading}\n \n {infoLabel}\n {cardNumber}\n {joinDate}\n \n \n {pointsLabel}\n {points}\n\n \n {rewardPoints && rewardPoints.map((activity, index) => {\n return (\n\n \n {activity.label}\n \n {activity.availableModalLabel}\n {activity.availableModalTrigger}\n \n\n \n {activity.expiringModalLabel}\n {activity.expiringModalTrigger}\n \n \n );\n })}\n \n \n\n \n {homeButton}\n \n\n {!pointsModal.isOpen &&\n ||\n \n\n \n {pointsModal.modalHeader}\n \n \n \n {pointsModal.pointsDescription}\n {pointsModal.totalPoints}\n \n \n {pointsModal.date}\n {pointsModal.balanceLabel}\n \n {pointsModal.rewardPointsActivity && pointsModal.rewardPointsActivity.map((activity, index) => {\n const { Activity, activityType, activityDate, activityPoints } = activity;\n return (\n \n {activityType}\n {activityDate}\n {activityPoints}\n \n );\n })}\n \n }\n \n );\n};\n\nexport default AccountLoyaltyView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
\n {message}\n
\n);\n\nexport default SignInLoadingMessage;\n"],"sourceRoot":""}