{"version":3,"sources":["synchrony.js"],"names":["jQuery","on","e","Cleave","creditCard","synchrony","clientToken","merchantId","cartTotal","clientTransId","promoCode","isOpen","test","checkout","result","console","log","cb","getToken","openModal","ajax","url","type","dataType","data","action","success","error","errno","parseFloat","_error","getUserData","formData","serializeArray","fields","forEach","row","name","value","completeCB","user","params","processInd","tokenId","merchantID","custFirstName","billing_first_name","custLastName","billing_last_name","custZipCode","billing_postcode","replace","custAddress1","billing_address_1","custAddress2","billing_address_2","phoneNumber","billing_phone","emailAddress","billing_email","custCity","billing_city","custState","billing_state","transPromo1","String","transAmount1","cardNumber","synchrony_credit_card_no","listenForModalClose","syfDBuy","calldBuyProcess","verify","StatusCode","StatusMessage","_error2","eventListenerCB","event","JSON","stringify","window","removeEventListener","addEventListener"],"mappings":"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","sourcesContent":["\njQuery('body').on('focus', '#synchrony_credit_card_no', function(e) {\n new Cleave('#synchrony_credit_card_no', {\n creditCard: true\n });\n});\n\n\nlet synchrony = {\n clientToken: null,\n merchantId: null,\n cartTotal: null,\n clientTransId: null,\n promoCode: null,\n isOpen: false,\n test: () => {\n // synchrony.listenForModalClose();\n // synchrony.getToken();\n synchrony.checkout( (result) => {\n console.log('final result', result);\n });\n },\n checkout: (cb) => {\n if(synchrony.isOpen) {\n return;\n }\n synchrony.isOpen = true;\n synchrony.getToken( (result) => {\n if(result !== true) {\n synchrony.isOpen = false;\n if(typeof cb === 'function') { cb(result); }\n return;\n }\n synchrony.openModal( (result) => {\n synchrony.isOpen = false;\n if(result !== true) {\n if(typeof cb === 'function') { cb(result); }\n return;\n }\n if(typeof cb === 'function') { cb(true); }\n });\n });\n\n },\n getToken: (cb) => {\n var data = {\n action: 'synchrony_get_token',\n };\n jQuery.ajax({\n url: \"/wp-admin/admin-ajax.php\",\n type: \"POST\",\n dataType: \"json\",\n data: data,\n success: function(data){\n if(data.error) {\n if(typeof cb === 'function') { cb({'errno': 1, 'error': data.error}); }\n // console.log(\"Error:\", data.error);\n return;\n }\n if( parseFloat(data.cartTotal) == 0 || !data.clientTransId) {\n if(typeof cb === 'function') { cb({'errno': 1.1, 'error': 'Cart is empty.'}); }\n return;\n }\n\n synchrony.clientToken = data.clientToken;\n synchrony.merchantId = data.merchantId;\n synchrony.cartTotal = data.cartTotal;\n synchrony.clientTransId = data.clientTransId;\n synchrony.promoCode = data.promoCode;\n\n if(typeof cb === 'function') { cb(true); }\n },\n error: function(error){\n // console.log(\"Error:\", error);\n if(typeof cb === 'function') { cb({'errno': 2, 'error': error}); }\n }\n });\n \n },\n getUserData: () => {\n let formData = jQuery('[name=\"checkout\"]').serializeArray();\n let fields = {};\n formData.forEach( (row) => {\n fields[row.name] = row.value;\n });\n return fields;\n },\n completeCB: null,\n openModal: (completeCB) => {\n synchrony.completeCB = completeCB;\n let user = synchrony.getUserData();\n let params = {\n processInd: 3,\n tokenId: synchrony.clientToken,\n merchantID: synchrony.merchantId,\n clientTransId: synchrony.clientTransId,\n\n //prefill & editable by combined modal for card lookup\n custFirstName: user.billing_first_name,\n custLastName: user.billing_last_name,\n custZipCode: user.billing_postcode.replace(/[-]/g,''),\n\n //pre fill fields\n custAddress1: user.billing_address_1,\n custAddress2: user.billing_address_2,\n phoneNumber: user.billing_phone,\n emailAddress: user.billing_email,\n custCity: user.billing_city,\n custState: user.billing_state,\n \n transPromo1: String(synchrony.promoCode), //three-digit code as string\n transAmount1: parseFloat(synchrony.cartTotal),\n\n // defaultPromoCode: null,\n cardNumber: parseFloat(String(user.synchrony_credit_card_no).replace(/\\D/g,'')),\n // iniPurAmt: null,\n };\n synchrony.listenForModalClose();\n syfDBuy.calldBuyProcess(null, params);\n },\n verify: () => {\n var data = {\n action: 'synchrony_order_status',\n };\n jQuery.ajax({\n url: \"/wp-admin/admin-ajax.php\",\n type: \"POST\",\n dataType: \"json\",\n data: data,\n success: function(data){\n if(data.error) {\n if(typeof cb === 'function') { cb({'errno': 1, 'error': data.error}); }\n // console.log(\"Error:\", data.error);\n return;\n }\n \n if(data.StatusCode == '000') {\n if(typeof synchrony.completeCB === 'function') { synchrony.completeCB(true); }\n } else if(data.StatusCode == '100') { //user terminated\n if(typeof synchrony.completeCB === 'function') { synchrony.completeCB(null); }\n } else {\n if(typeof synchrony.completeCB === 'function') { synchrony.completeCB({'errno': 4, 'error': data.StatusMessage}); }\n }\n },\n error: function(error){\n if(typeof synchrony.completeCB === 'function') { synchrony.completeCB({'errno': 3, 'error': error}); }\n }\n });\n },\n eventListenerCB: (event) => {\n if (typeof event.data == 'string' && (event.data == 'Close Model' || event.data == 'Return To Merchant Shipping'))\n { \n console.log('SYNCHRONY MODAL CLOSED', event, JSON.stringify(event)); \n synchrony.verify();\n }\n },\n listenForModalClose: () => {\n window.removeEventListener(\"message\", synchrony.eventListenerCB);\n window.addEventListener(\"message\", synchrony.eventListenerCB);\n },\n\n};\n\n\n"]}