{"version":3,"file":"static/js/22.e98710e202d7c0306ef0.chunk.js","mappings":";2MAgBA,MAkJA,EAlJgEA,IAO3D,IAP4D,4BAC7DC,EAA2B,oBAC3BC,EAAmB,aACnBC,EAAY,WACZC,EAAU,oBACVC,EAAmB,UACnBC,GACHN,EACG,MAAMO,EAAqBC,EAAmBC,MAAKC,GAAKA,EAAEC,OAASV,KAE5DW,EAAaC,IAAkBC,EAAAA,EAAAA,WAASP,aAAkB,EAAlBA,EAAoBQ,YAAa,KACzEC,EAAaC,IAAkBH,EAAAA,EAAAA,UAASV,GAAc,KACtDc,EAAkBC,GAAuBC,IAAAA,SAAe,IAEzDC,EAAiD,CACnDC,UAAW,CACPC,QAAS,OACTC,cAAe,MACfC,QAAS,EACTC,MAAO,QAEXC,SAAU,CACND,MAAO,MACPE,OAAQ,OACRC,SAAU,QAEdC,MAAO,CACHJ,MAAO,MACPE,OAAQ,OACRC,SAAU,QAEdE,OAAQ,CACJF,SAAU,UAMlBG,EAAAA,EAAAA,YAAU,KAUN,GAAI5B,EAAY,CACZ,MAAM6B,EAViBC,KACvB,IAAK,MAAMC,KAAW3B,EAClB,GAAI0B,EAAME,WAAWD,EAAQpB,WACzB,OAAOoB,EAGf,OAAO,IAAI,EAIaE,CAAkBjC,GAC1CS,GAAeoB,aAAe,EAAfA,EAAiBlB,YAAa,IAC7C,MAAMuB,EAAqBlC,EAAWmC,SAAQN,aAAe,EAAfA,EAAiBlB,YAAa,GAAI,IAChFE,EAAeqB,GAEf,MAAME,EAAmBC,EAAoBH,GAEzCE,GACArB,EAAoBqB,MAG7B,CAACpC,IAEJ,MAAMqC,EAAuBC,MAGrBA,EAAeC,QAFA,aAEsBC,KAAKF,MACtCA,EAAeC,OAAS,EACjBrC,EAAUuC,wBACVH,EAAeC,OAAS,GACxBrC,EAAUwC,wBAEVxC,EAAUyC,6BAgC7B,OACI3B,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,OAAK4B,MAAO3B,EAAaC,WACrBF,IAAAA,cAAA,UACI4B,MAAO3B,EAAaM,SACpBsB,aAAc1C,aAAkB,EAAlBA,EAAoBQ,UAClCmC,SAAUhD,EACViD,SAjBiBC,IAC7B,MAAMC,EAAiBC,OAAOF,EAAMG,OAAOrB,OAC3CrB,EAAewC,GAEf,MAAMG,EAAqBH,EAAiBrC,EACtCwB,EAAmBC,EAAoBzB,GAE7CX,EAAoBW,EAAawC,IAAsBhB,EAAiB,IAY1DtC,GACEM,EAAmBiD,KAAI,CAAC1B,EAAQ2B,IAC5BtC,IAAAA,cAAA,UAAQuC,IAAKD,EAAOxB,MAAOH,EAAOhB,UAAWiC,MAAO3B,EAAaU,QAC5DA,EAAOpB,KAAI,IAAGoB,EAAOhB,aAGjCb,GACGkB,IAAAA,cAAA,UAAQc,MAAO3B,aAAkB,EAAlBA,EAAoBQ,UAAWiC,MAAO3B,EAAaU,QAC7DxB,aAAkB,EAAlBA,EAAoBI,KAAI,IAAGJ,aAAkB,EAAlBA,EAAoBQ,YAK5DK,IAAAA,cAAA,SACIwC,KAAK,MACLC,GAAI1D,EACJ2D,KAAM3D,EACN6C,MAAO3B,EAAaS,MACpBI,MAAOlB,EACPmC,SAtDiBC,IAC7B,MAAMV,EAAiBY,OAAOF,EAAMG,OAAOrB,OAC3CjB,EAAeyB,GAEf,MAAMc,EAAqB5C,EAAc8B,EACnCF,EAAmBC,EAAoBC,GAKzCvB,EAHCqB,GACmB,IAKxBnC,EAAoBqC,EAAgBc,IAAsBhB,EAAiB,KA6CtEtB,GACGE,IAAAA,cAAA,OAAK2C,KAAK,QAAO,YAAW,YAAW,cAAa,QAChD3C,IAAAA,cAAA,KAAGyC,GAAG,aAAab,MAAO,CAAEgB,MAAO,YAC9B9C,IAId,0tBC1HX,IAAM+C,EAAN,cAA8B7C,EAAAA,UAA9B8C,kCAiDY,KAAAC,KAAOC,UACXC,KAAKC,MAAMC,YAAYJ,KAAK,CACxBK,OAAQH,KAAKG,SAEbH,KAAKI,kCACLJ,KAAKC,MAAMC,YAAYG,WAIvB,KAAAF,OAAS,KACbH,KAAKC,MAAMC,YAAYI,YAAY,CAE3C,CA5DkBC,kBACV,MAAgF,aAAxEP,KAAKC,MAAMO,KAAKC,SAASC,QAAUV,KAAKC,MAAMO,KAAKC,SAASE,OACxE,CACcP,uCACV,MAAM,gBAAEQ,EAAe,MAAEC,GAAUb,KAAKC,MAAMa,QAAQC,QAEtD,SADoBF,GAAsB,MAAbA,EAAMG,KAAeJ,IAAmBC,EAAMI,eAE/E,CAEOC,qBAEHC,EAAAA,EAAAA,KACI,IAAMnB,KAAKO,cACXR,gBACUC,KAAKF,MAAM,GAG7B,CAEOsB,SAAM,IAAAC,EACT,MACIC,QAAQ,UAAEC,GACVrB,aAAa,QAAEsB,IACfxB,KAAKC,MACHwB,EAAwC,GACT,QAArCJ,EAAArB,KAAKC,MAAMO,KAAKkB,eAAehB,cAAM,IAAAW,GAArCA,EAAuCM,SAAQ,CAACC,EAAMvC,KAClDoC,EAAiBI,KAAK,CAClBvC,IAAKsC,EAAKE,gBACVjE,MAAO+D,EAAKG,WACd,IAGN,MAAMC,EAASC,EAAAA,EAAAA,EAAA,GACRjC,KAAKC,OACLD,KAAKkC,OAAK,IACb/B,OAAQH,KAAKG,OACbgC,YAAanC,KAAKC,MAClBL,gBAAiB,CACbuC,YAAanC,KAAKC,MAClBsB,UAAWa,IAAW,sBAAuBb,EAAWC,EAAU,OAAS,QAE/EE,eAAgBD,EAChBY,+BAAgCrC,KAAKI,mCAGzC,OAAOJ,KAAKC,MAAMqC,WAAWN,EACjC,IA9CUO,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,iCAGCD,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,qDAJP5C,GAAe2C,EAAAA,EAAAA,IAAA,CAFpBE,EAAAA,gBACAC,EAAAA,IACK9C,GA+DN,2JClGO,MAAM+C,EAAmB,CAC5BC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MAC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","sources":["webpack://venchi-ecommerce-msdyn365/./src/common/components/phone-number-input/index.tsx?2507","webpack://venchi-ecommerce-msdyn365/./src/modules/checkout-invoice/checkout-invoice.tsx?8775","webpack://venchi-ecommerce-msdyn365/./src/modules/checkout-invoice/common/convert_a2_a3.ts?385f","webpack://venchi-ecommerce-msdyn365/./src/modules/checkout-invoice/common/fiscal-code-utils.ts?49ce","webpack://venchi-ecommerce-msdyn365/./src/modules/checkout-invoice/checkout-invoice.view.tsx?db30","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-balance-check/loyalty-balance-check.tsx?efe1","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-balance-check/loyalty-balance-check.view.tsx?49d9","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-store-sign-up/loyalty-store-sign-up.tsx?5eec","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/textWithLineBreaks.tsx?aad0","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-store-sign-up/loyalty-store-sign-up.view.tsx?b7f5","webpack://venchi-ecommerce-msdyn365/./src/modules/newsletter-block/newsletter-block.tsx?8702","webpack://venchi-ecommerce-msdyn365/./src/modules/newsletter-block/newsletter-block.props.autogenerated.ts?e1dd","webpack://venchi-ecommerce-msdyn365/./src/modules/newsletter-block/newsletter-block.view.tsx?b94f","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utilities/quantity/Quantity.tsx?c3db","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/constants.ts?e30c","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/determineSiteLanguageForAbandonedCart.ts?fa12","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/buybox.view.tsx?fc20","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/getCustomDiscountPercentage.ts?8d75","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/cart.view.tsx?0fd8","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/components/navigation-menu-utilities.tsx?ca80","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/navigation-menu.view.tsx?2c75","webpack://venchi-ecommerce-msdyn365/./src/types/site-language-for-abandoned-cart.types.ts?6da1","webpack://venchi-ecommerce-msdyn365/../../src/checkout-state-data-action.ts?8344","webpack://venchi-ecommerce-msdyn365/../../src/checkout-state.ts?acd8","webpack://venchi-ecommerce-msdyn365/../../src/checkout-utilities.data.ts?b2cc","webpack://venchi-ecommerce-msdyn365/../../../src/module-state-manager/module-state.ts?7579","webpack://venchi-ecommerce-msdyn365/../../../src/module-state-manager/with-module-state.tsx?61ca"],"sourcesContent":["import React, { useState, useEffect, CSSProperties } from 'react';\r\n\r\nimport countryCodeOptions from './countryCodes.json';\r\n\r\ninterface PhoneInputComponentProps {\r\n channelCountryRegionISOCode: string; // Default country ISO code (IT, DE, US, ...)\r\n isCountryCodeHidden: boolean; // Config for disabling the country code selector, e.g for the US website\r\n phoneInputId: string; // For labels, and other html feature\r\n phoneValue?: string;\r\n onPhoneNumberChange: (phoneNumber: string, fullPhoneNumber: string, hasValidationError: boolean) => void;\r\n resources: {\r\n phoneValidationErrorMin: string;\r\n phoneValidationErrorMax: string;\r\n phoneValidationErrorNumeric: string;\r\n };\r\n}\r\nconst PhoneInputComponent: React.FC = ({\r\n channelCountryRegionISOCode,\r\n isCountryCodeHidden,\r\n phoneInputId,\r\n phoneValue,\r\n onPhoneNumberChange,\r\n resources\r\n}) => {\r\n const defaultCountryCode = countryCodeOptions.find(c => c.code === channelCountryRegionISOCode);\r\n\r\n const [countryCode, setCountryCode] = useState(defaultCountryCode?.dial_code || '');\r\n const [phoneNumber, setPhoneNumber] = useState(phoneValue || '');\r\n const [phoneNumberError, setPhoneNumberError] = React.useState('');\r\n\r\n const customStyles: { [key: string]: CSSProperties } = {\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n padding: 0,\r\n width: '100%'\r\n },\r\n dropdown: {\r\n width: '30%',\r\n height: '47px',\r\n fontSize: '13px'\r\n },\r\n input: {\r\n width: '70%',\r\n height: '47px',\r\n fontSize: '14px'\r\n },\r\n option: {\r\n fontSize: '14px'\r\n }\r\n };\r\n\r\n // TODO: please test this part when you add phone number\r\n // input in profile information column\r\n useEffect(() => {\r\n const detectCountryCode = (value: string) => {\r\n for (const country of countryCodeOptions) {\r\n if (value.startsWith(country.dial_code)) {\r\n return country;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n if (phoneValue) {\r\n const detectedCountry = detectCountryCode(phoneValue);\r\n setCountryCode(detectedCountry?.dial_code || '');\r\n const defaultPhoneNumber = phoneValue.replace(detectedCountry?.dial_code || '', '');\r\n setPhoneNumber(defaultPhoneNumber);\r\n\r\n const validationResult = validatePhoneNumber(defaultPhoneNumber);\r\n\r\n if (validationResult) {\r\n setPhoneNumberError(validationResult);\r\n }\r\n }\r\n }, [phoneValue]);\r\n\r\n const validatePhoneNumber = (newPhoneNumber: string) => {\r\n const phoneRegex = /^\\d{4,11}$/;\r\n\r\n if (newPhoneNumber.length && !phoneRegex.test(newPhoneNumber)) {\r\n if (newPhoneNumber.length < 4) {\r\n return resources.phoneValidationErrorMin;\r\n } else if (newPhoneNumber.length > 11) {\r\n return resources.phoneValidationErrorMax;\r\n } else {\r\n return resources.phoneValidationErrorNumeric;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const handlePhoneNumberChange = (event: any) => {\r\n const newPhoneNumber = String(event.target.value);\r\n setPhoneNumber(newPhoneNumber);\r\n\r\n const newPhoneNumberFull = countryCode + newPhoneNumber;\r\n const validationResult = validatePhoneNumber(newPhoneNumber);\r\n\r\n if (!validationResult) {\r\n setPhoneNumberError('');\r\n } else {\r\n setPhoneNumberError(validationResult);\r\n }\r\n\r\n onPhoneNumberChange(newPhoneNumber, newPhoneNumberFull, !!validationResult);\r\n };\r\n\r\n const handleCountryCodeChange = (event: any) => {\r\n const newCountryCode = String(event.target.value);\r\n setCountryCode(newCountryCode);\r\n\r\n const newPhoneNumberFull = newCountryCode + phoneNumber;\r\n const validationResult = validatePhoneNumber(phoneNumber);\r\n\r\n onPhoneNumberChange(phoneNumber, newPhoneNumberFull, !!validationResult);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {!isCountryCodeHidden &&\r\n countryCodeOptions.map((option, index) => (\r\n \r\n ))}\r\n {isCountryCodeHidden && (\r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n\r\n {phoneNumberError && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PhoneInputComponent;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IModuleStateProps, withModuleState, IModuleStateManager } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { computed, when } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { ICheckoutInvoiceData } from './checkout-invoice.data';\r\nimport { ICheckoutInvoiceProps } from './checkout-invoice.props.autogenerated';\r\n\r\nexport interface ICheckoutInvoiceModuleProps extends ICheckoutInvoiceProps, IModuleStateProps {}\r\n\r\ninterface ICountriesOptions {\r\n key: string | undefined;\r\n value: string | undefined;\r\n}\r\nexport interface ICheckoutInvoiceViewProps extends ICheckoutInvoiceModuleProps {\r\n CheckoutInvoice: IModuleProps;\r\n moduleProps: ICheckoutInvoiceModuleProps;\r\n countryRegions: ICountriesOptions[];\r\n moduleState: IModuleStateManager;\r\n onEdit?(): void;\r\n paymentVerificationRedirection: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CheckoutInvoice component\r\n * @extends {React.PureComponent>}\r\n */\r\n// @ts-ignore\r\n@withModuleState\r\n@observer\r\nclass CheckoutInvoice extends React.Component {\r\n @computed get isDataReady(): boolean {\r\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\r\n }\r\n @computed get isPaymentVerificationRedirection(): boolean {\r\n const { requestFormData, query } = this.props.context.request;\r\n const redirection = query && query.pv === '1' && (requestFormData || query.redirectResult) ? true : false;\r\n return redirection;\r\n }\r\n\r\n public componentDidMount(): void {\r\n // @ts-ignore: Compiler not reconizing condition check for function params\r\n when(\r\n () => this.isDataReady,\r\n async () => {\r\n await this.init();\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n config: { className },\r\n moduleState: { isReady }\r\n } = this.props;\r\n const countriesOptions: ICountriesOptions[] = [];\r\n this.props.data.countryRegions.result?.forEach((item, index: number) => {\r\n countriesOptions.push({\r\n key: item.CountryRegionId,\r\n value: item.ShortName\r\n });\r\n });\r\n\r\n const viewProps: ICheckoutInvoiceViewProps = {\r\n ...this.props,\r\n ...this.state,\r\n onEdit: this.onEdit,\r\n moduleProps: this.props,\r\n CheckoutInvoice: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-invoice', className, isReady ? 'show' : 'add')\r\n },\r\n countryRegions: countriesOptions,\r\n paymentVerificationRedirection: this.isPaymentVerificationRedirection\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private init = async (): Promise => {\r\n this.props.moduleState.init({\r\n onEdit: this.onEdit\r\n });\r\n if (this.isPaymentVerificationRedirection) {\r\n this.props.moduleState.onReady();\r\n }\r\n };\r\n\r\n private onEdit = (): void => {\r\n this.props.moduleState.onUpdating();\r\n };\r\n}\r\n\r\nexport default CheckoutInvoice;\r\n","// tslint:disable-next-line:variable-name\r\nexport const convert_a2_to_a3 = {\r\n AF: 'AFG',\r\n AX: 'ALA',\r\n AL: 'ALB',\r\n DZ: 'DZA',\r\n AS: 'ASM',\r\n AD: 'AND',\r\n AO: 'AGO',\r\n AI: 'AIA',\r\n AQ: 'ATA',\r\n AG: 'ATG',\r\n AR: 'ARG',\r\n AM: 'ARM',\r\n AW: 'ABW',\r\n AU: 'AUS',\r\n AT: 'AUT',\r\n AZ: 'AZE',\r\n BS: 'BHS',\r\n BH: 'BHR',\r\n BD: 'BGD',\r\n BB: 'BRB',\r\n BY: 'BLR',\r\n BE: 'BEL',\r\n BZ: 'BLZ',\r\n BJ: 'BEN',\r\n BM: 'BMU',\r\n BT: 'BTN',\r\n BO: 'BOL',\r\n BA: 'BIH',\r\n BW: 'BWA',\r\n BV: 'BVT',\r\n BR: 'BRA',\r\n IO: 'IOT',\r\n BN: 'BRN',\r\n BG: 'BGR',\r\n BF: 'BFA',\r\n BI: 'BDI',\r\n KH: 'KHM',\r\n CM: 'CMR',\r\n CA: 'CAN',\r\n CV: 'CPV',\r\n KY: 'CYM',\r\n CF: 'CAF',\r\n TD: 'TCD',\r\n CL: 'CHL',\r\n CN: 'CHN',\r\n CX: 'CXR',\r\n CC: 'CCK',\r\n CO: 'COL',\r\n KM: 'COM',\r\n CG: 'COG',\r\n CD: 'COD',\r\n CK: 'COK',\r\n CR: 'CRI',\r\n CI: 'CIV',\r\n HR: 'HRV',\r\n CU: 'CUB',\r\n CY: 'CYP',\r\n CZ: 'CZE',\r\n DK: 'DNK',\r\n DJ: 'DJI',\r\n DM: 'DMA',\r\n DO: 'DOM',\r\n EC: 'ECU',\r\n EG: 'EGY',\r\n SV: 'SLV',\r\n GQ: 'GNQ',\r\n ER: 'ERI',\r\n EE: 'EST',\r\n ET: 'ETH',\r\n FK: 'FLK',\r\n FO: 'FRO',\r\n FJ: 'FJI',\r\n FI: 'FIN',\r\n FR: 'FRA',\r\n GF: 'GUF',\r\n PF: 'PYF',\r\n TF: 'ATF',\r\n GA: 'GAB',\r\n GM: 'GMB',\r\n GE: 'GEO',\r\n DE: 'DEU',\r\n GH: 'GHA',\r\n GI: 'GIB',\r\n GR: 'GRC',\r\n GL: 'GRL',\r\n GD: 'GRD',\r\n GP: 'GLP',\r\n GU: 'GUM',\r\n GT: 'GTM',\r\n GG: 'GGY',\r\n GN: 'GIN',\r\n GW: 'GNB',\r\n GY: 'GUY',\r\n HT: 'HTI',\r\n HM: 'HMD',\r\n VA: 'VAT',\r\n HN: 'HND',\r\n HK: 'HKG',\r\n HU: 'HUN',\r\n IS: 'ISL',\r\n IN: 'IND',\r\n ID: 'IDN',\r\n IR: 'IRN',\r\n IQ: 'IRQ',\r\n IE: 'IRL',\r\n IM: 'IMN',\r\n IL: 'ISR',\r\n IT: 'ITA',\r\n JM: 'JAM',\r\n JP: 'JPN',\r\n JE: 'JEY',\r\n JO: 'JOR',\r\n KZ: 'KAZ',\r\n KE: 'KEN',\r\n KI: 'KIR',\r\n KP: 'PRK',\r\n KR: 'KOR',\r\n KW: 'KWT',\r\n KG: 'KGZ',\r\n LA: 'LAO',\r\n LV: 'LVA',\r\n LB: 'LBN',\r\n LS: 'LSO',\r\n LR: 'LBR',\r\n LY: 'LBY',\r\n LI: 'LIE',\r\n LT: 'LTU',\r\n LU: 'LUX',\r\n MO: 'MAC',\r\n MK: 'MKD',\r\n MG: 'MDG',\r\n MW: 'MWI',\r\n MY: 'MYS',\r\n MV: 'MDV',\r\n ML: 'MLI',\r\n MT: 'MLT',\r\n MH: 'MHL',\r\n MQ: 'MTQ',\r\n MR: 'MRT',\r\n MU: 'MUS',\r\n YT: 'MYT',\r\n MX: 'MEX',\r\n FM: 'FSM',\r\n MD: 'MDA',\r\n MC: 'MCO',\r\n MN: 'MNG',\r\n ME: 'MNE',\r\n MS: 'MSR',\r\n MA: 'MAR',\r\n MZ: 'MOZ',\r\n MM: 'MMR',\r\n NA: 'NAM',\r\n NR: 'NRU',\r\n NP: 'NPL',\r\n NL: 'NLD',\r\n AN: 'ANT',\r\n NC: 'NCL',\r\n NZ: 'NZL',\r\n NI: 'NIC',\r\n NE: 'NER',\r\n NG: 'NGA',\r\n NU: 'NIU',\r\n NF: 'NFK',\r\n MP: 'MNP',\r\n NO: 'NOR',\r\n OM: 'OMN',\r\n PK: 'PAK',\r\n PW: 'PLW',\r\n PS: 'PSE',\r\n PA: 'PAN',\r\n PG: 'PNG',\r\n PY: 'PRY',\r\n PE: 'PER',\r\n PH: 'PHL',\r\n PN: 'PCN',\r\n PL: 'POL',\r\n PT: 'PRT',\r\n PR: 'PRI',\r\n QA: 'QAT',\r\n RE: 'REU',\r\n RO: 'ROU',\r\n RU: 'RUS',\r\n RW: 'RWA',\r\n BL: 'BLM',\r\n SH: 'SHN',\r\n KN: 'KNA',\r\n LC: 'LCA',\r\n MF: 'MAF',\r\n PM: 'SPM',\r\n VC: 'VCT',\r\n WS: 'WSM',\r\n SM: 'SMR',\r\n ST: 'STP',\r\n SA: 'SAU',\r\n SN: 'SEN',\r\n RS: 'SRB',\r\n SC: 'SYC',\r\n SL: 'SLE',\r\n SG: 'SGP',\r\n SK: 'SVK',\r\n SI: 'SVN',\r\n SB: 'SLB',\r\n SO: 'SOM',\r\n ZA: 'ZAF',\r\n GS: 'SGS',\r\n ES: 'ESP',\r\n LK: 'LKA',\r\n SD: 'SDN',\r\n SR: 'SUR',\r\n SJ: 'SJM',\r\n SZ: 'SWZ',\r\n SE: 'SWE',\r\n CH: 'CHE',\r\n SY: 'SYR',\r\n TW: 'TWN',\r\n TJ: 'TJK',\r\n TZ: 'TZA',\r\n TH: 'THA',\r\n TL: 'TLS',\r\n TG: 'TGO',\r\n TK: 'TKL',\r\n TO: 'TON',\r\n TT: 'TTO',\r\n TN: 'TUN',\r\n TR: 'TUR',\r\n TM: 'TKM',\r\n TC: 'TCA',\r\n TV: 'TUV',\r\n UG: 'UGA',\r\n UA: 'UKR',\r\n AE: 'ARE',\r\n GB: 'GBR',\r\n US: 'USA',\r\n UM: 'UMI',\r\n UY: 'URY',\r\n UZ: 'UZB',\r\n VU: 'VUT',\r\n VE: 'VEN',\r\n VN: 'VNM',\r\n VG: 'VGB',\r\n VI: 'VIR',\r\n WF: 'WLF',\r\n EH: 'ESH',\r\n YE: 'YEM',\r\n ZM: 'ZMB',\r\n ZW: 'ZWE'\r\n};\r\n","export const CHECK_CODE_ODD = new Map([\r\n ['0', 1],\r\n ['1', 0],\r\n ['2', 5],\r\n ['3', 7],\r\n ['4', 9],\r\n ['5', 13],\r\n ['6', 15],\r\n ['7', 17],\r\n ['8', 19],\r\n ['9', 21],\r\n ['A', 1],\r\n ['B', 0],\r\n ['C', 5],\r\n ['D', 7],\r\n ['E', 9],\r\n ['F', 13],\r\n ['G', 15],\r\n ['H', 17],\r\n ['I', 19],\r\n ['J', 21],\r\n ['K', 2],\r\n ['L', 4],\r\n ['M', 18],\r\n ['N', 20],\r\n ['O', 11],\r\n ['P', 3],\r\n ['Q', 6],\r\n ['R', 8],\r\n ['S', 12],\r\n ['T', 14],\r\n ['U', 16],\r\n ['V', 10],\r\n ['W', 22],\r\n ['X', 25],\r\n ['Y', 24],\r\n ['Z', 23]\r\n]);\r\n\r\nexport const CHECK_CODE_EVEN = new Map([\r\n ['0', 0],\r\n ['1', 1],\r\n ['2', 2],\r\n ['3', 3],\r\n ['4', 4],\r\n ['5', 5],\r\n ['6', 6],\r\n ['7', 7],\r\n ['8', 8],\r\n ['9', 9],\r\n ['A', 0],\r\n ['B', 1],\r\n ['C', 2],\r\n ['D', 3],\r\n ['E', 4],\r\n ['F', 5],\r\n ['G', 6],\r\n ['H', 7],\r\n ['I', 8],\r\n ['J', 9],\r\n ['K', 10],\r\n ['L', 11],\r\n ['M', 12],\r\n ['N', 13],\r\n ['O', 14],\r\n ['P', 15],\r\n ['Q', 16],\r\n ['R', 17],\r\n ['S', 18],\r\n ['T', 19],\r\n ['U', 20],\r\n ['V', 21],\r\n ['W', 22],\r\n ['X', 23],\r\n ['Y', 24],\r\n ['Z', 25]\r\n]);\r\n\r\nexport const CHECK_CODE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { CommerceProperty } from '@msdyn365-commerce/retail-proxy';\r\n// import { getCheckoutState } from '@msdyn365-commerce/global-state';\r\nimport * as React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { validateVatNum_CAPAsync } from '../../actions/DataActionExtension.g';\r\n// import { getInvoiceAccountInfo_CAPAsync } from '../../actions/DataActionExtension.g';\r\nimport { ICheckoutInvoiceModuleProps, ICheckoutInvoiceViewProps } from './checkout-invoice';\r\nimport { convert_a2_to_a3 } from './common/convert_a2_a3';\r\nimport { CHECK_CODE_EVEN, CHECK_CODE_ODD, CHECK_CODE_CHARS } from './common/fiscal-code-utils';\r\nimport get from 'lodash/get';\r\n\r\n// import { CartCheckout } from '@msdyn365-commerce-modules/checkout';\r\n\r\nconst allFields = [\r\n 'billing',\r\n 'InvoiceCustAccount_CAP',\r\n 'Type_CAP',\r\n 'Street_CAP',\r\n 'StreetNumber_CAP',\r\n 'ZipCode_CAP',\r\n 'City_CAP',\r\n 'Country_CAP',\r\n 'OrgName_CAP',\r\n 'FirstName_CAP',\r\n 'LastName_CAP',\r\n 'VatNum_CAP',\r\n 'FiscalCode_CAP',\r\n 'PEC_CAP',\r\n 'SDI_CAP'\r\n];\r\n\r\nconst updateExtProps = async (data: Inputs, moduleProps: ICheckoutInvoiceModuleProps) => {\r\n const dataCompiled = [];\r\n Object.keys(data).forEach(key => {\r\n const value =\r\n typeof get(data, key) === 'boolean'\r\n ? {\r\n BooleanValue: get(data, key)\r\n }\r\n : key === 'Type_CAP'\r\n ? {\r\n IntegerValue: Number(get(data, key))\r\n }\r\n : { StringValue: get(data, key) };\r\n dataCompiled.push({\r\n Key: key,\r\n Value: value\r\n });\r\n });\r\n\r\n for (const str of allFields) {\r\n if (!Object.keys(data).includes(str)) {\r\n dataCompiled.push({\r\n Key: str,\r\n Value: { StringValue: '' }\r\n });\r\n }\r\n }\r\n\r\n const checkoutResult = moduleProps.data.checkout.result;\r\n\r\n const dataCompiledCc = [\r\n {\r\n Key: 'CustomInvoiceModuleCompiled_VEN',\r\n Value: {\r\n BooleanValue: true\r\n }\r\n }\r\n ];\r\n\r\n Array.prototype.push.apply(dataCompiledCc, dataCompiled);\r\n\r\n if (checkoutResult) {\r\n await checkoutResult.checkoutCart.updateExtensionProperties({\r\n newExtensionProperties: dataCompiledCc\r\n });\r\n } else {\r\n console.error('Cannot write invoice details on the checkout cart');\r\n }\r\n};\r\n\r\nconst _capDataRender = async (moduleProps: ICheckoutInvoiceModuleProps): Promise<[Inputs | null, boolean]> => {\r\n //const currentCheckoutState = await getCheckoutState(moduleProps.context.actionContext);\r\n const currentCheckoutState = moduleProps.data.checkout.result;\r\n\r\n const extProps = currentCheckoutState?.checkoutCart.cart?.ExtensionProperties;\r\n if (!extProps) {\r\n return [null, false];\r\n }\r\n const extPropsToRemoveA = extProps.filter(eProp => eProp.Key === 'ExtPropsRemove_CAP');\r\n const invoiceModuleCompiledA = extProps.filter(eProp => eProp.Key === 'CustomInvoiceModuleCompiled_VEN');\r\n const extPropsToRemove = extPropsToRemoveA && extPropsToRemoveA[0]?.Value?.BooleanValue;\r\n const invoiceModuleCompiled = (invoiceModuleCompiledA && invoiceModuleCompiledA[0]?.Value?.BooleanValue) ?? false;\r\n\r\n if (extPropsToRemove !== true) {\r\n return [convertExtPropertiesToInput(extProps), invoiceModuleCompiled];\r\n }\r\n return [null, false];\r\n};\r\n\r\nconst convertExtPropertiesToInput = (extProps: CommerceProperty[]): Inputs => {\r\n const inputs: Inputs = {} as Inputs;\r\n extProps.forEach(prop => {\r\n if (prop.Key && prop.Value) {\r\n const values = [prop.Value.StringValue, prop.Value.IntegerValue, prop.Value.BooleanValue].filter(\r\n value => value !== undefined && value !== null\r\n );\r\n const value = values.length > 0 ? values[0] : null;\r\n if (value !== null && value !== undefined && value !== '') {\r\n if (allFields.indexOf(prop.Key) > -1) {\r\n inputs[prop.Key] = value;\r\n }\r\n }\r\n }\r\n });\r\n // Return the inputs object\r\n return inputs;\r\n};\r\n\r\nconst _capDataSave = async (moduleProps: ICheckoutInvoiceModuleProps, data: Inputs) => {\r\n await updateExtProps(data, moduleProps);\r\n};\r\n\r\ntype Inputs = {\r\n City_CAP: string;\r\n FiscalCode_CAP: string;\r\n OrgName_CAP: string;\r\n PEC_CAP: string;\r\n SDI_CAP: string;\r\n StreetNumber_CAP: string;\r\n Street_CAP: string;\r\n VatNum_CAP: string;\r\n ZipCode_CAP: string;\r\n billing: boolean;\r\n\r\n Type_CAP: number;\r\n Country_CAP: string;\r\n InvoiceCustAccount_CAP: string;\r\n FirstName_CAP: string;\r\n LastName_CAP: string;\r\n};\r\n\r\ninterface IMaincategories {\r\n key: string | undefined;\r\n value: string | undefined;\r\n}\r\nconst countriesWithOptionalInvoice = [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'HRV',\r\n 'CYP',\r\n 'CZE',\r\n 'DNK',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'DEU',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'ITA',\r\n 'LVA',\r\n 'LTU',\r\n 'LUX',\r\n 'MLT',\r\n 'NLD',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'ESP',\r\n 'SWE',\r\n 'GBR'\r\n];\r\n\r\nconst validateFiscalCode15 = (codiceFiscale: string): boolean => {\r\n codiceFiscale = codiceFiscale.toUpperCase();\r\n let val = 0;\r\n for (let i = 0; i < 15; i = i + 1) {\r\n const c = codiceFiscale.charAt(i);\r\n val += i % 2 !== 0 ? CHECK_CODE_EVEN.get(c) ?? 0 : CHECK_CODE_ODD.get(c) ?? 0;\r\n }\r\n val = val % 26;\r\n return codiceFiscale.charAt(15) === CHECK_CODE_CHARS.charAt(val);\r\n};\r\nconst validateFiscalCode11 = (codiceFiscale: string): boolean => {\r\n if (!/^[0-9]{11}$/.test(codiceFiscale)) {\r\n return false;\r\n }\r\n if (codiceFiscale === '00000000000') {\r\n return false;\r\n }\r\n let val = 0;\r\n for (let i = 0; i < 10; i = i + 1) {\r\n const c = parseInt(codiceFiscale.charAt(i), 10);\r\n //se sono dispari\r\n if (i % 2 === 0) {\r\n val += c;\r\n } else {\r\n let evenC = c * 2;\r\n if (evenC > 9) {\r\n evenC = evenC - 9;\r\n }\r\n val += evenC;\r\n }\r\n }\r\n val = 10 - (val % 10);\r\n val = val % 10;\r\n return codiceFiscale.charAt(10) === val.toString();\r\n};\r\n\r\nconst validateFiscalCode = (codiceFiscale: string): boolean => {\r\n if (codiceFiscale.length === 16) {\r\n return validateFiscalCode15(codiceFiscale);\r\n }\r\n if (codiceFiscale.length === 11) {\r\n return validateFiscalCode11(codiceFiscale);\r\n }\r\n return false;\r\n};\r\n\r\nconst CheckoutInvoiceView: React.FC = props => {\r\n const { CheckoutInvoice, resources, countryRegions, moduleState, moduleProps, paymentVerificationRedirection } = props;\r\n const [dataCompiled, setDataCompiled] = React.useState();\r\n const shippingCountry = moduleProps?.data?.checkout?.result?.shippingAddress?.ThreeLetterISORegionName;\r\n const [billing, setBilling] = React.useState(false);\r\n const [typeSelected, setTypeSelected] = React.useState(0);\r\n const [countrySelected, setCountrySelected] = React.useState('');\r\n const fiscalPattern = /^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})$|([0-9]{11})$/i;\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n\r\n const customerId = CheckoutInvoice.moduleProps?.context?.actionContext?.requestContext?.user?.customerAccountNumber;\r\n const invoiceTypeOptions = [\r\n { key: '1', value: resources.typePersonLabel },\r\n { key: '2', value: resources.typeOrgLabel }\r\n ];\r\n\r\n React.useEffect(() => {\r\n void setData();\r\n // void getUserData();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!paymentVerificationRedirection) {\r\n if (shippingCountry && countriesWithOptionalInvoice.indexOf(shippingCountry) === -1) {\r\n if (!billing) {\r\n setBilling(true);\r\n setValue('billing', true, { shouldDirty: true });\r\n if (moduleState.status === 'ready') {\r\n moduleState.onEdit && moduleState.onEdit();\r\n }\r\n }\r\n } else if (typeSelected === 0) {\r\n setBilling(false);\r\n setValue('billing', false, { shouldDirty: true });\r\n }\r\n }\r\n }, [shippingCountry]);\r\n\r\n function gMapsAutocomplete() {\r\n setTimeout(() => {\r\n const boxes = document.querySelectorAll('.pac-container');\r\n boxes.forEach(box => box.remove());\r\n\r\n const autocompleteFormField = document.getElementsByName('Street_CAP')[0] as HTMLInputElement;\r\n if (autocompleteFormField === undefined || autocompleteFormField === null) {\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address']\r\n });\r\n\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n\r\n // @ts-ignore\r\n var checkListeners = window.google.maps.event.hasListeners(autocomplete, `place_changed`);\r\n\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocomplete);\r\n\r\n // @ts-ignore\r\n const listener = window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n const place = autocomplete.getPlace();\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n\r\n place.address_components.forEach((element: { types: string[]; long_name: string; short_name: string }) => {\r\n var checkZipCode = false;\r\n switch (element.types[0]) {\r\n case 'street_number':\r\n setValue('StreetNumber_CAP', element.long_name, {\r\n shouldDirty: true\r\n });\r\n break;\r\n case 'locality':\r\n setValue('City_CAP', element.long_name, {\r\n shouldDirty: true\r\n });\r\n break;\r\n case 'country':\r\n const countryValue = convert_a2_to_a3[element.short_name];\r\n setValue('Country_CAP', countryValue, { shouldDirty: true });\r\n setCountrySelected(countryValue);\r\n break;\r\n case 'postal_code':\r\n setValue('ZipCode_CAP', element.long_name, {\r\n shouldDirty: true\r\n });\r\n checkZipCode = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (!checkZipCode) {\r\n setValue('ZipCode_CAP', '', { shouldDirty: true });\r\n }\r\n });\r\n // @ts-ignore\r\n const street = document.getElementsByName('Street_CAP') as HTMLInputElement;\r\n street[0].value = street[0].value.split(',')[0];\r\n });\r\n });\r\n }\r\n\r\n const { register, handleSubmit, errors, setValue, setError, reset } = useForm();\r\n\r\n const _renderInput = (name: string, label: string, required: boolean, errorMessage: string, pattern?: RegExp): JSX.Element => {\r\n return (\r\n
\r\n \r\n \r\n {get(errors, name) && {errorMessage}}\r\n
\r\n );\r\n };\r\n\r\n const _renderTypeSelect = (name: string, label: string, options: IMaincategories[], required: boolean): JSX.Element => {\r\n return (\r\n
\r\n \r\n {\r\n setValue('Type_CAP', e.target.value, {\r\n shouldDirty: true\r\n });\r\n setTypeSelected(parseInt(e.target.value, 10));\r\n }}\r\n >\r\n \r\n {options.map(option => {\r\n return (\r\n \r\n );\r\n })}\r\n ;\r\n \r\n {get(errors, name) && {resources.genericFieldError}}\r\n
\r\n );\r\n };\r\n\r\n const _renderCountrySelect = (name: string, label: string, options: IMaincategories[], required: boolean): JSX.Element => {\r\n return (\r\n
\r\n \r\n {\r\n setCountrySelected(e.target.value);\r\n setValue('Country_CAP', e.target.value, {\r\n shouldDirty: true\r\n });\r\n }}\r\n >\r\n \r\n {options.map(option => {\r\n return (\r\n \r\n );\r\n })}\r\n ;\r\n \r\n {get(errors, name) && {resources.genericFieldError}}\r\n
\r\n );\r\n };\r\n\r\n const onSubmit = async (data: Inputs) => {\r\n if (data.VatNum_CAP && data.VatNum_CAP !== '') {\r\n void validateVatNum_CAPAsync({ callerContext: moduleProps.context?.actionContext }, data.VatNum_CAP, data.Country_CAP).then(\r\n response => {\r\n if (response.Status === true) {\r\n if (data.Country_CAP === 'ITA' && data.FiscalCode_CAP && data.FiscalCode_CAP !== '') {\r\n if (validateFiscalCode(data.FiscalCode_CAP)) {\r\n setDataCompiled(data);\r\n void _capDataSave(moduleProps, data);\r\n moduleState.onReady();\r\n reset(data);\r\n } else {\r\n setError('FiscalCode_CAP', {\r\n message: 'Fiscal Code Num not valid',\r\n shouldFocus: true\r\n });\r\n }\r\n } else {\r\n setDataCompiled(data);\r\n void _capDataSave(moduleProps, data);\r\n moduleState.onReady();\r\n reset(data);\r\n }\r\n } else {\r\n setError('VatNum_CAP', {\r\n message: 'Vat Num not valid',\r\n shouldFocus: true\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n if (data.Country_CAP === 'ITA' && data.FiscalCode_CAP && data.FiscalCode_CAP !== '') {\r\n if (validateFiscalCode(data.FiscalCode_CAP)) {\r\n setDataCompiled(data);\r\n void _capDataSave(moduleProps, data);\r\n moduleState.onReady();\r\n reset(data);\r\n } else {\r\n setError('FiscalCode_CAP', {\r\n message: 'Fiscal Code Num not valid',\r\n shouldFocus: true\r\n });\r\n }\r\n } else {\r\n setDataCompiled(data);\r\n void _capDataSave(moduleProps, data);\r\n moduleState.onReady();\r\n reset(data);\r\n }\r\n }\r\n };\r\n\r\n const _resetForm = () => {\r\n if (dataCompiled?.billing && !billing) {\r\n setBilling(true);\r\n setCountrySelected(dataCompiled.Country_CAP);\r\n setTypeSelected(dataCompiled.Type_CAP);\r\n } else if (dataCompiled && billing) {\r\n setCountrySelected(dataCompiled.Country_CAP);\r\n setTypeSelected(dataCompiled.Type_CAP);\r\n }\r\n moduleState.onReady();\r\n };\r\n\r\n const setData = async () => {\r\n const [dataLoadedFromExtProps, pageRefreshedDataSaved] = await _capDataRender(moduleProps);\r\n if (dataLoadedFromExtProps && pageRefreshedDataSaved && dataLoadedFromExtProps.billing !== undefined) {\r\n setDataCompiled(dataLoadedFromExtProps);\r\n setBilling(dataLoadedFromExtProps.billing);\r\n dataLoadedFromExtProps.Type_CAP && setTypeSelected(dataLoadedFromExtProps.Type_CAP);\r\n dataLoadedFromExtProps.Country_CAP && setCountrySelected(dataLoadedFromExtProps.Country_CAP);\r\n moduleState.onReady();\r\n reset(dataLoadedFromExtProps);\r\n }\r\n };\r\n\r\n // const getUserData = async () => {\r\n // if (customerId) {\r\n // await getInvoiceAccountInfo_CAPAsync({ callerContext: CheckoutInvoice.moduleProps.context?.actionContext }, customerId).then(\r\n // result => {\r\n // // console.log('getInvoiceAccountInfo_CAPAsync');\r\n // // console.log(result);\r\n // }\r\n // );\r\n // }\r\n // };\r\n\r\n if (moduleState.status === 'ready') {\r\n return (\r\n \r\n
\r\n {dataCompiled &&\r\n Object.keys(dataCompiled).map((keyName, i) => (\r\n \r\n {get(dataCompiled, keyName)}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n \r\n {shippingCountry && countriesWithOptionalInvoice.indexOf(shippingCountry) === -1 && (\r\n

\r\n {props.config.billingLabel}\r\n

\r\n )}\r\n
\r\n {billing && (\r\n <>\r\n {gMapsAutocomplete()}\r\n {customerId && (\r\n
\r\n \r\n
\r\n )}\r\n {_renderTypeSelect('Type_CAP', `${resources.typeLabel}`, invoiceTypeOptions, true)}\r\n {typeSelected !== 0 &&\r\n _renderInput('Street_CAP', `${resources.streetLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected !== 0 &&\r\n _renderInput('StreetNumber_CAP', `${resources.streetNumberLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected !== 0 &&\r\n _renderInput('ZipCode_CAP', `${resources.zipCodeLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected !== 0 && _renderInput('City_CAP', `${resources.cityLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected !== 0 && _renderCountrySelect('Country_CAP', `${resources.countryLabel}`, countryRegions, true)}\r\n {typeSelected === 2 &&\r\n _renderInput('OrgName_CAP', `${resources.orgNameLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected === 1 &&\r\n _renderInput('FirstName_CAP', `${resources.firstNameLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected === 1 &&\r\n _renderInput('LastName_CAP', `${resources.lastNameLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected === 2 &&\r\n countriesWithOptionalInvoice.indexOf(countrySelected) > -1 &&\r\n _renderInput('VatNum_CAP', `${resources.vatNumLabel}`, true, `${resources.vatNumberError}`)}\r\n {typeSelected !== 0 &&\r\n countrySelected === 'ITA' &&\r\n _renderInput(\r\n 'FiscalCode_CAP',\r\n `${resources.fiscalCodeLabel}`,\r\n true,\r\n `${resources.fiscalCodeError}`,\r\n fiscalPattern\r\n )}\r\n {typeSelected !== 0 &&\r\n countrySelected === 'ITA' &&\r\n typeSelected === 2 &&\r\n _renderInput('PEC_CAP', `${resources.pecLabel}`, true, `${resources.genericFieldError}`)}\r\n {typeSelected !== 0 &&\r\n countrySelected === 'ITA' &&\r\n typeSelected === 2 &&\r\n _renderInput('SDI_CAP', `${resources.sdiLabel}`, true, `${resources.genericFieldError}`)}\r\n \r\n )}\r\n
\r\n \r\n {resources.saveContinueBtnLabel}\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n};\r\nexport default CheckoutInvoiceView;\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 * as React from 'react';\r\n\r\nimport { ILoyaltyBalanceCheckData } from './loyalty-balance-check.data';\r\nimport { ILoyaltyBalanceCheckProps } from './loyalty-balance-check.props.autogenerated';\r\n\r\nexport interface ILoyaltyBalanceCheckViewProps extends ILoyaltyBalanceCheckProps {}\r\n\r\n/**\r\n *\r\n * LoyaltyBalanceCheck component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LoyaltyBalanceCheck extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default LoyaltyBalanceCheck;\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\nimport * as React from 'react';\r\nimport { ILoyaltyBalanceCheckViewProps } from './loyalty-balance-check';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { useForm } from 'react-hook-form';\r\nimport { getLoyaltyCard_DLXAsync } from '../../actions/DataActionExtension.g';\r\n\r\nconst LoyaltyBalanceCheckView: React.FC = props => {\r\n // const user_card_number = (document.getElementById('loyalty-card-input') as HTMLInputElement).value;\r\n const [points, setPoints] = React.useState(-1);\r\n const [tier, setTier] = React.useState('');\r\n\r\n const { register, handleSubmit } = useForm();\r\n\r\n const _submit = async (data: { loyalty_card_number: string; email: string }) => {\r\n // Protip: Check if the loyalty card's associated email address matches with the input one for improved security\r\n // console.log(data.loyalty_card_number);\r\n // console.log(data.email);\r\n\r\n await getLoyaltyCard_DLXAsync({ callerContext: props.context.actionContext }, data.loyalty_card_number, data.email)\r\n .then(result => {\r\n const tmp_card = result[0];\r\n // @ts-ignore\r\n const firstLoyaltyGroup = tmp_card.LoyaltyGroups[0];\r\n const highestTierId = firstLoyaltyGroup.HighestActiveLoyaltyCardTier;\r\n // @ts-ignore\r\n const tierDetails = firstLoyaltyGroup.LoyaltyCardTiers.filter(tier => tier.RecordId === highestTierId)[0];\r\n if (tierDetails.TierId) {\r\n setTier(tierDetails.TierId);\r\n }\r\n const tmp_points = tmp_card.RewardPoints ?? -1;\r\n setPoints(Array.isArray(tmp_points) ? tmp_points[0]?.ActivePoints ?? -1 : -1);\r\n if (typeof window !== undefined) {\r\n const points_div: HTMLDivElement = document.getElementById('points') as HTMLDivElement;\r\n points_div.style.display = 'block';\r\n const scrollIntoViewOptions: ScrollIntoViewOptions = { behavior: 'smooth' };\r\n if (window.innerWidth < 992) {\r\n (document.getElementById('text-p') as HTMLButtonElement).scrollIntoView(scrollIntoViewOptions);\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n setPoints(-1);\r\n if (typeof window !== undefined) {\r\n const points_div: HTMLDivElement = document.getElementById('points') as HTMLDivElement;\r\n points_div.style.display = 'block';\r\n const scrollIntoViewOptions: ScrollIntoViewOptions = { behavior: 'smooth' };\r\n if (window.innerWidth < 992) {\r\n (document.getElementById('text-p') as HTMLButtonElement).scrollIntoView(scrollIntoViewOptions);\r\n }\r\n }\r\n // console.log(error);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {props.config.headingText ?

{props.config.headingText}

: null}\r\n\r\n {props.config.paragraphText ? (\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {props.config.loyaltyCardLabel ? : null}\r\n \r\n
\r\n
\r\n {props.config.emailLabel ? : null}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {props.resources.balanceCheckLabel && props.resources.balanceCheckError ? (\r\n
\r\n {points !== -1 && tier !== '' ? (\r\n

{format(props.resources.balanceCheckLabel, points, tier)}

\r\n ) : (\r\n

{props.resources.balanceCheckError}

\r\n )}\r\n
\r\n ) : null}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoyaltyBalanceCheckView;\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 * as React from 'react';\r\n\r\nimport { ILoyaltyStoreSignUpData } from './loyalty-store-sign-up.data';\r\nimport { ILoyaltyStoreSignUpProps } from './loyalty-store-sign-up.props.autogenerated';\r\n\r\nexport interface ILoyaltyStoreSignUpViewProps extends ILoyaltyStoreSignUpProps {}\r\n\r\n/**\r\n *\r\n * LoyaltyStoreSignUp component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LoyaltyStoreSignUp extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default LoyaltyStoreSignUp;\r\n","import React from 'react';\r\n\r\nexport function textWithLineBreaks(text: string): React.ReactNode {\r\n return text.split('\\n').map((line, index) => (\r\n \r\n {line}\r\n
\r\n
\r\n ));\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { ILoyaltyStoreSignUpViewProps } from './loyalty-store-sign-up';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { signUp_DLXAsync } from '../../actions/DataActionExtension.g';\r\nimport { isMobile, VariantType, format } from '@msdyn365-commerce-modules/utilities';\r\nimport { textWithLineBreaks } from '../../themes/venchi/utils/textWithLineBreaks';\r\nimport PhoneInputComponent from '../../common/components/phone-number-input';\r\nimport { TEMPORARY_ACCOUNT_NUMBER_LENGTH } from '../../themes/venchi/utils/constants';\r\nimport {\r\n getSiteLanguageConfigFromContext,\r\n determineSiteLanguageForAbandonedCart\r\n} from '../../themes/venchi/utils/determineSiteLanguageForAbandonedCart';\r\n\r\n// Define the component\r\nconst LoyaltyStoreSignUpView: React.FC = props => {\r\n // Destructure props for easier access\r\n const {\r\n loyaltyStoreSignUpMandatoryAgreement,\r\n additionalFieldsHeading,\r\n birthdaySubtext,\r\n postalCodeSubtext,\r\n phoneNumberSubtext,\r\n // loyaltyVCLUBDetailsLinkText,\r\n feedbackAlreadySubscribed,\r\n feedbackCardBeingGenerated,\r\n feedbackSuccess,\r\n privacyPolicyURL,\r\n textGenericMarketing,\r\n // walletLoyaltyProgramName,\r\n loyaltyCouponCode,\r\n loyaltyBarcodeImage\r\n } = props.config;\r\n\r\n const {\r\n vClubCard,\r\n joinedLoyaltyThankYouHeader,\r\n loyaltyStoreSignUpSubmitButtonLabel,\r\n heresYourCouponCodeText,\r\n loyaltyRegistrationDateText,\r\n htmlGenericMarketing,\r\n htmlProfiling,\r\n htmlThirdParty,\r\n birthdayLabelText,\r\n addressZipCodeLabelOptional,\r\n phoneLabelText,\r\n emailAddressLabelText,\r\n emailErrortext,\r\n feedbackErrorText,\r\n loyaltyBarcodeText\r\n } = props.resources;\r\n\r\n // Define the form inputs type\r\n type FormInputs = {\r\n country: string;\r\n email: string;\r\n phone_number: string;\r\n marketing: boolean;\r\n profiling: boolean;\r\n };\r\n\r\n // Initialize form handling with react-hook-form\r\n const {\r\n register,\r\n watch,\r\n handleSubmit,\r\n formState: { errors }\r\n } = useForm({\r\n mode: 'onChange'\r\n });\r\n\r\n // This error is shown under the register button.\r\n const [phoneErrorMessage, setPhoneErrorMessage] = React.useState('');\r\n\r\n // const programString: string = walletLoyaltyProgramName || 'v-club-emea';\r\n\r\n // State variables for loading, disabled state, and subscription message\r\n const [loading, setLoading] = React.useState(false);\r\n const [disabled_state, setDisabled] = React.useState(false);\r\n const check_ref = React.useRef(null);\r\n const [submittedEmailAddress, setSubmittedEmailAddress] = React.useState(null);\r\n const [loyaltyCardNumber, setLoyaltyCardNumber] = React.useState(null);\r\n const [loyaltyEnrollmentDate, setLoyaltyEnrollmentDate] = React.useState(null);\r\n const [subscribeMessage, setSubscribeMessage] = React.useState({\r\n state: false,\r\n message: '',\r\n class: ''\r\n });\r\n\r\n const isMobileDevice =\r\n isMobile({ variant: VariantType.Browser, context: props.context.request }) === 'xs' ||\r\n isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs' ||\r\n isMobile({ variant: VariantType.Browser, context: props.context.request }) === 'sm' ||\r\n isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'sm';\r\n\r\n // Extract query parameters from the request context\r\n const query_dict = props.context.request.query as Object;\r\n const queryParameter = Object.keys(query_dict)[0];\r\n const store_code = Object.values(query_dict)[0];\r\n const store_kiosk = Object.keys(query_dict).indexOf('kiosk') > -1 ? true : false;\r\n\r\n const siteLanguageConfig = getSiteLanguageConfigFromContext(props.context);\r\n const localeString = siteLanguageConfig.currentLocale;\r\n const hostname = siteLanguageConfig.hostname;\r\n const sitePath = props?.context?.request?.sitePath ? props?.context?.request?.sitePath?.substring(1) : '';\r\n\r\n const regionCRM = determineSiteLanguageForAbandonedCart(siteLanguageConfig);\r\n\r\n // Define constants for hostname and locale\r\n // const loyalty_URL = `https://${hostname}/${sitePath}/loyalty?hasJoined=true`;\r\n\r\n const [unchecked_state, setUncheckedState] = React.useState(localeString !== 'en-us');\r\n\r\n const watchEmail = watch('email');\r\n\r\n // Function to handle form submission\r\n const _submit = async (data: any) => {\r\n if (phoneErrorMessage) {\r\n return;\r\n }\r\n\r\n setDisabled(true);\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n setSubmittedEmailAddress(data.email);\r\n setLoading(true);\r\n let birthday_slash: string = data.birthday;\r\n birthday_slash = birthday_slash.replace('-', '/').replace('-', '/');\r\n if (localeString === 'en-us' && data.birthday !== '') {\r\n birthday_slash = `${birthday_slash}/1900`;\r\n }\r\n let message: string;\r\n\r\n const context = props.context;\r\n await signUp_DLXAsync(\r\n { callerContext: context.actionContext },\r\n '',\r\n '',\r\n data.email,\r\n localeString !== 'en-us' ? data.phone_number : `+1${data.phone_number}`,\r\n true,\r\n data.marketing,\r\n localeString !== 'en-us' ? data.profiling : data.marketing,\r\n localeString !== 'en-us' ? data.thirdparty : false,\r\n localeString,\r\n birthday_slash,\r\n data.postal_code,\r\n store_code ? `Store_${store_code}` : 'Store_fallback',\r\n regionCRM\r\n )\r\n .then(result => {\r\n if (result.Error !== '') {\r\n throw new Error(result.Error);\r\n } else if (result.CustomerGUID?.length !== 0) {\r\n console.log('New email');\r\n // Brand new email\r\n message = feedbackSuccess ?? 'Thank you! Please check your email';\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'success'\r\n });\r\n // If the following array is NOT empty and OOUID is NOT 0, the synced user did NOT have a Loyalty card yet\r\n if (result.LoyaltyCards && result.LoyaltyCards.length > 0 && result.LoyaltyCards[0].OmOperatingUnitId !== 0) {\r\n if (result.LoyaltyCards[0].CardNumber?.length) {\r\n console.log('Loyalty card issued');\r\n setLoyaltyCardNumber(result.LoyaltyCards[0].CardNumber ?? null);\r\n setLoyaltyEnrollmentDate(result.LoyaltyCards[0].LoyaltyEnrollmentDateLocal ?? null);\r\n }\r\n // Old email, new loyalty\r\n message = feedbackSuccess ?? 'Thank you! Please check your email';\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'success'\r\n });\r\n } else {\r\n console.log('Loyalty card already existing');\r\n // Synced user with an existing loyalty card\r\n throw new Error('already_existing');\r\n }\r\n } else if (result.AccountNum?.length === TEMPORARY_ACCOUNT_NUMBER_LENGTH) {\r\n console.log('Account not synced yet');\r\n // This user is not synced yet, so they still have a temporary GUID, e.g. 278ef388-f813-449b-b7ac-721169659675\r\n // New email but already generating the loyalty\r\n throw new Error('generating');\r\n } else if (result.AccountNum?.length === 10) {\r\n console.log('Account synced');\r\n // This user is synced already, so they have an FO account number, e.g. FC12345678\r\n // If the following array is NOT empty and OOUID is NOT 0, the synced user did NOT have a Loyalty card yet\r\n if (result.LoyaltyCards && result.LoyaltyCards.length > 0 && result.LoyaltyCards[0].OmOperatingUnitId !== 0) {\r\n if (result.LoyaltyCards[0].CardNumber?.length) {\r\n console.log('Loyalty card issued');\r\n setLoyaltyCardNumber(result.LoyaltyCards[0].CardNumber ?? null);\r\n setLoyaltyEnrollmentDate(result.LoyaltyCards[0].LoyaltyEnrollmentDateLocal ?? null);\r\n }\r\n // Old email, new loyalty\r\n message = feedbackSuccess ?? 'Thank you! Please check your email';\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'success'\r\n });\r\n } else {\r\n console.log('Loyalty card already existing');\r\n // Synced user with an existing loyalty card\r\n throw new Error('already_existing');\r\n }\r\n }\r\n setLoading(false);\r\n if (store_kiosk && !result.Error) {\r\n setTimeout(() => {\r\n window.location.href = `https://${hostname}/${\r\n sitePath ? `${sitePath}/` : ''\r\n }loyalty-region-selection?${queryParameter}=${store_code}&kiosk=true`;\r\n }, 5000);\r\n }\r\n })\r\n .catch(err => {\r\n switch (err.message) {\r\n case 'generating':\r\n message = feedbackCardBeingGenerated ?? 'Your card is already being generated, thank you for your patience.';\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'generic'\r\n });\r\n break;\r\n case 'already_existing':\r\n message = feedbackAlreadySubscribed ?? 'The inserted email is already subscribed to our loyalty program.';\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'error'\r\n });\r\n break;\r\n default:\r\n message = feedbackErrorText;\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'error'\r\n });\r\n }\r\n setLoading(false);\r\n });\r\n };\r\n\r\n // Debug US 9189\r\n React.useEffect(() => {\r\n console.log({ subscribeMessage, loyaltyCardNumber, submittedEmailAddress });\r\n }, [subscribeMessage, loyaltyCardNumber, submittedEmailAddress]);\r\n\r\n const mm_dd: RegExp = /(0[1-9]|1[0-2])\\/(0[1-9]|[1-2][0-9]|3[0-1])/gm;\r\n\r\n const currentChannelCountryRegionISOCode = props.context.request.channel?.ChannelCountryRegionISOCode || 'IT';\r\n\r\n return (\r\n
\r\n {!subscribeMessage.state ? (\r\n
\r\n {loading ?
: }\r\n
\r\n {emailAddressLabelText && emailErrortext ? (\r\n
\r\n \r\n \r\n {/* {watchEmail && watchEmail.includes('@') && watchEmail.endsWith('.con') && (\r\n <>\r\n

\r\n Maybe you meant {watchEmail.slice(0, -3)}\r\n com  \r\n

\r\n \r\n )} */}\r\n {/* For future scalability: Array with forbidden domains and .any in the endsWith? */}\r\n {(errors.email || (watchEmail && watchEmail.endsWith('.con'))) && (\r\n {emailErrortext}\r\n )}\r\n
\r\n ) : null}\r\n\r\n {phoneLabelText && localeString === 'en-us' ? (\r\n
\r\n \r\n
\r\n
\r\n +1\r\n
\r\n {\r\n if (typeof window !== undefined) {\r\n const this_thing = document.getElementById('phone_number') as HTMLInputElement;\r\n this_thing.maxLength = 16;\r\n }\r\n }}\r\n ref={register({ required: true, maxLength: 16 })}\r\n // ref={\r\n // localeString === 'en-us'\r\n // ? register({\r\n // required: true,\r\n // pattern: /^\\\\ ( [2-9] {1} [0-9] {2}\\\\) [ ]? [0-9] {3}[-]?[0-9] {4}$/,\r\n // maxLength: 15\r\n // })\r\n // : register({ required: false, maxLength: 15 })\r\n // }\r\n />\r\n
\r\n {errors.phone_number && (\r\n {emailErrortext.replace('email', 'phone number')}\r\n )}\r\n {phoneNumberSubtext ?

{phoneNumberSubtext}

: null}\r\n
\r\n ) : null}\r\n\r\n {htmlGenericMarketing && privacyPolicyURL ? (\r\n
\r\n \r\n \r\n
\r\n ) : null}\r\n\r\n {htmlProfiling && privacyPolicyURL && localeString !== 'en-us' ? (\r\n
\r\n \r\n \r\n
\r\n ) : null}\r\n\r\n {htmlThirdParty && privacyPolicyURL && localeString !== 'en-us' ? (\r\n
\r\n \r\n \r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n {additionalFieldsHeading ?

{additionalFieldsHeading}

: null}\r\n\r\n {phoneLabelText && localeString !== 'en-us' ? (\r\n
\r\n \r\n\r\n {\r\n if (!hasValidationError) {\r\n setPhoneErrorMessage('');\r\n } else {\r\n setPhoneErrorMessage(props.resources.phoneValidationErrorMessage);\r\n }\r\n const phoneNumberHidden: HTMLInputElement = document.getElementById(\r\n 'phone_number'\r\n ) as HTMLInputElement;\r\n\r\n phoneNumberHidden.value = phoneNumber ? fullPhoneNumber : '';\r\n }}\r\n />\r\n \r\n {phoneNumberSubtext ?

{phoneNumberSubtext}

: null}\r\n
\r\n ) : null}\r\n\r\n {localeString !== 'en-us'\r\n ? birthdayLabelText && (\r\n
\r\n \r\n \r\n {birthdaySubtext ?

{birthdaySubtext}

: null}\r\n
\r\n )\r\n : birthdayLabelText && (\r\n // TODO Better validation for US\r\n
\r\n \r\n {/* Protip: Custom error messages https://legacy.react-hook-form.com/v6/api/#register */}\r\n {\r\n if (typeof window !== undefined) {\r\n const birthday_proxy: HTMLInputElement = document.getElementById(\r\n 'birthday'\r\n ) as HTMLInputElement;\r\n const birthday: HTMLInputElement = document.getElementById('bday') as HTMLInputElement;\r\n birthday_proxy.maxLength = 5;\r\n birthday_proxy.onchange = () => {\r\n birthday.value = `1900/${birthday_proxy.value}`;\r\n };\r\n }\r\n }}\r\n ref={register({\r\n required: false,\r\n maxLength: 5,\r\n pattern: mm_dd\r\n })}\r\n />\r\n \r\n {birthdaySubtext ?

{birthdaySubtext}

: null}\r\n
\r\n )}\r\n\r\n {addressZipCodeLabelOptional ? (\r\n
\r\n \r\n {\r\n if (typeof window !== undefined) {\r\n const this_thing = document.getElementById('postal_code') as HTMLInputElement;\r\n this_thing.maxLength = 9;\r\n }\r\n }}\r\n ref={register({ required: false, maxLength: 9 })}\r\n />\r\n {postalCodeSubtext ?

{postalCodeSubtext}

: null}\r\n
\r\n ) : null}\r\n
\r\n\r\n {localeString !== 'en-us' ? (\r\n // EMEA\r\n loyaltyStoreSignUpMandatoryAgreement ? (\r\n
\r\n {\r\n setUncheckedState(!check_ref.current?.checked!);\r\n }}\r\n />\r\n {/* @ts-ignore */}\r\n
\r\n ) : null\r\n ) : // US\r\n loyaltyStoreSignUpMandatoryAgreement ? (\r\n
\r\n {/* TODO change to MsDyn365.RichTextComponent to avoid setHTML? */}\r\n
\r\n
\r\n ) : null}\r\n\r\n
\r\n \r\n {loading && loyaltyStoreSignUpSubmitButtonLabel ? (\r\n
\r\n ) : (\r\n {loyaltyStoreSignUpSubmitButtonLabel}\r\n )}\r\n \r\n\r\n {phoneErrorMessage && (\r\n
\r\n

{phoneErrorMessage}

\r\n
\r\n )}\r\n
\r\n \r\n ) : isMobileDevice &&\r\n loyaltyCardNumber &&\r\n loyaltyCardNumber.length > 0 &&\r\n submittedEmailAddress &&\r\n submittedEmailAddress.length > 0 ? (\r\n // Here goes the response from the success request\r\n
\r\n
\r\n
\r\n {/*

DEBUG test Protip if kiosk error something like show this to a sales assistant in the store

*/}\r\n
\r\n

{joinedLoyaltyThankYouHeader}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {vClubCard}: {loyaltyCardNumber}\r\n

\r\n
\r\n {loyaltyBarcodeImage?.src && (\r\n
\r\n

{textWithLineBreaks(heresYourCouponCodeText)}

\r\n {loyaltyCouponCode}\r\n

{textWithLineBreaks(loyaltyBarcodeText)}

\r\n
\r\n )}\r\n {/* Hide add to wallet buttons because user creation happens with a delay */}\r\n {/*
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
*/}\r\n
\r\n

\r\n {loyaltyRegistrationDateText}:{' '}\r\n \r\n

\r\n
\r\n {/* {!store_kiosk && loyaltyVCLUBDetailsLinkText && subscribeMessage.class !== 'error' ? (\r\n {loyaltyVCLUBDetailsLinkText}\r\n ) : null} */}\r\n
\r\n ) : (\r\n
\r\n
\r\n

{subscribeMessage.message}

\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default LoyaltyStoreSignUpView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { RichTextComponent } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INewsletterBlockProps } from './newsletter-block.props.autogenerated';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport interface INewsletterBlockViewProps extends INewsletterBlockProps<{}> {\r\n paragraph?: React.ReactNode;\r\n privacyTextM?: React.ReactNode;\r\n privacyTextP?: React.ReactNode;\r\n privacyTextT?: React.ReactNode;\r\n source?: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\n/**\r\n *\r\n * NewsletterBlock component\r\n */\r\nclass NewsletterBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const localeString = this.props?.context?.request?.locale ? this.props?.context?.request?.locale?.toLowerCase() : '';\r\n\r\n const { paragraph, privacyTextM, className, privacyPolicyURL } = this.props.config;\r\n let { htmlGenericMarketing, htmlProfiling, htmlThirdParty } = this.props.resources;\r\n\r\n htmlGenericMarketing = `

${format(htmlGenericMarketing, privacyPolicyURL)}

`;\r\n htmlProfiling = `

${format(htmlProfiling, privacyPolicyURL)}

`;\r\n htmlThirdParty = `

${format(htmlThirdParty, privacyPolicyURL)}

`;\r\n\r\n const text = paragraph && ;\r\n\r\n const textPrivacyTextM = privacyTextM && (\r\n \r\n );\r\n const textPrivacyTextP = htmlProfiling && ;\r\n const textPrivacyTextT = htmlThirdParty && ;\r\n\r\n const newsletterBlockViewProps = {\r\n ...this.props,\r\n paragraph: text,\r\n privacyTextM: textPrivacyTextM,\r\n privacyTextP: textPrivacyTextP,\r\n privacyTextT: textPrivacyTextT,\r\n className: classnames('ms-newsletter-block', className)\r\n };\r\n return this.props.renderView(newsletterBlockViewProps) as React.ReactElement;\r\n }\r\n}\r\nexport default NewsletterBlock;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * INewsletterBlock contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum position {\r\n Page = 'Page',\r\n Popup = 'Popup',\r\n Footer = 'Footer'\r\n}\r\n\r\nexport const enum customExternalAPI {\r\n D365 = 'D365',\r\n External = 'External'\r\n}\r\n\r\nexport const enum source {\r\n CommerceSubscriberEU = 'CommerceSubscriberEU',\r\n CommerceSubscribersUS = 'CommerceSubscribersUS',\r\n CommerceSubscribersAU = 'CommerceSubscribersAU',\r\n RetailEU = 'RetailEU',\r\n RetailUS = 'RetailUS',\r\n RetailAU = 'RetailAU'\r\n}\r\n\r\nexport interface INewsletterBlockConfig extends Msdyn365.IModuleConfig {\r\n paragraph?: Msdyn365.RichText;\r\n privacyTextM?: Msdyn365.RichText;\r\n requiredMarketingError?: string;\r\n className?: string;\r\n position: position;\r\n customExternalAPI?: customExternalAPI;\r\n externalApiURL?: string;\r\n externalThankYouMessage?: string;\r\n source: source;\r\n preflagMarketing?: boolean;\r\n preflagProfiling?: boolean;\r\n preflagThirdParty?: boolean;\r\n hideMarketing?: boolean;\r\n hideProfiling?: boolean;\r\n hideThirdParty?: boolean;\r\n privacyPolicyURL?: string;\r\n}\r\n\r\nexport interface INewsletterBlockResources {\r\n alreadySubscribedText: string;\r\n verifyEmailText: string;\r\n yourEmailAddressText: string;\r\n subscribeBtnText: string;\r\n htmlGenericMarketing: string;\r\n htmlProfiling: string;\r\n htmlThirdParty: string;\r\n invalidEmailAddressError: string;\r\n}\r\n\r\nexport interface INewsletterBlockProps extends Msdyn365.IModule {\r\n resources: INewsletterBlockResources;\r\n config: INewsletterBlockConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { signUp_DLXAsync } from '../../actions/DataActionExtension.g';\r\nimport {\r\n determineSiteLanguageForAbandonedCart,\r\n getSiteLanguageConfigFromContext\r\n} from '../../themes/venchi/utils/determineSiteLanguageForAbandonedCart';\r\nimport { INewsletterBlockViewProps } from './newsletter-block';\r\nimport { customExternalAPI as customeExternalAPIType } from './newsletter-block.props.autogenerated';\r\n\r\nexport interface ExternalPayload {\r\n email: string;\r\n marketing: boolean;\r\n profiling: boolean;\r\n thirdparty: boolean;\r\n message?: string;\r\n}\r\n\r\nconst NewsletterBlockView: React.FC = props => {\r\n const siteLanguageConfig = getSiteLanguageConfigFromContext(props.context);\r\n const localeString = siteLanguageConfig.currentLocale;\r\n const regionCRM = determineSiteLanguageForAbandonedCart(siteLanguageConfig);\r\n\r\n type Inputs = {\r\n email: string;\r\n marketing: boolean;\r\n profiling: boolean;\r\n thirdParts: boolean;\r\n };\r\n // const { register, handleSubmit, watch, errors } = useForm();\r\n const { register, handleSubmit, errors } = useForm();\r\n // const marketingChoice: boolean = watch('marketing');\r\n const [loading, setLoading] = React.useState(false);\r\n const [disabled_state, setDisabled] = React.useState(false);\r\n\r\n const customExternalAPI = props?.config?.customExternalAPI;\r\n const externalApiURL = props.config.externalApiURL ?? '';\r\n const externalThankYouMessage = props.config.externalThankYouMessage ?? '';\r\n const useExternalAPI = (externalApiURL && customExternalAPI === customeExternalAPIType.External) ?? false;\r\n\r\n let message = props.resources.verifyEmailText;\r\n // const channelId: number = props.context.request.apiSettings.channelId;\r\n const [subscribeMessage, setSubscribeMessage] = React.useState({\r\n state: false,\r\n message: '',\r\n class: ''\r\n });\r\n\r\n let source: string;\r\n switch (props.config.source?.toString()) {\r\n case 'CommerceSubscriberEU':\r\n source = 'Commerce Subscriber EU';\r\n break;\r\n case 'CommerceSubscribersUS':\r\n source = 'Commerce Subscribers US';\r\n break;\r\n case 'RetailEU':\r\n source = 'Retail EU';\r\n break;\r\n case 'RetailUS':\r\n source = 'Retail US';\r\n break;\r\n }\r\n\r\n const _subscribeToNL = async (data: Inputs) => {\r\n setDisabled(true);\r\n setLoading(true);\r\n signUp_DLXAsync(\r\n { callerContext: props.context?.actionContext },\r\n '',\r\n '',\r\n data.email,\r\n '',\r\n false,\r\n data.marketing,\r\n localeString !== 'en-us' ? data.profiling : data.marketing,\r\n data.thirdParts,\r\n localeString,\r\n '',\r\n '',\r\n source,\r\n regionCRM\r\n )\r\n .then(result => {\r\n message = result.Error\r\n ? result.Error === 'already_subscribed'\r\n ? props.resources.alreadySubscribedText\r\n : result.Error\r\n : message;\r\n setLoading(false);\r\n setSubscribeMessage({\r\n state: true,\r\n message: message,\r\n class: 'success'\r\n });\r\n // @ts-ignore\r\n window.dataLayer?.push?.({\r\n event: 'gaEvent',\r\n eventCategory: 'newsletter',\r\n eventAction: 'subscription',\r\n //@ts-ignore\r\n eventLabel: props.config.position\r\n });\r\n })\r\n .catch(error => {\r\n message = error.message;\r\n setLoading(false);\r\n setSubscribeMessage({\r\n state: true,\r\n message: error.message,\r\n class: 'error'\r\n });\r\n });\r\n };\r\n\r\n function postJson(url: string, data: any): Promise {\r\n return fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(data)\r\n })\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`);\r\n }\r\n return response.status;\r\n })\r\n .catch(error => {\r\n console.error('Error:', error);\r\n throw error;\r\n });\r\n }\r\n\r\n const _externalSubscribeToNL = async (data: Inputs) => {\r\n setLoading(true);\r\n const payload: ExternalPayload = {\r\n email: data.email,\r\n marketing: data.marketing,\r\n profiling: data.profiling,\r\n thirdparty: data.thirdParts\r\n };\r\n postJson(externalApiURL, payload)\r\n .then(result => {\r\n setLoading(false);\r\n setSubscribeMessage({\r\n state: true,\r\n message: externalThankYouMessage,\r\n class: 'success'\r\n });\r\n })\r\n .catch(error => {\r\n message = error.message;\r\n setLoading(false);\r\n setSubscribeMessage({\r\n state: true,\r\n message: error.message,\r\n class: 'error'\r\n });\r\n });\r\n };\r\n\r\n const _validateEmail = (email: string): boolean | string => {\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return emailRegex.test(email) || props.resources.invalidEmailAddressError;\r\n };\r\n\r\n console.log(errors);\r\n\r\n return (\r\n
\r\n {props.paragraph}\r\n {subscribeMessage.state === false ? (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {errors?.email?.message && (\r\n
\r\n

\r\n {errors.email.message}\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n {subscribeMessage.message}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default NewsletterBlockView;\r\n","import { getPayloadObject, getTelemetryAttributes, IPayLoad, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport { debounce } from 'lodash';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { IQuantityProps } from './Quantity.props';\r\n\r\ninterface IQuantityState {\r\n currentInput: number;\r\n isUpdateing: boolean;\r\n}\r\n/**\r\n * Quantity Component - This component is used to add or remove quantity\r\n */\r\n@observer\r\nexport default class Quantity extends React.PureComponent {\r\n public static defaultProps: Partial = {\r\n min: 1,\r\n decrementGlyphClass: 'fas fa-minus',\r\n incrementGlyphClass: 'fas fa-plus'\r\n };\r\n\r\n private inputRef: React.RefObject = React.createRef();\r\n private payLoad: IPayLoad;\r\n\r\n constructor(props: IQuantityProps) {\r\n super(props);\r\n this.state = { currentInput: props.currentCount || 1, isUpdateing: false };\r\n this._onIncrement = this._onIncrement.bind(this);\r\n this._onDecrement = this._onDecrement.bind(this);\r\n this._handleChange = this._handleChange.bind(this);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, '');\r\n }\r\n\r\n public componentDidUpdate(prevProps: IQuantityProps): void {\r\n if (\r\n !this.props.disabled &&\r\n this.state.currentInput !== this.props.currentCount &&\r\n prevProps.currentCount !== this.props.currentCount\r\n ) {\r\n this.setState({ currentInput: this.props.currentCount || 1 });\r\n }\r\n\r\n if (this.props.disabled && !this.state.isUpdateing) {\r\n this.setState({ isUpdateing: true });\r\n }\r\n\r\n if (!this.props.disabled && this.state.isUpdateing) {\r\n this.setState({ currentInput: this.props.currentCount || 1, isUpdateing: false });\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { min, max } = this.props;\r\n\r\n const glyphMinusClassName: string = `${this.props.decrementGlyphClass!} quantity__controls-glyph`;\r\n const glyphPlusClassName: string = `${this.props.incrementGlyphClass!} quantity__controls-glyph`;\r\n const decrementDisabled = this.state.currentInput <= (min || 1) || this.props.isGiftCard;\r\n const incrementDisabled = this.state.currentInput >= max || this.props.isGiftCard;\r\n const currentValue = this.state.currentInput;\r\n this.payLoad.contentAction.etext = TelemetryConstant.DecrementQuantity;\r\n const decrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n this.payLoad.contentAction.etext = TelemetryConstant.IncrementQuantity;\r\n const incrementAttributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n\r\n let extraClassDecrement = '';\r\n if (decrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassDecrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // this.props.disabled shows if the state is not succeded yet\r\n extraClassDecrement = 'transition';\r\n }\r\n let extraClassIncrement = '';\r\n if (incrementDisabled) {\r\n // The quantity has reached its boundaries (max or min)\r\n extraClassIncrement = 'disabled';\r\n } else if (this.props.disabled) {\r\n // this.props.disabled shows if the state is not succeded yet\r\n extraClassIncrement = 'transition';\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n private _onIncrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = this.state.currentInput;\r\n let updatedQuantity: number;\r\n\r\n if (currQuantity < this.props.max) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity + 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = this.props.max;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private _onDecrement(): void {\r\n let invokeCallback = false;\r\n const currQuantity = this.state.currentInput;\r\n let updatedQuantity: number;\r\n\r\n if (currQuantity > 1) {\r\n invokeCallback = true;\r\n updatedQuantity = currQuantity - 1;\r\n } else {\r\n invokeCallback = false;\r\n updatedQuantity = 1;\r\n }\r\n\r\n if (invokeCallback && this.props.onChange) {\r\n if (this.props.onChange(updatedQuantity)) {\r\n this.setState({ currentInput: updatedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private _handleChange(e: React.ChangeEvent): void {\r\n const currentValue = parseInt(e.target.value, 10);\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n const inputElement =\r\n this.inputRef && this.inputRef.current && this.inputRef.current instanceof HTMLInputElement && this.inputRef.current;\r\n\r\n if (currentValue > this.props.max) {\r\n this.setState({ currentInput: this.props.max }, () => {\r\n debounce(() => {\r\n // due of usage debouncer, we may ignore onChange return value\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }, 200)();\r\n });\r\n } else {\r\n this.setState({ currentInput: currentValue }, () => {\r\n debounce(() => {\r\n if (!isNaN(this.state.currentInput) && !(this.state.currentInput < minValue)) {\r\n // due of usage debouncer, we may ignore onChange return value\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n\r\n if (inputElement) {\r\n inputElement.setAttribute('aria-valuenow', currentValue.toString());\r\n inputElement.setAttribute('value', currentValue.toString());\r\n }\r\n }\r\n }, 200)();\r\n });\r\n }\r\n }\r\n\r\n private _validateMin = (): void => {\r\n const minValue = this.props.min === undefined ? 1 : this.props.min;\r\n if (isNaN(this.state.currentInput) || this.state.currentInput < minValue) {\r\n this.setState({ currentInput: minValue }, () => {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n });\r\n } else {\r\n this.props.onChange && this.props.onChange(this.state.currentInput);\r\n }\r\n };\r\n}\r\n","export const TEMPORARY_ACCOUNT_NUMBER_LENGTH = 36;\r\nexport const GIFTCARD_ITEMID = '99991';\r\n","import { SiteLanguageConfig, SITE_LANGUAGE_CONSTANTS } from '../../../types/site-language-for-abandoned-cart.types';\r\nconst { EU_PROD_HOSTNAME, EU_TEST_HOSTNAME, LANGUAGE_CODES } = SITE_LANGUAGE_CONSTANTS;\r\n\r\nexport const determineSiteLanguageForAbandonedCart = (config: SiteLanguageConfig): string => {\r\n const { hostname, pathname, currentLocale } = config;\r\n const pathSegments = pathname\r\n .replace(/\\/$/, '')\r\n .split('/')\r\n .filter(Boolean);\r\n\r\n // PROD env EU domain cases\r\n if (hostname === EU_PROD_HOSTNAME) {\r\n if (pathSegments[0] === LANGUAGE_CODES.DE) {\r\n return LANGUAGE_CODES.DE;\r\n }\r\n if (pathSegments[0] === LANGUAGE_CODES.FR) {\r\n return LANGUAGE_CODES.FR;\r\n }\r\n return LANGUAGE_CODES.EU;\r\n }\r\n\r\n // TEST env (EMEA path cases for non-EU domains)\r\n if (hostname === EU_TEST_HOSTNAME && pathSegments[1] === 'emea' && pathSegments[2] !== 'gb') {\r\n if (pathSegments[2] === LANGUAGE_CODES.DE) {\r\n return LANGUAGE_CODES.DE;\r\n }\r\n if (pathSegments[2] === LANGUAGE_CODES.FR) {\r\n return LANGUAGE_CODES.FR;\r\n }\r\n if (pathSegments[2] === LANGUAGE_CODES.IT) {\r\n return LANGUAGE_CODES.IT;\r\n }\r\n return LANGUAGE_CODES.EU;\r\n }\r\n\r\n return currentLocale;\r\n};\r\n\r\nexport const getSiteLanguageConfigFromContext = (context: any): SiteLanguageConfig => {\r\n const hostname = context?.request?.url?.requestUrl?.hostname || '';\r\n const pathname = context?.request?.url?.requestUrl?.pathname || '';\r\n const currentLocale = context?.request?.locale?.toLowerCase() || '';\r\n\r\n return { hostname, pathname, currentLocale };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n// Importing necessary modules and interfaces from various packages\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxProps,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification';\r\nimport {\r\n IProductSpecificationProps as IProductSpecificationExtensionProps,\r\n IProductSpecificationConfig as IProductSpecificationExtensionConfig,\r\n IReassuranceItemsData as IReassuranceItemsExtensionData\r\n} from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n// NOTE Commented the \"Add to MyVenchiMix\" button on PDP to facilitate A-B tests on the page\r\n// NOTE ref. https://dev.azure.com/venchi/Venchi.DigitalProducts/_workitems/edit/9624\r\n// NOTE uncomment whenever requested\r\n// import { getCategoryPathsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport * as React from 'react';\r\nimport { IBuyboxResources } from '@msdyn365-commerce-modules/buybox/dist/types/modules/buybox/buybox.props.autogenerated';\r\nimport { ITelemetryContent, Module, Node, format } from '@msdyn365-commerce-modules/utilities';\r\n// NOTE Commented the \"Add to MyVenchiMix\" button on PDP to facilitate A-B tests on the page\r\n// NOTE ref. https://dev.azure.com/venchi/Venchi.DigitalProducts/_workitems/edit/9624\r\n// NOTE uncomment whenever requested\r\n// import { getCategoriesUrlSync, Image, IImageData } from '@msdyn365-commerce/core';\r\nimport { Image, IImageData } from '@msdyn365-commerce/core';\r\nimport { ProductDimension } from '@msdyn365-commerce/retail-proxy';\r\nimport { insertBackInStock_CAPAsync_v2 } from '../../../actions/DataActionExtension.g';\r\nimport {\r\n IBuyboxProps as IBuyboxExtensionProps,\r\n IBuyboxResources as IBuyboxExtensionResources,\r\n IBuyboxConfig as IBuyboxExtensionConfig,\r\n IBadgeItemsData as IBadgeItemsExtensionData,\r\n BadgeItemsBadgeLabelColor as BadgeItemsBadgeLabelColorExtension\r\n} from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport { Quantity } from '../utilities/quantity';\r\nimport axios from 'axios';\r\nimport { getCustomDiscountPercentage } from '../utils/getCustomDiscountPercentage';\r\nimport { trackAddToCartFromPDP, trackAddToWishlistFromPDP, trackViewItemFromPDP } from '../utilities/datalayer/index';\r\nimport { getSiteLanguageConfigFromContext, determineSiteLanguageForAbandonedCart } from '../utils/determineSiteLanguageForAbandonedCart';\r\n\r\n// Defining interfaces for product specification and badge show types\r\ninterface productSpecificationData {\r\n Name: string;\r\n BooleanValue: boolean;\r\n TextValue: string;\r\n IntegerValue: number;\r\n}\r\n\r\ninterface BadgeShowType {\r\n key: string;\r\n label: string;\r\n image: IImageData;\r\n color?: BadgeItemsBadgeLabelColorExtension;\r\n}\r\n\r\ninterface NutritionalData {\r\n label: string;\r\n qty1Label: string;\r\n qty1Unit: string;\r\n qty1Value: number;\r\n qty2Unit: string;\r\n qty2Value: number;\r\n subcategory: NutritionalSubcategoryData[];\r\n}\r\n\r\ninterface NutritionalSubcategoryData {\r\n label: string;\r\n qty1Unit: string;\r\n qty1Value: number;\r\n}\r\n\r\ninterface ProductLabel {\r\n label: string;\r\n imgLink: string;\r\n}\r\n\r\ninterface ReassuranceShowType {\r\n title: string;\r\n description: string;\r\n image: IImageData;\r\n}\r\n\r\n// Certification values enum\r\nenum CertificationValueEnum {\r\n RainforestAlliance = 'RAMB'\r\n}\r\n\r\n// Main BuyboxView component\r\nconst BuyboxView: React.FC &\r\n IBuyboxExtensionConfig &\r\n IProductSpecificationViewProps &\r\n IProductSpecificationExtensionProps &\r\n IProductSpecificationExtensionConfig> = props => {\r\n const {\r\n ModuleProps,\r\n MediaGalleryContainerProps,\r\n ProductInfoContainerProps,\r\n addToCart,\r\n addToOrderTemplate,\r\n addToWishlist,\r\n telemetryContent,\r\n configure,\r\n quantity,\r\n title,\r\n callbacks,\r\n state,\r\n resources,\r\n inventoryLabel,\r\n keyInPrice,\r\n quantityLimitsMessages,\r\n max\r\n } = props;\r\n\r\n const {\r\n // Extracting product availability and specification data from props\r\n // prettier-ignore\r\n // @ts-ignore\r\n data: { productAvailableQuantity: { result: productAvailableQuantity }, productSpecificationData: { result: productSpecificationData }\r\n }\r\n } = props;\r\n const availibilityCode = productAvailableQuantity ? productAvailableQuantity[0]?.StockLevelCode : '';\r\n\r\n // Mapping badge items from configuration\r\n // const badgesItems: BadgeShowType[] | undefined = props?.config?.badgeItems?.map((badge: IBadgeItemsExtensionData) => ({\r\n // key: badge.badgeName,\r\n // label: badge.badgeLabel,\r\n // color: badge.badgeLabelColor,\r\n // image: badge.badgeImage\r\n // }));\r\n // const badgesTag = badgesItems?.map(({ key }): string => key);\r\n const maxBadges = props?.config?.badgeMaxItems !== undefined ? Number(props.config.badgeMaxItems.replace('max_', '')) : 99;\r\n\r\n // Filtering badges to show based on product specification data\r\n const [badgesItemsState] = React.useState(\r\n props?.config?.badgeItems?.map((badge: IBadgeItemsExtensionData) => ({\r\n key: badge.badgeName,\r\n label: badge.badgeLabel,\r\n color: badge.badgeLabelColor,\r\n image: badge.badgeImage\r\n }))\r\n );\r\n const [badgesTagState] = React.useState(badgesItemsState?.map(({ key }): string => key));\r\n const [badgesToShowState] = React.useState([]);\r\n\r\n productSpecificationData?.map((row: productSpecificationData) => {\r\n const attributeName = (row.Name ?? '').replace('\\n', '').trim();\r\n // if the attribute exists, has the name of a product tag and its value is true, add it specs to the badges to display\r\n if (\r\n !badgesToShowState.includes(attributeName) &&\r\n row !== null &&\r\n badgesTagState?.includes(attributeName) &&\r\n (row.BooleanValue === true ||\r\n (Object.values(CertificationValueEnum) as string[]).includes(row.TextValue) ||\r\n row.TextValue === 'Yes')\r\n ) {\r\n badgesToShowState.push(attributeName);\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n const productSpecificationResult = props?.data?.productSpecificationData?.result;\r\n const specificationsList = ['Product description', 'Ingredients', 'Nutritional Values JSON'];\r\n const specificationsListOrder = { 'Product description': 1, Reassurance: 2, Ingredients: 3, 'Nutritional Values JSON': 4, Labels: 5 };\r\n const ingredientsAllAttributesList = ['Ingredients', 'Ingredients 2', 'Ingredients 3'];\r\n const labels = props.resources;\r\n\r\n // @ts-ignore\r\n const pTags = [];\r\n const pSpecifications = [];\r\n // @ts-ignore\r\n const ingredientsArray = [];\r\n let ingredientsString = '';\r\n\r\n const reassuranceItems: ReassuranceShowType[] = props?.slots?.productSpecification?.length\r\n ? // @ts-ignore\r\n (props?.slots?.productSpecification[0]?.props?.config?.reassuranceItems ?? []).map(\r\n (reassurance: IReassuranceItemsExtensionData) => {\r\n if (reassurance) {\r\n return {\r\n title: reassurance.reassuranceTitle,\r\n description: reassurance.reassuranceDescription,\r\n image: reassurance.reassuranceImage\r\n };\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n )\r\n : [];\r\n\r\n const isProductAccordionOpened = props?.slots?.productSpecification?.length\r\n ? // @ts-ignore\r\n props?.slots?.productSpecification[0]?.props?.config?.productDescriptionAccordionOpened ?? false\r\n : false;\r\n\r\n const [accordionsState, setAccordionsState] = React.useState(isProductAccordionOpened ? 'Productdescription' : '');\r\n const [fetchingLabels, setFetchingLabels] = React.useState(false);\r\n const [productLabels, setProductLabels] = React.useState([\r\n {\r\n label: labels['product_specification_title_emea_label'] ?? 'EMEA label',\r\n imgLink: ''\r\n },\r\n {\r\n label: labels['product_specification_title_emea_warnings'] ?? 'EMEA warnings',\r\n imgLink: ''\r\n },\r\n {\r\n label: labels['product_specification_title_fda_label'] ?? 'FDA label',\r\n imgLink: ''\r\n }\r\n ]);\r\n\r\n productSpecificationResult?.map((row: productSpecificationData) => {\r\n if (row !== null && specificationsList.includes(row.Name) && row.TextValue !== '') {\r\n pSpecifications.push({\r\n name: row.Name,\r\n data: row,\r\n order: specificationsListOrder[row.Name as keyof typeof specificationsListOrder]\r\n });\r\n }\r\n if (row !== null && ingredientsAllAttributesList.includes(row.Name) && row.TextValue !== '') {\r\n ingredientsArray.push(row);\r\n }\r\n });\r\n pSpecifications.push({ name: 'Reassurance', order: specificationsListOrder.Reassurance });\r\n pSpecifications.push({ name: 'Labels', order: specificationsListOrder.Labels });\r\n pSpecifications.sort((a, b) => a.order - b.order);\r\n // @ts-ignore\r\n const productSku = props.data.product.result?.ItemId;\r\n // @ts-ignore\r\n const productPrimaryImageUrl = props.data.product.result?.PrimaryImageUrl;\r\n\r\n const addToCartEventHandler = () => {\r\n const product = props.data.product.result;\r\n const quantity = Number((document.getElementsByClassName('quantity-input')[0] as HTMLInputElement).value) || 0;\r\n\r\n if (props.data.productPrice.result?.CustomerContextualPrice && props.data.productPrice.result?.AdjustedPrice) {\r\n trackAddToCartFromPDP(\r\n props.context,\r\n product,\r\n quantity,\r\n props.data.productPrice.result!.CustomerContextualPrice!,\r\n props.data.productPrice.result!.AdjustedPrice!\r\n );\r\n }\r\n };\r\n\r\n const addToWishlistEventHandler = () => {\r\n if (props.data.productPrice.result?.CustomerContextualPrice && props.data.productPrice.result?.AdjustedPrice) {\r\n trackAddToWishlistFromPDP(\r\n props.context,\r\n props.data.product.result,\r\n props.data.productPrice.result!.CustomerContextualPrice!,\r\n props.data.productPrice.result!.AdjustedPrice!\r\n );\r\n }\r\n };\r\n\r\n // TODO: remove this after development\r\n // Debug product attributes\r\n React.useEffect(() => {\r\n console.log('*** product specification data');\r\n console.log({ productSpecificationData: productSpecificationData });\r\n const attributes = new Map();\r\n productSpecificationData?.map((row: productSpecificationData) => {\r\n const attributeName: string = (row.Name ?? '').replace('\\n', '').trim();\r\n const attributeValue: boolean | string = row.BooleanValue ?? row.TextValue ?? row.IntegerValue ?? '';\r\n attributes.set(attributeName, attributeValue);\r\n });\r\n console.log('*** product attributes');\r\n console.log({ attributes: attributes });\r\n }, [productSpecificationData]);\r\n\r\n // TODO: remove this after development\r\n // Debug product attributes\r\n React.useEffect(() => {\r\n console.log('*** badges items ***');\r\n console.log({ badgesItemsState: badgesItemsState });\r\n }, [badgesItemsState]);\r\n\r\n // TODO: remove this after development\r\n // Debug product attributes\r\n React.useEffect(() => {\r\n console.log('*** badges tag ***');\r\n console.log({ badgesTagState: badgesTagState });\r\n }, [badgesTagState]);\r\n\r\n // TODO: remove this after development\r\n // Debug product attributes\r\n React.useEffect(() => {\r\n console.log('*** badges to show ***');\r\n console.log({ badgesToShowState: badgesToShowState });\r\n }, [badgesToShowState]);\r\n\r\n React.useEffect(() => {\r\n const product = props.data.product.result;\r\n\r\n if (props.data.productPrice.result?.CustomerContextualPrice && props.data.productPrice.result?.AdjustedPrice) {\r\n trackViewItemFromPDP(\r\n props.context,\r\n product,\r\n props.data.productPrice.result!.CustomerContextualPrice!,\r\n props.data.productPrice.result!.AdjustedPrice!\r\n );\r\n }\r\n\r\n document.querySelector('.msc-add-to-wishlist')?.addEventListener('click', addToWishlistEventHandler);\r\n document.querySelector('.msc-add-to-cart')?.addEventListener('click', addToCartEventHandler);\r\n }, []);\r\n\r\n // @ts-ignore\r\n ingredientsArray.map(row => {\r\n ingredientsString += row.TextValue || '';\r\n });\r\n\r\n const accordionOnClick = (accordion: string): void => {\r\n const accStates = accordionsState.split(',');\r\n if (accStates.includes(accordion)) {\r\n setAccordionsState('');\r\n } else {\r\n setAccordionsState(accordion);\r\n }\r\n };\r\n\r\n const isAccordionExpanded = (accordion: string): boolean => {\r\n const accStates = accordionsState.split(',');\r\n return accStates.includes(accordion);\r\n };\r\n\r\n const normalizeData = (data: NutritionalData[]): NutritionalData[] => {\r\n const resultData: NutritionalData[] = [];\r\n data.map((row: NutritionalData) => {\r\n if (row.qty1Value) {\r\n let category: NutritionalData | undefined;\r\n const subcategory: NutritionalSubcategoryData[] = [];\r\n if (row.subcategory) {\r\n row.subcategory.map((subRow: NutritionalSubcategoryData) => {\r\n if (subRow.qty1Value) {\r\n subcategory.push(subRow);\r\n }\r\n });\r\n }\r\n category = {\r\n ...row\r\n };\r\n if (subcategory.length) {\r\n category.subcategory = subcategory;\r\n } else if (category.subcategory) {\r\n // @ts-ignore\r\n delete category.subcategory;\r\n }\r\n resultData.push(category);\r\n }\r\n });\r\n return resultData;\r\n };\r\n\r\n const _renderNutritionalValues = (jData: any): JSX.Element | undefined => {\r\n const normalizedData = normalizeData(jData);\r\n if (normalizedData.length < 2) {\r\n return undefined;\r\n }\r\n return (\r\n
\r\n {normalizedData.map((row: NutritionalData) => (\r\n <>\r\n
\r\n {/* @ts-ignore */}\r\n
{labels[row.label] ?? ''}
\r\n
\r\n {/* @ts-ignore */}\r\n
{labels[row.qty1Label] ?? ''}
\r\n
{row.qty1Value ?? ''}
\r\n
{row.qty1Unit ?? ''}
\r\n
\r\n {row.qty2Value && (\r\n
\r\n
\r\n
\r\n
\r\n
{row.qty2Value ?? ''}
\r\n
{row.qty2Unit ?? ''}
\r\n
\r\n )}\r\n {row.subcategory &&\r\n row.subcategory.map((subRow: NutritionalSubcategoryData) => (\r\n
\r\n {/* @ts-ignore */}\r\n
{labels[subRow.label] ?? ''}
\r\n
\r\n
{subRow.qty1Value ?? ''}
\r\n
{subRow.qty1Unit ?? ''}
\r\n
\r\n ))}\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n const _renderProductLabels = (productLabels: ProductLabel[]): JSX.Element => {\r\n return (\r\n
\r\n {productLabels\r\n .filter(label => label.imgLink !== '')\r\n .map((row: ProductLabel) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n );\r\n };\r\n\r\n const _renderReassurance = (reassuranceItems: ReassuranceShowType[]): JSX.Element => {\r\n return (\r\n
\r\n {reassuranceItems.map((row: ReassuranceShowType, index: number) => {\r\n const isLast = index === reassuranceItems.length - 1;\r\n const imgSettings = row?.image?.imageSettings ?? undefined;\r\n return imgSettings ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {row.title}\r\n {row.description}\r\n
\r\n
\r\n ) : (\r\n undefined\r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n if (!fetchingLabels) {\r\n setFetchingLabels(true);\r\n _getProductLabels(productSku, productPrimaryImageUrl).then((response: string[]) => {\r\n const newProductLabels = [...productLabels];\r\n productLabels.forEach((_, index: number) => {\r\n newProductLabels[index].imgLink = response[index];\r\n });\r\n setProductLabels(newProductLabels);\r\n });\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n const productShortDescription = props?.data?.productSpecificationData?.result?.filter(\r\n (productDesc: { Name: string }) => productDesc.Name === 'Short product description'\r\n )[0]?.TextValue;\r\n\r\n // @ts-ignore\r\n const expirationDate = props?.data?.productSpecificationData?.result?.filter(\r\n (productDesc: { Name: string }) => productDesc.Name === 'Expiration date'\r\n )[0]?.BooleanValue;\r\n\r\n // @ts-ignore\r\n const piecesPerPackage = props?.data?.productSpecificationData?.result?.filter(\r\n (productDesc: { Name: string }) => productDesc.Name === 'Pieces per package'\r\n )[0]?.IntegerValue;\r\n\r\n return (\r\n \r\n
\r\n {props.mediaGallery}\r\n
\r\n
\r\n \r\n {title}\r\n {_renderPrice(props, resources)}\r\n {availibilityCode &&
{inventoryLabel}
}\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n \r\n
\r\n {quantity &&\r\n _renderQuantity(\r\n quantity,\r\n callbacks,\r\n props,\r\n state,\r\n resources,\r\n quantityLimitsMessages,\r\n max,\r\n telemetryContent\r\n )}\r\n {_renderCartAndActions(addToCart, addToOrderTemplate, props.resources)}\r\n
\r\n {_renderWishlist(addToWishlist)}\r\n
{_renderAddToCartErrorBlock(addToCart)}
\r\n {/* NOTE Commented the \"Add to MyVenchiMix\" button on PDP to facilitate A-B tests on the page\r\n NOTE ref. https://dev.azure.com/venchi/Venchi.DigitalProducts/_workitems/edit/9624\r\n NOTE uncomment whenever requested */}\r\n {/* {_renderCartAndActionsPM(addToCart, addToWishlist, props.resources)} */}\r\n
\r\n {productShortDescription && (\r\n
\r\n {productShortDescription}\r\n {expirationDate && (\r\n
\r\n {resources.expirationDate.split(':')[0]}:{' '}\r\n {resources.expirationDate.split(':')[1]}\r\n
\r\n )}\r\n {piecesPerPackage !== undefined && piecesPerPackage !== null && piecesPerPackage > 0 && (\r\n
\r\n {format(resources.itemsPerPack, piecesPerPackage).split(':')[0]}:{' '}\r\n \r\n {format(resources.itemsPerPack, piecesPerPackage).split(':')[1]}\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n {maxBadges ? (\r\n
\r\n {badgesItemsState\r\n ?.filter((badge: BadgeShowType) => badgesToShowState.includes(badge.key))\r\n ?.map((badge: BadgeShowType, index: number) => {\r\n if (index <= maxBadges - 1) {\r\n return _renderBadge(badge, props);\r\n }\r\n return '';\r\n })}\r\n
\r\n ) : null}\r\n
\r\n {props.data.product.result?.RecordId}\r\n {props.data.product.result?.ItemId}\r\n
\r\n {_renderTextBlock(props.slots.textBlocks)}\r\n
\r\n \r\n {pSpecifications.length ? (\r\n \r\n {pSpecifications.map(row => {\r\n const title = row.name;\r\n const titleId = title.replace(/\\s+/g, '');\r\n // @ts-ignore\r\n let titleLabel = labels[`product_specification_title_${title.replace(/\\s+/g, '_').toLowerCase()}`] ?? title;\r\n const ingredientsFinalString = ingredientsString;\r\n\r\n let accordionContent;\r\n if (title === 'Ingredients' && ingredientsFinalString) {\r\n accordionContent = ingredientsFinalString;\r\n } else if (title === 'Nutritional Values JSON') {\r\n try {\r\n // @ts-ignore\r\n const jData = JSON.parse(row.data.TextValue);\r\n accordionContent = _renderNutritionalValues(\r\n jData.nutritionalValueJSONType ? jData.nutritionalValueJSONType : jData\r\n );\r\n } catch (e) {\r\n return;\r\n }\r\n } else if (title === 'Reassurance' && reassuranceItems.length > 0) {\r\n accordionContent = _renderReassurance(reassuranceItems);\r\n } else if (title === 'Labels' && productLabels.filter(label => label.imgLink !== '').length > 0) {\r\n titleLabel = labels['product_specification_title_product_labels'] ?? titleLabel;\r\n accordionContent = _renderProductLabels(productLabels);\r\n // @ts-ignore;\r\n } else if (row.data && row.data.TextValue) {\r\n // @ts-ignore;\r\n accordionContent = row.data.TextValue;\r\n }\r\n\r\n if (!accordionContent) {\r\n return;\r\n }\r\n\r\n return (\r\n // tslint:disable-next-line:jsx-key\r\n
\r\n
\r\n accordionOnClick(titleId)}\r\n aria-expanded={isAccordionExpanded(titleId)}\r\n >\r\n

{titleLabel}

\r\n
\r\n \r\n
\r\n \r\n {accordionContent}\r\n
\r\n
\r\n );\r\n })}\r\n {_renderSocialShare(props.slots && props.slots?.socialShare)}\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line:no-any\r\nconst _renderAddToBackInStore = (\r\n customerId?: string,\r\n channelId?: number,\r\n itemid?: string,\r\n dimensions?: ProductDimension[],\r\n actionContext?: any,\r\n resources?: IBuyboxResources & IBuyboxExtensionResources,\r\n emailAddress?: string,\r\n locale?: string\r\n): JSX.Element => {\r\n const cust = customerId ? customerId : '';\r\n const item = itemid ? itemid : '';\r\n const channel = channelId ? channelId : 0;\r\n const dims = dimensions ? dimensions : [];\r\n let color: string = '';\r\n let config: string = '';\r\n let size: string = '';\r\n let style: string = '';\r\n // prettier-ignore\r\n // @ts-ignore\r\n let message = resources.backInStockMessage ? resources.backInStockMessage : 'You will receive an email when the product is back in stock';\r\n let toHide = false;\r\n\r\n dims.forEach(dim => {\r\n if (dim.DimensionTypeValue === 1) {\r\n color = dim.DimensionValue?.DimensionId !== undefined ? dim.DimensionValue?.DimensionId : '';\r\n } else if (dim.DimensionTypeValue === 2) {\r\n config = dim.DimensionValue?.DimensionId !== undefined ? dim.DimensionValue?.DimensionId : '';\r\n } else if (dim.DimensionTypeValue === 3) {\r\n size = dim.DimensionValue?.DimensionId !== undefined ? dim.DimensionValue?.DimensionId : '';\r\n } else if (dim.DimensionTypeValue === 4) {\r\n style = dim.DimensionValue?.DimensionId !== undefined ? dim.DimensionValue?.DimensionId : '';\r\n }\r\n });\r\n\r\n toHide = cust !== '' ? false : true;\r\n const [stockMessage, setStockMessage] = React.useState(false);\r\n\r\n const _AddToBackInStore = async () => {\r\n insertBackInStock_CAPAsync_v2(\r\n { callerContext: actionContext },\r\n channel,\r\n cust,\r\n item,\r\n color,\r\n config,\r\n size,\r\n style,\r\n 1,\r\n emailAddress || '',\r\n locale || ''\r\n ).then(result => {\r\n message = result[0].Error ? result[0].Error : message;\r\n });\r\n setStockMessage(true);\r\n };\r\n const inactiveAccount = cust.includes('-');\r\n\r\n return (\r\n <>\r\n {toHide === false && (\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return <>{textBlocks[0]};\r\n};\r\n\r\nconst _renderPrice = (props: IBuyboxViewProps, resources: IBuyboxResources & IBuyboxExtensionResources): JSX.Element | undefined => {\r\n const custom_price = props.context.cultureFormatter.formatCurrency(props.data.productPrice.result?.AdjustedPrice?.toFixed(2) ?? '');\r\n const custom_discount_percentage = getCustomDiscountPercentage(props.data.productPrice.result?.DiscountLines);\r\n const custom_discounted_price = props.context.cultureFormatter.formatCurrency(\r\n props.data.productPrice.result?.CustomerContextualPrice?.toFixed(2) ?? ''\r\n );\r\n\r\n if (custom_discount_percentage) {\r\n // @ts-ignore\r\n const attributes = props.data.productSpecificationData.result;\r\n\r\n let omnibus_price = null;\r\n if (attributes) {\r\n // @ts-ignore\r\n omnibus_price = attributes.filter(attribute => attribute.Name.includes('Minimum Price Last 30 Days'))[0];\r\n }\r\n\r\n let omnibus_price_currency = '';\r\n if (omnibus_price && omnibus_price.CurrencyValue && omnibus_price.CurrencyCode) {\r\n omnibus_price_currency = props.context.cultureFormatter.formatCurrency(omnibus_price.CurrencyValue, omnibus_price.CurrencyCode);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {custom_price}\r\n {custom_discount_percentage}\r\n {custom_discounted_price}\r\n {omnibus_price_currency && (\r\n
\r\n \r\n {resources.omnibus_recent_price_label} \r\n {omnibus_price_currency}\r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n }\r\n return (\r\n \r\n {custom_price}\r\n \r\n );\r\n};\r\n\r\n// NOTE Commented the \"Add to MyVenchiMix\" button on PDP to facilitate A-B tests on the page\r\n// NOTE ref. https://dev.azure.com/venchi/Venchi.DigitalProducts/_workitems/edit/9624\r\n// NOTE uncomment whenever requested\r\n// function _addToPickAndMix(\r\n// catUrl: string,\r\n// pmProductsList: any,\r\n// RecordId: number,\r\n// Name: string | undefined,\r\n// PrimaryImageUrl: string | undefined,\r\n// pQuantity: number,\r\n// Price: number,\r\n// ItemId: number\r\n// ): void {\r\n// pmProductsList[RecordId] = {\r\n// Id: RecordId,\r\n// Item: Name,\r\n// Qty: pQuantity,\r\n// UOM: '',\r\n// Price: Price,\r\n// Description: ItemId.toString(),\r\n// DataAreaId: '',\r\n// PrimaryImageUrl: PrimaryImageUrl\r\n// };\r\n// typeof window !== 'undefined' ? localStorage.setItem('pm_products', JSON.stringify(pmProductsList)) : undefined;\r\n// window.location.assign(catUrl);\r\n// }\r\n\r\nconst _renderCartAndActions = (\r\n addToCart?: IBuyboxAddToCartViewProps,\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\r\n resources?: IBuyboxResources & IBuyboxExtensionResources\r\n): JSX.Element | undefined => {\r\n if (!addToCart) {\r\n return undefined;\r\n }\r\n // @ts-ignore\r\n const props = addToCart?.button?.props;\r\n\r\n const siteLanguageConfig = getSiteLanguageConfigFromContext(props.context);\r\n const locale = determineSiteLanguageForAbandonedCart(siteLanguageConfig);\r\n\r\n return (\r\n
\r\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\r\n
\r\n
\r\n {_renderAddToBackInStore(\r\n props.context.request.user.customerAccountNumber,\r\n props.context.request.apiSettings.channelId,\r\n props.data?.product?.ItemId,\r\n props.data?.product?.Dimensions,\r\n props.context?.actionContext,\r\n resources,\r\n props.context.request.user.emailAddress,\r\n locale\r\n )}\r\n {addToCart && addToCart.button}\r\n {addToOrderTemplate && addToOrderTemplate.button}\r\n
\r\n
\r\n {props.context.request.user.customerAccountNumber !== null && !props.context.request.user.customerAccountNumber.includes('-') && (\r\n
\r\n {\r\n // @ts-ignore\r\n resources.backInStockAgreement\r\n }\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst _renderWishlist = (addToWishlist?: IBuyboxAddToWishlistViewProps): JSX.Element | undefined => {\r\n if (!addToWishlist) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n
\r\n {addToWishlist && addToWishlist.errorBlock}\r\n {addToWishlist && {addToWishlist && addToWishlist.button}}\r\n
\r\n );\r\n};\r\n\r\nconst _renderAddToCartErrorBlock = (addToCart?: IBuyboxAddToCartViewProps): JSX.Element | undefined => {\r\n if (!addToCart) {\r\n return undefined;\r\n }\r\n\r\n return <>{addToCart && addToCart.errorBlock};\r\n};\r\n\r\n// NOTE Commented the \"Add to MyVenchiMix\" button on PDP to facilitate A-B tests on the page\r\n// NOTE ref. https://dev.azure.com/venchi/Venchi.DigitalProducts/_workitems/edit/9624\r\n// NOTE uncomment whenever requested\r\n// const _renderCartAndActionsPM = (\r\n// addToCart?: IBuyboxAddToCartViewProps,\r\n// addToWishlist?: IBuyboxAddToWishlistViewProps,\r\n// resources?: IBuyboxResources & IBuyboxExtensionResources\r\n// ): JSX.Element | undefined => {\r\n// if (!addToCart && !addToWishlist) {\r\n// return undefined;\r\n// }\r\n// // @ts-ignore\r\n// const props = addToCart?.button?.props;\r\n// const productId = props?.data?.product?.RecordId;\r\n// const channelId = props?.context?.request?.channel?.RecordId;\r\n// const categoryPathLookups = [{ ProductId: productId }];\r\n// const [catUrl, setCatUrl] = React.useState('');\r\n// const [isPm, setIsPm] = React.useState(false);\r\n// const _productCategory = async () => {\r\n// const categoryPathResults = await getCategoryPathsAsync(props?.context?.actionContext, channelId, 0, categoryPathLookups);\r\n// categoryPathResults &&\r\n// categoryPathResults[0] &&\r\n// categoryPathResults[0]?.CategoryPath?.map((catPath, i) => {\r\n// const categoryUrl = getCategoriesUrlSync(catPath, props?.context?.actionContext);\r\n// if (categoryUrl && categoryUrl[1] && categoryUrl[1].Name === 'Pick&Mix') {\r\n// setIsPm(true);\r\n// setCatUrl(categoryUrl[1].Url ? categoryUrl[1].Url : '');\r\n// }\r\n// });\r\n// return;\r\n// };\r\n// React.useEffect(() => {\r\n// void _productCategory();\r\n// }, []);\r\n// // tslint:disable-next-line:no-shadowed-variable\r\n// const _addToPM = (\r\n// catUrl: string,\r\n// RecordId: number,\r\n// Name: string,\r\n// PrimaryImageUrl: string,\r\n// AdjustedPrice: number,\r\n// Qty: number,\r\n// ItemId: number\r\n// ) => {\r\n// const localPm = localStorage && localStorage.getItem('pm_products');\r\n// const localPmProds = localPm && localPm !== null ? localPm : JSON.stringify({});\r\n// const pmProductsList = JSON.parse(localPmProds);\r\n// const _addToPm = () => {\r\n// _addToPickAndMix(catUrl, pmProductsList, RecordId, Name, PrimaryImageUrl, AdjustedPrice, Qty, ItemId);\r\n// };\r\n// return (\r\n// <>\r\n// \r\n// \r\n// );\r\n// };\r\n// /* @ts-ignore */\r\n// const product_qty: product_qty = addToCart?.button?.props?.quantity;\r\n// return (\r\n//
\r\n// {isPm ? (\r\n//
\r\n// {_addToPM(\r\n// catUrl,\r\n// props.data?.product?.RecordId,\r\n// props.data?.product?.Name,\r\n// props.data?.product?.PrimaryImageUrl,\r\n// product_qty,\r\n// props.data?.product?.AdjustedPrice,\r\n// props.data?.product?.ItemId\r\n// )}\r\n//
\r\n// ) : (\r\n// ''\r\n// )}\r\n//
\r\n// );\r\n// };\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return {dropdowns.map(_renderConfigureDropdown)};\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderQuantity = (\r\n quantityComponent: IBuyboxProductQuantityViewProps,\r\n callbacks: IBuyboxCallbacks,\r\n props: IBuyboxProps,\r\n state: IBuyboxState,\r\n extentionResources: IBuyboxResources & IBuyboxExtensionResources,\r\n quantityLimitsMessages: React.ReactNode,\r\n max: number | undefined,\r\n telemetryContent?: ITelemetryContent\r\n): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\r\n const { resources } = props;\r\n\r\n const { quantity } = state;\r\n\r\n if (state.isCustomPriceSelected) {\r\n props.data;\r\n }\r\n const onChange = (newValue: number): boolean => {\r\n if (callbacks.updateQuantity) {\r\n return callbacks.updateQuantity(newValue);\r\n }\r\n return true;\r\n };\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n \r\n {quantityLimitsMessages}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n {heading}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderBadge = (badge: BadgeShowType, props: IBuyboxViewProps) => {\r\n const imgSettings = badge?.image?.imageSettings ?? undefined;\r\n if (!imgSettings) {\r\n return undefined;\r\n }\r\n return (\r\n
\r\n \r\n {badge.label}\r\n
\r\n );\r\n};\r\n\r\nconst _getProductLabels = async (productId?: string, baseImagePath?: string): Promise => {\r\n if (productId && baseImagePath) {\r\n const results: string[] = [];\r\n const imgBaseUrlArray = decodeURIComponent(baseImagePath).split('/');\r\n imgBaseUrlArray.pop();\r\n\r\n const imgUrls = [\r\n [...imgBaseUrlArray, `${productId}_000_006.jpg`].join('/'),\r\n [...imgBaseUrlArray, `${productId}_000_007.jpg`].join('/'),\r\n [...imgBaseUrlArray, `${productId}_000_008.jpg`].join('/')\r\n ];\r\n for (let i = 0; i < 3; i = i + 1) {\r\n try {\r\n const response = await axios.get(imgUrls[i]);\r\n results.push(response?.status === 200 ? imgUrls[i] : '');\r\n } catch (e) {\r\n results.push('');\r\n }\r\n }\r\n return results;\r\n }\r\n return ['', '', ''];\r\n};\r\n\r\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n return <>{socialShare[0]};\r\n};\r\n\r\nexport default BuyboxView;\r\n","import { DiscountLine } from '@msdyn365-commerce/retail-proxy';\r\n\r\nconst getNormalizedDiscountPercentage = (percentage?: number): number => {\r\n if (!percentage) return 0;\r\n return percentage / 100;\r\n};\r\n\r\nexport const getCustomDiscountPercentage = (discountLines?: DiscountLine[]): string | undefined => {\r\n if (!discountLines || discountLines.length < 1) return;\r\n const normalizedDiscountedPrice = discountLines.reduce(\r\n (accumulator, discountLine) => accumulator * (1 - getNormalizedDiscountPercentage(discountLine.Percentage)),\r\n 1\r\n );\r\n return `-${100 - Math.round(normalizedDiscountedPrice * 100)}%`;\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\r\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n ITelemetryContent,\r\n Node,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport * as React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { ICartResources as ICartResourcesExt } from '../definition-extensions/cart.ext.props.autogenerated';\r\nimport { getPromotionOptionsForCartLineItems, PromotionOptionsForCartLineItems } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { CartLine, CartPromotionLine, CommerceProperty, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { find } from 'lodash';\r\n\r\nimport { trackViewCart, trackBeginCheckout, trackRemoveFromCart, trackAddToWishlistFromCart } from '../utilities/datalayer/index';\r\nimport { CheckoutType, LoginFromType, SessionStorageKey } from '../utilities/datalayer/types';\r\nimport { IWishlistActionSuccessResult } from '@msdyn365-commerce/components';\r\n\r\ninterface IPromotionData {\r\n promotionOptions?: CartPromotionLine[];\r\n}\r\n\r\ninterface ICartViewPropsExt extends ICartViewProps {\r\n resources: ICartResourcesExt;\r\n}\r\n\r\ninterface AvailablePromotionsProps {\r\n props: ICartViewPropsExt;\r\n}\r\n\r\nconst CartView: React.FC = (props: ICartViewPropsExt) => {\r\n const beginClassicCheckout = () => {\r\n trackBeginCheckout(\r\n props.context,\r\n props.cart?.cart,\r\n props.data.products.result || ([] as SimpleProduct[]),\r\n CheckoutType.CLASSIC_CHECKOUT\r\n );\r\n\r\n if (!props.context.request.user.isAuthenticated) {\r\n sessionStorage.setItem(SessionStorageKey.LOGIN_FROM, LoginFromType.CHECKOUT);\r\n }\r\n };\r\n\r\n const beginGuestCheckout = () => {\r\n trackBeginCheckout(\r\n props.context,\r\n props.cart?.cart,\r\n props.data.products.result || ([] as SimpleProduct[]),\r\n CheckoutType.GUEST_CHECKOUT\r\n );\r\n };\r\n\r\n const trackRemoveFromCartEventHandler = (cartLine: CartLine | undefined) => {\r\n trackRemoveFromCart(props.context, props.cart?.cart, props.data.products.result || ([] as SimpleProduct[]), cartLine);\r\n };\r\n\r\n const trackAddToWishlistEventHandler = (cartLine: CartLine | undefined) => {\r\n trackAddToWishlistFromCart(props.context, props.cart?.cart, props.data.products.result || ([] as SimpleProduct[]), cartLine);\r\n };\r\n\r\n React.useEffect(() => {\r\n trackViewCart(props.context, props.cart?.cart, props.data.products.result || ([] as SimpleProduct[]));\r\n\r\n document.querySelector('.msc-cart__btn-checkout')?.addEventListener('click', beginClassicCheckout);\r\n document.querySelector('.msc-cart__btn-guestcheckout')?.addEventListener('click', beginGuestCheckout);\r\n }, []);\r\n\r\n const locale = props.context.request.locale;\r\n return (\r\n
\r\n {props.title}\r\n
\r\n {props.multiplePickUpEnabled ? (\r\n _renderCartLinesGroup(props, trackRemoveFromCartEventHandler, trackAddToWishlistEventHandler)\r\n ) : (\r\n \r\n \r\n {_renderAddGreetingMessage(props)}\r\n {_renderCartlines(\r\n props.cartlines,\r\n props.resources,\r\n props.storeSelector,\r\n props.backToShoppingButton,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult,\r\n trackRemoveFromCartEventHandler,\r\n trackAddToWishlistEventHandler,\r\n props.telemetryContent,\r\n props.multiplePickUpEnabled,\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\r\n )}\r\n \r\n )}\r\n
\r\n {props.orderSummaryHeading && (\r\n \r\n {props.orderSummaryHeading}\r\n {_renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props, locale)}\r\n {_renderErrorBlock(props.OrderSummaryErrors)}\r\n {props.checkoutAsSignInUserButton}\r\n {props.checkoutAsGuestButton}\r\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\r\n {props.expressCheckoutButton}\r\n ) : null}\r\n {props.backToShoppingButton}\r\n {props.createTemplateFromCartButton}\r\n \r\n )}\r\n {props.storeSelector}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst AvailablePromotions: React.FC = ({ props }) => {\r\n const [promotionsArray, setPromotionsArray] = React.useState([]);\r\n React.useEffect(() => {\r\n retrievePromotions(props, setPromotionsArray);\r\n }, []);\r\n\r\n if (props && props.promotionOptions && promotionsArray.length >= 1) {\r\n return (\r\n \r\n \r\n \r\n {props.resources.promotionStringHeading}\r\n
    \r\n {promotionsArray.map(function(text: string, index: number) {\r\n return
  • {text}
  • ;\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return <>;\r\n }\r\n};\r\n\r\nconst retrievePromotions = async (cartProps: ICartViewProps, setPromotions: any) => {\r\n var tmpArray: string[] = [];\r\n const currentPromotions = await getPromotionData(cartProps.context?.actionContext);\r\n currentPromotions.promotionOptions?.forEach(element => {\r\n if (element.Promotion) {\r\n let offerDesc = '';\r\n try {\r\n const offerDescriptions = JSON.parse(element.Promotion.Description || '{}');\r\n const currentLanguage = cartProps.context.request.locale; // Function to get the current language\r\n offerDesc = offerDescriptions[currentLanguage.toLowerCase()] || offerDescriptions['it'] || '';\r\n } catch (e) {\r\n // If JSON parsing fails, use the OfferDescription as is, split on the colon\r\n if (element.Promotion.Description) {\r\n offerDesc = element.Promotion.Description;\r\n }\r\n }\r\n offerDesc = offerDesc || element.Promotion.OfferName || '';\r\n if (offerDesc) {\r\n tmpArray.push(offerDesc);\r\n }\r\n }\r\n });\r\n setPromotions(tmpArray);\r\n};\r\n\r\nasync function getPromotionData(ctx: IActionContext): Promise {\r\n const promotionData: IPromotionData = {};\r\n await getPromotionOptionsForCartLineItems(new PromotionOptionsForCartLineItems(ctx.requestContext.apiSettings), ctx)\r\n .then(promotionOptions => {\r\n if (promotionOptions) {\r\n promotionData.promotionOptions = promotionOptions;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n return {};\r\n });\r\n return promotionData;\r\n}\r\n\r\nconst _renderAddGreetingMessage = (props: ICartViewPropsExt) => {\r\n type Inputs = {\r\n message: string;\r\n sign: string;\r\n };\r\n\r\n const { register, handleSubmit, reset, setValue } = useForm();\r\n // prettier-ignore\r\n // @ts-ignore\r\n const extPropsToRemove = props?.cart?.cart?.ExtensionProperties?.filter((fieldVal: { Key: string }) => fieldVal.Key === 'ExtPropsRemove_CAP')[0]?.Value?.BooleanValue;\r\n const noCartLines = !props?.cart?.cart?.CartLines || props?.cart?.cart?.CartLines.length === 0;\r\n // prettier-ignore\r\n // @ts-ignore\r\n const greetingMessageCAP = (noCartLines || extPropsToRemove) ? '' : props?.cart?.cart?.ExtensionProperties?.filter((greetingVal: { Key: string }) => greetingVal.Key === 'GreetingMessage_CAP')[0]?.Value?.StringValue;\r\n // prettier-ignore\r\n // @ts-ignore\r\n const greetingSignCAP = (noCartLines || extPropsToRemove) ? '' : props?.cart?.cart?.ExtensionProperties?.filter((greetingVal: { Key: string }) => greetingVal.Key === 'GreetingSign_CAP')[0]?.Value?.StringValue;\r\n\r\n // @ts-ignore\r\n const setRemoveData = async (cartprops: ICartViewProps) => {\r\n // prettier-ignore\r\n // @ts-ignore\r\n const currentCartState = await getCartState(cartprops.context?.actionContext);\r\n // const currentCartState = props?.cart;\r\n const extProps = currentCartState?.cart?.ExtensionProperties;\r\n const extPropsToEmpty = [];\r\n // const cartLines = currentCartState?.cart?.CartLines;\r\n // if (extPropsToRemove === true || !cartLines || (cartLines && cartLines.length === 0)) {\r\n if (extPropsToRemove === true) {\r\n const extKeysToRemove = [\r\n 'ActiveCartId_CAP',\r\n 'CheckoutCartId_CAP',\r\n 'GreetingMessage_CAP',\r\n 'GreetingSign_CAP',\r\n 'billing',\r\n 'Type_CAP',\r\n 'Country_CAP',\r\n 'City_CAP',\r\n 'ZipCode_CAP',\r\n 'OrgName_CAP',\r\n 'VatNum_CAP',\r\n 'FiscalCode_CAP',\r\n 'PEC_CAP',\r\n 'SDI_CAP',\r\n 'InvoiceCustAccount_CAP',\r\n 'Street_CAP',\r\n 'StreetNumber_CAP',\r\n 'FirstName_CAP',\r\n 'LastName_CAP'\r\n ];\r\n\r\n if (extProps) {\r\n for (const propToRemove of extKeysToRemove) {\r\n if (find(extProps, (obj: { Key: string }): boolean => obj.Key === propToRemove)) {\r\n extPropsToEmpty.push({\r\n Key: propToRemove,\r\n Value: {}\r\n });\r\n }\r\n }\r\n if (extPropsToRemove === true) {\r\n extPropsToEmpty.push({\r\n Key: 'ExtPropsRemove_CAP',\r\n Value: {\r\n BooleanValue: false\r\n }\r\n });\r\n }\r\n }\r\n if (currentCartState && extPropsToEmpty.length !== 0) {\r\n await currentCartState.updateExtensionProperties({ newExtensionProperties: extPropsToEmpty });\r\n }\r\n // else {\r\n // console.log(\"no extension property to clean found\");\r\n // }\r\n } else {\r\n setValue('message', greetingMessageCAP, { shouldDirty: true });\r\n setValue('sign', greetingSignCAP, { shouldDirty: true });\r\n }\r\n };\r\n React.useEffect(() => {\r\n void setRemoveData(props);\r\n }, []);\r\n const [greetingsState, setGreetingsState] = React.useState({\r\n isCompiled: (greetingMessageCAP && greetingMessageCAP !== '') || (greetingSignCAP && greetingSignCAP !== '') ? true : false,\r\n isEditing: false\r\n });\r\n const [greeting, setGreeting] = React.useState({\r\n message: greetingMessageCAP && greetingMessageCAP !== '' ? greetingMessageCAP : '',\r\n sign: greetingSignCAP && greetingSignCAP !== '' ? greetingSignCAP : ''\r\n });\r\n\r\n const greetingsTrigger = () => {\r\n setGreetingsState(greetingsState => ({\r\n ...greetingsState,\r\n isEditing: !greetingsState.isEditing\r\n }));\r\n };\r\n\r\n const updateExtProps = async (data: Inputs, cartProps: ICartViewProps) => {\r\n const addGreeting = [\r\n {\r\n Key: 'GreetingMessage_CAP',\r\n Value: {\r\n StringValue: data.message\r\n }\r\n },\r\n {\r\n Key: 'GreetingSign_CAP',\r\n Value: {\r\n StringValue: data.sign\r\n }\r\n }\r\n ];\r\n\r\n const currentCartState = await getCartState(cartProps.context?.actionContext);\r\n await currentCartState.updateExtensionProperties({ newExtensionProperties: addGreeting });\r\n await currentCartState.refreshCart({});\r\n };\r\n\r\n const _addMessCart = async (data: Inputs) => {\r\n setGreeting(() => ({\r\n message: data.message,\r\n sign: data.sign\r\n }));\r\n if (data.message !== '' || data.sign !== '') {\r\n setGreetingsState(() => ({\r\n isCompiled: true,\r\n isEditing: false\r\n }));\r\n } else {\r\n setGreetingsState(() => ({\r\n isCompiled: false,\r\n isEditing: false\r\n }));\r\n }\r\n\r\n await updateExtProps(data, props);\r\n };\r\n\r\n const resetGreeting = () => {\r\n reset({ message: greeting.message, sign: greeting.sign });\r\n setGreetingsState(() => ({\r\n isCompiled: true,\r\n isEditing: false\r\n }));\r\n };\r\n const changeGreeting = () => {\r\n setGreetingsState(() => ({\r\n isCompiled: false,\r\n isEditing: true\r\n }));\r\n };\r\n const removeGreeting = async () => {\r\n reset({ message: '', sign: '' });\r\n setGreeting({ message: '', sign: '' });\r\n setGreetingsState(() => ({\r\n isCompiled: false,\r\n isEditing: false\r\n }));\r\n await updateExtProps({ message: '', sign: '' }, props);\r\n };\r\n return (\r\n \r\n

\r\n \r\n {props.resources.addGreetingText}\r\n

\r\n
\r\n
\r\n
\r\n \r\n