{"version":3,"file":"static/js/52baa4a3c0809573866a.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./src/modules/dobbies-club-renewal/dobbies-club-renewal.tsx?9f83","webpack://Dobbies.Commerce/./src/modules/dobbies-club-renewal/dobbies-club-renewal.view.tsx?a114","webpack://Dobbies.Commerce/./src/themes/dobbies/utilities/formatDate.ts?ae4d","webpack://Dobbies.Commerce/./src/themes/dobbies/utilities/os.ts?f1e0","webpack://Dobbies.Commerce/./lib/dobbies-club-renewal/module-registration.js?8581","webpack://Dobbies.Commerce/external var \"React\"?0d3b","webpack://Dobbies.Commerce/external var \"ReactDOM\"?853b","webpack://Dobbies.Commerce/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?81df"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n// import { RichText, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport MsDyn365, { ICookieValue, Text } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IDobbiesClubRenewalData } from './dobbies-club-renewal.data';\r\nimport { IDobbiesClubRenewalProps } from './dobbies-club-renewal.props.autogenerated';\r\nimport { setDateFormat } from '../../themes/dobbies/utilities/formatDate';\r\nexport interface IDobbiesClubRenewalViewProps extends IDobbiesClubRenewalProps {\r\n isOpen: boolean;\r\n className: string;\r\n heading: JSX.Element;\r\n clubRenewalCTA: JSX.Element;\r\n clubRenewalMessage: JSX.Element;\r\n onCloseModal?(): void;\r\n}\r\n\r\ninterface IPopupModalState {\r\n isModalOpen: boolean;\r\n popupReady: boolean;\r\n daysLeft: number;\r\n expiryDate: string;\r\n customerDDAttribute?: string;\r\n activeTier?: string;\r\n}\r\n\r\nexport type popupModalCookie = {\r\n name: string;\r\n age: number | undefined;\r\n};\r\n\r\n/**\r\n *\r\n * DobbiesClubRenewal component\r\n * @extends {React.PureComponent, IPopupModalState>}\r\n */\r\nclass DobbiesClubRenewal extends React.Component, IPopupModalState> {\r\n private _cookie: popupModalCookie;\r\n private _delayStarted: boolean = false;\r\n\r\n constructor(props: IDobbiesClubRenewalProps) {\r\n super(props);\r\n this._closeModal = this._closeModal.bind(this);\r\n this.state = {\r\n isModalOpen: false,\r\n popupReady: false,\r\n daysLeft: 0,\r\n expiryDate: '',\r\n customerDDAttribute: '',\r\n activeTier: ''\r\n };\r\n this._cookie = {\r\n name: 'Dobbies-club-renewal-cookie',\r\n age: props.config.remindTime || undefined\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n const highestActiveLoyaltyCardTier = this.props.data.loyaltyCard.result?.LoyaltyGroups![0].HighestActiveLoyaltyCardTier;\r\n const activeTier = this.props.data.loyaltyCard.result?.LoyaltyGroups![0].LoyaltyCardTiers!.find(\r\n (card: any) => card.RecordId === highestActiveLoyaltyCardTier\r\n );\r\n this.getCustomerDDAttribute();\r\n this.getLoyaltyRemainingDays();\r\n this.setState({\r\n isModalOpen: true,\r\n activeTier: activeTier?.TierId\r\n });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (this._cookieExist(this._cookie.name)) {\r\n return null;\r\n }\r\n const daysLimit = this.props.context.app.config.clubPlusRenewalDays || 30;\r\n if (\r\n !this.props.context.request.user.isAuthenticated ||\r\n this.state.daysLeft > daysLimit ||\r\n this.state.activeTier !== 'Club Plus' ||\r\n (this.state.customerDDAttribute !== 'None' && this.state.customerDDAttribute !== 'DDCAN')\r\n ) {\r\n return null;\r\n }\r\n\r\n const { isModalOpen } = this.state;\r\n const { className, heading, clubRenewalCTA, clubRenewalMessage } = this.props.config;\r\n {\r\n this._startDelay();\r\n }\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n className: className,\r\n isOpen: isModalOpen,\r\n heading: heading && this._renderHeading,\r\n clubRenewalCTA: clubRenewalCTA && this._renderClubRenewalCTA,\r\n clubRenewalMessage: clubRenewalMessage && this._renderClubRenewalMessage,\r\n onCloseModal: this._closeModal\r\n };\r\n if (!this.state.popupReady) {\r\n return null;\r\n }\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private getCustomerDDAttribute = () => {\r\n const customer = this.props.data.customerInformation.result!;\r\n const customerAttr = customer?.Attributes?.filter((attr: any) => {\r\n return attr.Name === 'Direct Debit';\r\n });\r\n if (customerAttr) {\r\n this.setState({\r\n customerDDAttribute: customerAttr[0].AttributeValue?.StringValue\r\n });\r\n }\r\n };\r\n private getLoyaltyRemainingDays = () => {\r\n const loyaltyGroup =\r\n this.props.data.loyaltyCard?.result?.LoyaltyGroups &&\r\n this.props.data.loyaltyCard?.result?.LoyaltyGroups[0].LoyaltyCardTiers?.find(tier => {\r\n return tier.TierId === 'Club Plus';\r\n });\r\n\r\n const validToDate = loyaltyGroup && loyaltyGroup.ValidTo;\r\n\r\n const endDate = new Date(validToDate ?? '');\r\n const today = new Date();\r\n const timeDifference = endDate.getTime() - today.getTime() + 24 * 60 * 60 * 1000;\r\n const remainingDays = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));\r\n\r\n if (remainingDays) {\r\n this.setState({ daysLeft: remainingDays });\r\n }\r\n\r\n const formattedDate = setDateFormat(endDate.toLocaleDateString('en-GB'));\r\n formattedDate && this.setState({ expiryDate: formattedDate });\r\n };\r\n\r\n // Delays the modal to show after specific time span as per delay config\r\n private _startDelay(): void {\r\n if (!this._delayStarted) {\r\n const delayTime = this.props.config.delay || 0;\r\n this._delayStarted = true;\r\n MsDyn365.isBrowser &&\r\n setTimeout(() => {\r\n this.setState({ popupReady: true }, () => {});\r\n }, delayTime * 1000);\r\n }\r\n }\r\n private _cookieExist(name: string): boolean {\r\n const { cookies } = this.props.context.request;\r\n // if cookie exists, don't display\r\n if ((cookies.get as (name: string, isEssential: boolean) => ICookieValue)(name, true).status === 'FOUND') {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n private _setCookie(name: string, deltaDaysFromToday: number): void {\r\n const { cookies } = this.props.context.request;\r\n const expirationDate = new Date(Date.now());\r\n expirationDate.setTime(expirationDate.getTime() + deltaDaysFromToday * 24 * 60 * 60 * 1000);\r\n\r\n cookies.set(name, false, {\r\n expires: deltaDaysFromToday ? expirationDate : null,\r\n isEssential: true\r\n } as {});\r\n }\r\n // method to close modal, reset states and set cookies\r\n private _closeModal(): void {\r\n const remindTime = this.props.config.remindTime || 0;\r\n this._setCookie(this._cookie.name, remindTime);\r\n\r\n this.setState({\r\n isModalOpen: false,\r\n popupReady: false,\r\n daysLeft: 0,\r\n customerDDAttribute: '',\r\n activeTier: ''\r\n });\r\n }\r\n // Heading for Club renewal popup\r\n private get _renderHeading(): JSX.Element {\r\n const { heading } = this.props.config;\r\n return heading ? : <>;\r\n }\r\n // Club renewal CTA\r\n private get _renderClubRenewalCTA(): JSX.Element {\r\n const { clubRenewalCTA } = this.props.config;\r\n return clubRenewalCTA ? (\r\n \r\n {clubRenewalCTA.linkText}\r\n \r\n ) : (\r\n <>\r\n );\r\n }\r\n // Message for Club renewal\r\n private get _renderClubRenewalMessage(): JSX.Element {\r\n const { clubRenewalMessage } = this.props.config;\r\n return

{clubRenewalMessage?.replace('{date}', this.state.expiryDate)}

;\r\n }\r\n}\r\n\r\nexport default DobbiesClubRenewal;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IDobbiesClubRenewalViewProps } from './dobbies-club-renewal';\r\n\r\nexport default (props: IDobbiesClubRenewalViewProps) => {\r\n const { isOpen, heading, onCloseModal, clubRenewalCTA, clubRenewalMessage } = props;\r\n\r\n const clubRenewalPopup = (\r\n <>\r\n \r\n <>{heading}\r\n {