{"version":3,"sources":["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/sign-in/components/sign-in-label.tsx?d42c","webpack:///src/modules/account-generic-tile/account-generic-tile.tsx?4504","webpack:///src/modules/sign-in/sign-in.tsx?44ed","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":["SignInLoading","_ref3","modal","modalBody","icon","message","React","Node","Object","assign","SignInView","props","signIn","viewState","loading","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signUpDescription","signUpLink","Module","isShowLoading","_ref","localAccount","items","forgetPassword","disclaimer","error","signInButton","map","item","key","wrapper","label","input","LocalAccount","_ref2","socialAccounts","button","image","text","SocialAccount","SignInLoadingIcon","className","SignInText","SignInButton","id","ariaLabel","telemetryContent","disabled","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","Button","SignInLabel","forId","htmlFor","AccountGenericTile","constructor","super","handleHeadingChange","event","this","config","heading","target","value","handleLinkTextChange","linkIndex","links","linkText","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","render","viewProps","_objectSpread","moduleProps","classnames","Msdyn365","tag","editProps","onEdit","requestContext","length","LinksComponent","onTextChange","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","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","AccountGenericTileView","LoyaltyTermsModal","TelemetryConstant","LoyaltyTermsCancel","loyaltyTermCancelAttributes","contentAction","etext","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","toggle","onToggle","applicationNode","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","cancelButton","createElement","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","setState","IssueLoyaltyInput","apiSettings","issueLoyalty","actionContext","then","card","redirectToLoyalty","location","getUrlSync","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","catch","debug","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignInInput","_mapEditableLinks","linkdata","editableLinks","forEach","link","index","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","AccountGenericTileLinks","AccountLoyalty","decimalPrecision","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","points","pointsActivity","exception","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","_this$state$currentFo","current","focus","_buttonAvailableRef","_buttonExpireRef","BackToShopping","_Msdyn365$getUrlSync","_heading$tag","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","toFixed","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","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalClassName","modalHeaderClassName","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","activity","_toFixed","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/4.d296ad8df706e639394e.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 { 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 * 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 { 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 { 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":""}