{"version":3,"sources":["webpack:///./cartridges/app_harmony/cartridge/client/default/js/widgets/account/HarmonyPaymentsList.js","webpack:///./cartridges/app_harmony/cartridge/client/default/js/widgets/account/PaymentForm.js","webpack:///./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyTabs.js","webpack:///./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/InputCreditCardNumber.js","webpack:///./cartridges/int_authorize_net/cartridge/client/default/js/widgets/account/AuthorizeNetPaymentForm.js","webpack:///./cartridges/int_authorize_net/cartridge/client/default/js/widgets/payment/AuthorizeNetPaymentMixin.js"],"names":["PaymentsList","HarmonyPaymentsList","removeCard","card","cardToRemove","getById","confirmDialog","showModal","cardNumber","data","confirmedRemoveCard","promise","getJSONByUrl","UUID","then","res","error","paymentInstruments","isPaymentToDeleteDefault","isEmpty","length","accessibilityAlert","prefs","accessibilityAlerts","paymentRemoved","deleteDefaultPayment","ref","show","forEach","defaultWineClubPayment","render","eventBus","emit","setDefault","defaultPaymentChanged","DEFAULT_CARD_TYPE","regexToCardsMaping","Bijcard","Jcb","Cup","Visa","Maestro","Master","Amex","Diners","Discover","Cartebancaire","AjaxForm","PaymentForm","cardNumberField","cardTypeField","init","on","$","value","hide","getFormFields","formFields","cardType","determinCardType","shift","cardNumberReplaced","replace","Object","keys","filter","key","test","processCardNumber","Tabs","HarmonyTabs","urlParams","URLSearchParams","window","location","search","showRegisterTab","has","activatePanel","handleTabClick","clickedButton","panelName","String","config","afterTabChanged","setFocusToTab","tab","onVerificationShow","form","attr","setTimeout","scrollWindowTo","get","scrollToTop","tabName","removeAttribute","BasicInput","InputCreditCardNumber","cleave","Cleave","default","creditCard","onDestroy","destroy","undefined","getValue","getRawValue","STATE_NEW","STATE_EDIT","STATE_LIST","AuthorizeNetPaymentForm","addressAutocompleteEnabled","addressAutocompleteProvider","opaqueDataField","cardCodeField","expirationDateField","paymentFields","templateRefId","container","selectedAddressId","initState","addressBook","selectDefaultAddress","addresses","isShowAddNewAddress","isHideBackButton","onChangeAddress","selectedAddress","addressID","dataset","uuid","setSelectedAddress","item","setValue","forceFocusOnCVV","eachChild","child","id","focus","clearError","newAddress","backToAddressBook","markAddressSelection","editAddress","editButton","fillAddressFields","getAddressFields","addressField","name","getName","shortName","split","pop","countryCode","initValue","onCountryChange","el","updateFormData","updateAddressAutocomplete","autocompleteField","updateState","stateCode","document","getElementById","postalCode","addressFields","noDefault","some","address","isDefault","ID","selectedAddressID","selected","state","renderContainerRef","strToRender","templateRef","handleSubmit","isChildrenValid","submitting","showProgressBar","submitButton","disable","errorMessageLabel","dispatchData","handleTokenError","response","opaqueData","setError","addCardErrorMsg","afterSubmission","Widget","AuthorizeNetPaymentMixin","authorizeClientUrl","authorizeClientKey","authorizeApiLoginId","loadScript","cardFields","Accept","authData","clientKey","apiLoginID","cardData","month","year","cardCode","submitToken","bind","JSON","stringify","field","submitFormJson","getFormUrl","onSubmitted","finally"],"mappings":"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","file":"harmony.account.bundle.js","sourcesContent":["import { getJSONByUrl } from 'widgets/toolbox/ajax';\n\n/**\n * @description HarmonyPaymentsList implementation\n * @param {PaymentsList} PaymentsList widget for extending\n * @returns {typeof HarmonyPaymentsList}\n */\nexport default function (PaymentsList) {\n return class HarmonyPaymentsList extends PaymentsList {\n /**\n * @description Show confirmation dialog on remove card button click\n * @listens dom#click\n * @param {RefElement} card removed payment card\n * @returns {void}\n */\n removeCard(card) {\n this.cardToRemove = card;\n this.getById('confirmDialog', (confirmDialog) => {\n confirmDialog.showModal({ cardNumber: card.data('card') });\n });\n }\n\n /**\n * @description Remove card\n * @listens dom#click\n * @returns {void}\n */\n confirmedRemoveCard() {\n if (!this.cardToRemove) {\n return;\n }\n\n const promise = getJSONByUrl(\n this.cardToRemove.data('url'),\n { UUID: this.cardToRemove.data('id') }\n ).then((res) => {\n if (res.error) {\n return;\n }\n\n const { paymentInstruments, isPaymentToDeleteDefault } = res;\n const isEmpty = !paymentInstruments.length;\n let accessibilityAlert = this.prefs().accessibilityAlerts.paymentRemoved;\n\n if (isPaymentToDeleteDefault && !isEmpty) {\n accessibilityAlert = this.prefs().accessibilityAlerts.deleteDefaultPayment;\n }\n\n if (isEmpty) {\n this.ref('msgBlock').show();\n }\n\n res.paymentInstruments.forEach(data => {\n if(data.UUID === res.defaultWineClubPayment) {\n data['isWineClubActive'] = true;\n } else {\n data['isWineClubActive'] = false;\n }\n });\n\n this.render('paymentInstrumentsTemplate', {\n paymentInstruments\n }, this.ref('paymentInstruments'));\n\n delete this.cardToRemove;\n\n this.eventBus().emit('alert.show', {\n accessibilityAlert\n });\n });\n\n this.eventBus().emit('loader.start', promise);\n }\n\n /**\n * Makes a request to set selected CC as a default one\n * @param {RefElement} card\n */\n setDefault(card) {\n const promise = getJSONByUrl(\n card.data('url'),\n { UUID: card.data('uuid') }\n ).then((res) => {\n if (res.error) {\n return;\n }\n res.paymentInstruments.forEach(data => {\n if(data.UUID === res.defaultWineClubPayment) {\n data['isWineClubActive'] = true;\n } else {\n data['isWineClubActive'] = false;\n }\n });\n const accessibilityAlert = this.prefs().accessibilityAlerts.defaultPaymentChanged;\n this.render('paymentInstrumentsTemplate', {\n paymentInstruments: res.paymentInstruments\n }, this.ref('paymentInstruments'));\n \n this.eventBus().emit('alert.show', {\n accessibilityAlert\n });\n });\n\n this.eventBus().emit('loader.start', promise);\n }\n };\n}\n","const DEFAULT_CARD_TYPE = 'Visa';\nconst regexToCardsMaping = {\n Bijcard: /^5100081/, // CLARIFY: full length of card ?\n Jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n Cup: /^(62[0-9]{14,17})$/,\n Visa: /^4[0-9]{12}(?:[0-9]{3})?$/,\n Maestro: /^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$/,\n Master: /^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n Amex: /^3[47][0-9]{13}$/,\n Diners: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n // eslint-disable-next-line max-len\n Discover: /^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$/,\n Cartebancaire: /^(4|5|6)\\d{15}/\n};\n\n/**\n * @description PaymentForm implementation\n * @param {AjaxForm} AjaxForm Base widget for extending\n * @returns {typeof PaymentForm}\n */\nexport default function (AjaxForm) {\n return class PaymentForm extends AjaxForm {\n prefs() {\n return {\n cardNumberField: 'dwfrm_creditCard_cardNumber',\n cardTypeField: 'dwfrm_creditCard_cardType',\n ...super.prefs()\n };\n }\n\n init() {\n super.init();\n this.eventBus().on('process.card.number', 'processCardNumber');\n\n /* To hide state drop down ifcountry is not us */\n $('#dwfrm_creditCard_addressFields_country').on('change', function() {\n // @ts-ignore\n if(this.value !== 'US') {\n $('.states').hide();\n } else {\n $('.states').show();\n }\n });\n }\n\n /**\n * @description Get Form fields and extend them with cardType\n * @returns {object} Object contains form fields\n */\n getFormFields() {\n const formFields = super.getFormFields();\n\n const {\n cardNumberField,\n cardTypeField\n } = this.prefs();\n const cardType = this.determinCardType(\n formFields[cardNumberField]\n ).shift() || DEFAULT_CARD_TYPE;\n\n formFields[cardTypeField] = cardType;\n\n return formFields;\n }\n\n /**\n * @description Determin card type by card number\n * @param {string} cardNumber number of card\n * @returns {Array} result\n */\n determinCardType(cardNumber) {\n const cardNumberReplaced = cardNumber.replace(/[\\s-]/g, '');\n\n return Object.keys(regexToCardsMaping)\n .filter(key => regexToCardsMaping[key] && regexToCardsMaping[key].test(cardNumberReplaced));\n }\n\n /**\n * Determins type of credit card and emit event to update validation rules of CVV field\n * @param {string} cardNumber\n */\n processCardNumber(cardNumber) {\n const cardType = this.determinCardType(cardNumber).shift();\n\n this.eventBus().emit('update.cvv.validation', cardType);\n }\n };\n}\n","/**\n * @typedef {typeof import('widgets/global/Tabs').default} Tabs\n */\n\nimport { scrollWindowTo, scrollToTop } from 'widgets/toolbox/scroll';\n\n/**\n * @description Base Tabs implementation\n * @param Tabs\n * @param {Tabs} Widget - widget for extending\n * @returns {typeof HarmonyTabs} Tabs widget\n */\nexport default function (Tabs) {\n /**\n * @class HarmonyTabs\n * @augments Tabs\n */\n class HarmonyTabs extends Tabs {\n init() {\n super.init();\n\n /**\n * When verification code form need to be shown.\n */\n this.eventBus().on('verificationcodeform.show', 'onVerificationShow');\n\n const urlParams = new URLSearchParams(window.location.search);\n const showRegisterTab = urlParams.has('register');\n\n // Activate the register panel if the 'register' parameter is present\n if (showRegisterTab) {\n this.activatePanel('register');\n }\n }\n\n /**\n * @param {InstanceType} clickedButton - Widget, representing customer's tab clicked element\n * @returns {void}\n */\n handleTabClick(clickedButton) {\n const panelName = String(clickedButton.config.panelName);\n\n this.activatePanel(panelName);\n this.afterTabChanged(panelName);\n }\n\n /**\n * @description Sets focus to panel with given name\n *
Uses `roving focus` accessibility feature\n *
https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex\n * @param {string} tab Tab name to set focus to\n * @returns {void}\n */\n setFocusToTab(tab) {\n if (!tab) {\n return;\n }\n super.setFocusToTab(tab);\n this.afterTabChanged(tab);\n }\n\n /**\n * @description when verification code form has been shown.\n * @param {string} form - which specific form.\n */\n onVerificationShow(form) {\n switch (form) {\n case 'login':\n this.ref('login').attr('tabindex', '-1');\n break;\n case 'register':\n this.ref('register').attr('tabindex', '-1');\n setTimeout(() => {\n this.ref('register') ? scrollWindowTo(this.ref('register').get(), true) : scrollToTop();\n }, 200);\n break;\n default:\n break;\n }\n }\n\n /**\n * @description when tab was changes\n * @param {string} tabName - the name of triggered tab.\n */\n afterTabChanged(tabName) {\n this.ref('login').get().removeAttribute('tabindex');\n this.ref('register').get().removeAttribute('tabindex');\n\n this.eventBus().emit('harmonytab.change', tabName);\n }\n }\n\n return HarmonyTabs;\n}\n","/**\n * @typedef {ReturnType} BasicInput\n */\n/**\n * @param {BasicInput} BasicInput Base widget for extending\n * @returns {typeof InputCreditCardNumber} Credit Card Number Input widget\n */\nexport default function (BasicInput) {\n /**\n * @category widgets\n * @subcategory checkout\n * @class InputCreditCardNumber\n * @augments BasicInput\n * @classdesc Represents credit card input field with next features:\n * 1. Initializes cleave on widget's field\n * 2. Overlaps {@link BasicInput#getValue} method to get not masked value from cleave\n * @example Dynamicforms config for credir card field\n * cardNumber: {\n * widget: {\n * type: 'inputCreditCardNumber'\n * },\n * extends: 'fields.input.text',\n * 'label.text': 'form.payment.card.number',\n * 'caption.show': true,\n * 'caption.text': 'form.payment.card.number.caption',\n * validation: {\n * 'patterns.parse': 'validation.patterns.parse.cardnumber',\n * 'errors.parse': 'validation.errors.parse'\n * },\n * element: {\n * required: true,\n * attributes: {\n * autocomplete: 'cc-number',\n * inputmode: 'numeric'\n * }\n * }\n * }\n */\n class InputCreditCardNumber extends BasicInput {\n /**\n * @description Initialize widget logic\n * @returns {void}\n */\n init() {\n super.init();\n\n import(/* webpackChunkName: 'cleave' */'cleave.js').then((cleave) => {\n const Cleave = cleave.default;\n\n this.cleave = new Cleave(this.ref('field').get(), {\n creditCard: true\n });\n\n this.onDestroy(() => {\n if (this.cleave) {\n this.cleave.destroy();\n this.cleave = undefined;\n }\n });\n });\n }\n\n /**\n * @description Get credit card raw value\n * @returns {string} Credit card raw value\n */\n getValue() {\n if (this.cleave) {\n return this.cleave.getRawValue();\n }\n return super.getValue();\n }\n }\n\n return InputCreditCardNumber;\n}\n","/**\n * @description AuthorizeNetPaymentForm implementation\n * @param {AjaxForm} AjaxForm Base widget for extending\n * @returns {typeof AuthorizeNetPaymentForm}\n */\n\nconst STATE_NEW = 'newAddress';\nconst STATE_EDIT = 'editAddress';\nconst STATE_LIST = 'listAddress';\n\nexport default function (AjaxForm) {\n return class AuthorizeNetPaymentForm extends AjaxForm {\n prefs() {\n return {\n ...super.prefs(),\n addressAutocompleteEnabled: true,\n addressAutocompleteProvider: 'googleAutocomplete',\n opaqueDataField: 'dwfrm_creditCard_opaqueData',\n cardNumberField: 'dwfrm_creditCard_cardNumber',\n cardCodeField: 'dwfrm_creditCard_securityCode',\n expirationDateField: 'dwfrm_creditCard_expirationDate',\n paymentFields: [\n 'dwfrm_creditCard_cardOwner',\n 'dwfrm_creditCard_paymentMethod',\n 'dwfrm_creditCard_saveCard',\n 'dwfrm_creditCard_setAsDefault'\n ],\n templateRefId: 'template',\n container: 'addressBookContainer',\n selectedAddressId: 'dwfrm_billing_addressFields_addressId'\n };\n }\n\n init() {\n super.init();\n\n this.eventBus().on('force.focus.cvv', 'forceFocusOnCVV');\n this.initState();\n }\n\n initState() {\n const addressBook = this.config.addressBook;\n\n if (addressBook?.length) {\n this.selectDefaultAddress(addressBook);\n this.render(STATE_LIST, { addresses: addressBook, isShowAddNewAddress: true }, this.ref(this.prefs().container));\n return;\n }\n\n this.render(STATE_NEW, { isHideBackButton: true }, this.ref(this.prefs().container));\n }\n\n /**\n * @description calls when address checked has been changed\n */\n onChangeAddress(selectedAddress) {\n const addressID = selectedAddress?.get().dataset?.uuid;\n\n if (addressID) {\n this.setSelectedAddress(addressID);\n this.getById(this.prefs().selectedAddressId, (item) => item.setValue(addressID, true));\n }\n }\n\n forceFocusOnCVV() {\n this.eachChild(child => {\n if (child.id === this.prefs().cardCodeField) {\n child.focus();\n child.clearError();\n }\n });\n }\n\n /**\n * @description shows an empty address form to add new address.\n */\n newAddress() {\n this.render(STATE_NEW, {}, this.ref(this.prefs().container)).then(() => {\n this.getById(this.prefs().selectedAddressId, (item) => item.setValue('', true));\n });\n }\n\n /**\n * @description shows the list of saved addresses.\n */\n backToAddressBook() {\n var addressBook = this.config.addressBook;\n\n this.markAddressSelection(addressBook);\n this.render(STATE_LIST, { addresses: addressBook, isShowAddNewAddress: true }, this.ref(this.prefs().container));\n }\n\n /**\n * @description shows address form with populated address to edit it.\n */\n editAddress(editButton) {\n const addressID = editButton && editButton.data('uuid');\n\n this.setSelectedAddress(addressID);\n this.render(STATE_EDIT, {}, this.ref(this.prefs().container)).then(() => {\n this.fillAddressFields(editButton.get().dataset);\n });\n }\n\n /**\n * @description populate address in edit form.\n * @param {[]} dataset\n */\n fillAddressFields(dataset) {\n this.getAddressFields().forEach(item => {\n this.getById(item, (/** @type {basicInput} */addressField) => {\n const name = addressField.getName() || '';\n const shortName = name.split('_').pop();\n\n if (shortName && shortName !== 'country') {\n addressField.setValue(dataset[shortName] || '', true);\n } else {\n addressField.setValue(dataset.countryCode || addressField.initValue || '', true);\n this.config.countryCode = addressField.getValue();\n }\n });\n });\n }\n\n /**\n * @description Update form html body, after country change\n * @listens InputSelect#change\n * @param {basicInput} el - Country code field\n * @returns {void}\n */\n onCountryChange(el) {\n this.config.countryCode = el.getValue();\n\n this.updateFormData({ countryCode: this.config.countryCode })\n .then(() => this.updateAddressAutocomplete());\n }\n\n /**\n * @description Handles address autocomplete update with the current country code\n * @returns {void}\n */\n updateAddressAutocomplete() {\n if (this.prefs().addressAutocompleteEnabled) {\n this.getById(this.prefs().addressAutocompleteProvider, (autocompleteField) => {\n autocompleteField.updateState(this.config.countryCode);\n });\n }\n // It is required in all site.\n var stateCode = document.getElementById('dwfrm_billing_addressFields_states_stateCode');\n var postalCode = document.getElementById('dwfrm_billing_addressFields_postalCode');\n if (stateCode && postalCode) {\n stateCode.value = '';\n postalCode.value = '';\n }\n }\n\n /**\n * @description Get address fields from prefs\n * @returns {string[]} Address fields names, separated by a comma\n */\n getAddressFields() {\n return this.prefs().addressFields;\n }\n\n /**\n *\n * @param {[]} addresses\n */\n selectDefaultAddress(addresses = []) {\n var noDefault = true;\n addresses.some((address) => {\n if (address.isDefault) {\n this.setSelectedAddress(address.ID);\n this.markAddressSelection(addresses);\n noDefault = false;\n return true;\n }\n return false;\n });\n\n if (noDefault && !addresses[0].isDefault) {\n this.setSelectedAddress(addresses[0].ID);\n this.markAddressSelection(addresses);\n }\n }\n\n /**\n * @description Set selected address\n * @param {string} addressID - Selected address ID\n * @returns {void}\n */\n setSelectedAddress(addressID) {\n this.selectedAddressID = addressID;\n }\n\n /**\n * @description Set `selected` attribute for selected address\n * @param {object} addresses - Addresses object\n * @returns {void}\n */\n markAddressSelection(addresses = []) {\n addresses.forEach(address => {\n address.selected = address.ID === this.selectedAddressID;\n });\n }\n\n /**\n * @description renders address form according to the chosen state.\n * @param {string} state the state of address form\n * @param {*} address an object with address to populate\n */\n render(state, data = {}, renderContainerRef = this.ref('fieldset'), strToRender = '') {\n const templateRef = this.prefs().templateRefId;\n // set state variable for use it in template rendering\n data[state] = true;\n\n return super.render(templateRef, data, renderContainerRef, strToRender);\n }\n\n /**\n * @description Handles submit Form\n * @returns {void|boolean} return bolean value if Form fields doen't valid\n */\n handleSubmit() {\n if (this.isChildrenValid() && !this.submitting) {\n this.submitting = true;\n this.showProgressBar();\n this.ref(this.prefs().submitButton).disable();\n this.ref(this.prefs().errorMessageLabel).hide();\n this.dispatchData(this.getFormFields());\n }\n\n return false;\n }\n\n /**\n * @description Handles opaqueData and if it's, empty error will be displayed\n * @param {object} response\n * @param {object} response.opaqueData Generic payment data type which is used\n * to process tokenized or encrypted payment information\n */\n handleTokenError(response) {\n if (!response || !response.opaqueData) {\n this.setError(this.prefs().addCardErrorMsg);\n this.afterSubmission();\n }\n }\n };\n}\n","import { submitFormJson } from 'widgets/toolbox/ajax';\nimport { loadScript } from 'widgets/toolbox/util';\n\n/**\n * @typedef {ReturnType} BillingForm\n * @typedef {InstanceType>} paymentAccordion\n */\n\n/**\n * @description AuthorizeNetPaymentMixin implementation\n * @param {Widget} Widget widget for extending\n * @returns {typeof AuthorizeNetPaymentMixin}\n */\nexport default function (Widget) {\n /**\n * @class AuthorizeNetPaymentMixin\n * @augments Widget\n * @classdesc AuthorizeNetPaymentMixin provides logic for CC processing via Authorize.net.\n * AT first we initialize Accept.js (Accept Suite client side JS library) which allows us to get a nonce.\n * After that we shall send the nonce(opaqueData) which comes from the response to SFCC.\n */\n return class AuthorizeNetPaymentMixin extends Widget {\n prefs() {\n return {\n authorizeClientUrl: '',\n authorizeClientKey: '',\n authorizeApiLoginId: '',\n opaqueDataField: '',\n cardNumberField: '',\n cardCodeField: '',\n expirationDateField: '',\n paymentFields: [],\n ...super.prefs()\n };\n }\n\n init() {\n // Accept Suite is a client side js library provided by Authorize.net\n // which allows us to get a nonce so customer doesn't send credit card data to SFCC\n const { authorizeClientUrl } = this.prefs();\n\n if (authorizeClientUrl) {\n loadScript(authorizeClientUrl);\n }\n\n super.init();\n }\n\n /**\n * Prepares and sends credit card data to Accept Suite\n * @param {object} cardFields\n */\n dispatchData(cardFields) {\n const {\n authorizeClientKey,\n authorizeApiLoginId,\n cardNumberField,\n cardCodeField,\n expirationDateField\n } = this.prefs();\n\n if (!authorizeClientKey\n || !authorizeApiLoginId\n || !window.Accept\n ) {\n this.handleTokenError();\n return;\n }\n\n const data = {\n authData: {\n clientKey: authorizeClientKey,\n apiLoginID: authorizeApiLoginId\n },\n cardData: {\n cardNumber: cardFields[cardNumberField],\n month: cardFields[expirationDateField].split('/')[0],\n year: cardFields[expirationDateField].split('/')[1],\n cardCode: cardFields[cardCodeField]\n }\n };\n\n this.cardFields = cardFields;\n\n // @ts-ignore\n window.Accept.dispatchData(data, this.submitToken.bind(this));\n }\n\n /**\n * Accept Suite callback to send opaqueData (which comes from the Authorize.net response) to SFCC\n * @param {object} response\n * @param {object} response.opaqueData Generic payment data type which is used\n * to process tokenized or encrypted payment information\n */\n submitToken(response) {\n this.handleTokenError(response);\n\n if (!response.opaqueData) {\n return;\n }\n\n const {\n paymentFields,\n opaqueDataField\n } = this.prefs();\n const data = {\n ...this.getFormFields(),\n [opaqueDataField]: JSON.stringify(response.opaqueData)\n };\n\n paymentFields.forEach(field => {\n data[field] = this.cardFields[field];\n });\n\n delete this.cardFields;\n\n submitFormJson(this.getFormUrl(), data, 'POST')\n .then(this.onSubmitted.bind(this))\n .finally(this.afterSubmission.bind(this));\n }\n };\n}\n"],"sourceRoot":""}