@flittpayments/js-sdk 2.0.5 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).$checkout=e()}(this,(function(){"use strict";var t={},e={},n=function(e,n){if(!t[e])throw Error(["module is undefined",e].join(" "));return new t[e](n||{})};function i(t,i){return e[t]?e[t]:e[t]=n(t,i)}function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}i.get=function(t,e){return n(t,e)},i.add=function(e,n){return function(e,n){if(t[e])throw Error(["module already added",e].join(" "));t[e]=n}(e,n),this};var s,o,a=/^\d+$/,h=/([^\[\]]+)|(\[\])/g,u=/([^?#]*)(#.*)?$/,c=/%20/g,l=/\[\]$/,d=/\s([a-zA-Z]+)/,p=function(t){return decodeURIComponent(t.replace(/\+/g," "))},f=function(t){var e=[];return P(t,(function(t){e=e.concat(b(t)?f(t):t)})),e},m=function(t,e,n){b(e)?P(e,(function(i,r){l.test(t)?n(t,i):m(t+"["+(y(e)?r:"")+"]",i,n)})):y(e)?P(e,(function(e,i){m(t+"["+i+"]",e,n)})):n(t,e)},g=function(t){return{}.toString.call(t).match(d)[1].toLowerCase()},y=function(t){return!!t&&"object"===r(t)&&t.constructor===Object},v=function(t){return"function"===g(t)},b=function(t){return"array"===g(t)},x=function(t){return t&&1===t.nodeType},w=function(t){return[].slice.call(t)},E=function(t,e){return t&&t.hasOwnProperty(e)},P=function(t,e,n){for(var i in t)E(t,i)&&e.call(n||null,t[i],i)},_=function(t){for(var e in t)E(t,e)&&(0===t[e].length?(b(t)&&t.splice(e,1),y(t)&&delete t[e]):y(t[e])&&_(t[e]));return t},C=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i<e;i++)n[i-1]=arguments[i];return P(n,(function(e){null!==e&&P(e,(function(e,n){y(e)?t[n]=C(t[n]||{},e):t[n]=e}))})),t},k=function(){for(var t=0,e="";t++<36;)e+=51*t&52?(15^t?8^Math.random()*(20^t?16:4):4).toString(16):"-";return e},S=(s=window,E(s,"PaymentRequest")&&v(s.PaymentRequest)&&(o=s.PaymentRequest),function(t,e,n){var i=null;if((e=e||{}).id=k(),n=n||{},o)try{i=new o(t,e,n)}catch(t){i=null}return i}),A=Object.freeze({__proto__:null,addAttr:function(t,e){if(!1===x(t))return!1;y(e)&&P(e,(function(e,n){t.setAttribute(n,e)}))},addClass:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i=e.shift();if(!1!==x(i)){var r=i.className.trim().split(/\s+/);f(e.map((function(t){return t.trim().split(/\s+/)}))).forEach((function(t){t&&!~r.indexOf(t)&&r.push(t)})),i.className=r.join(" ").trim()}},cleanObject:_,createElement:function(t){return document.createElement(t)},cssUnit:function(t,e){return String(t||0).concat(e||"").concat(" !important")},deparam:function(t){var e={};return"?"===t.charAt(0)&&(t=t.slice(1)),t&&u.test(t)&&P(t.split("&"),(function(t){var n=t.split("="),i=p(n.shift()),r=p(n.join("=")),s=e;if(i){for(var o=0,u=(n=i.match(h)).length-1;o<u;o++)s[n[o]]||(s[n[o]]=a.test(n[o+1])||"[]"===n[o+1]?[]:{}),s=s[n[o]];var c=n.pop();"[]"===c?s.push(r):s[c]=r}})),e},extend:C,forEach:P,getPath:function(t){var e=t.split("."),n=e.shift(),i=null;return E(window,n)&&(i=window[n],P(e,(function(t){i=E(i,t)?i[t]:null}))),i},getPaymentRequest:S,getStyle:function(t,e,n){return((n=window.getComputedStyle)?n(t):t.currentStyle)[e.replace(/-(\w)/gi,(function(t,e){return e.toUpperCase()}))]},getType:g,hasProp:E,isArguments:function(t){return"arguments"===g(t)},isArray:b,isDate:function(t){return"date"===g(t)},isElement:x,isError:function(t){return"error"===g(t)},isFunction:v,isNumber:function(t){return"number"===g(t)},isObject:function(t){return"object"===g(t)},isPlainObject:y,isRegexp:function(t){return"regexp"===g(t)},isString:function(t){return"string"===g(t)},jsonParse:function(t,e){try{return JSON.parse(t)}catch(t){return e}},map:function(t,e,n){var i,r,s=[];for(i in t)E(t,i)&&void 0!==(r=e.call(n||null,t[i],i))&&(s[i]=r);return s},param:function(t){var e=[];return P(t,(function(t,n){m(n,t,(function(t,n){n=null==n?"":n,e.push([encodeURIComponent(t),encodeURIComponent(n)].join("="))}))})),e.join("&").replace(c,"+")},querySelector:function(t,e){return(e||document).querySelector(t)},querySelectorAll:function(t,e){return w((e||document).querySelectorAll(t))},removeAttr:function(t,e){if(!1===x(t))return!1;y(e)&&P(e,(function(e){t.removeAttribute(e)}))},removeClass:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i=e.shift();if(!1!==x(i)){var r=i.className.trim().split(/\s+/);f(e.map((function(t){return t.trim().split(/\s+/)}))).forEach((function(t){if(t){var e=r.indexOf(t);~e&&r.splice(e,1)}})),i.className=r.join(" ").trim()}},removeElement:function(t){t.parentNode.removeChild(t)},stringFormat:function(t,e,n){return(t||"").replace(n||/{(.+?)}/g,(function(t,n){return e[n]||t}))},toArray:w,uuid:k}),q="https://pay.flitt.com",j={gateway:"/latest/checkout-v2/index.html",element:"/latest/checkout-v2/button/element.html"},R="http://secure-redirect.cloudipsp.com/submit/",O="https://pay.google.com/gp/p/js/pay.js",M={apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[{type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"]}}]},L=["ar","bg","ca","zh","hr","cs","da","nl","en","et","fi","fr","de","el","id","it","ja","ko","ms","no","pl","pt","ru","sr","sk","sl","es","sv","th","tr","uk"],T={total:{label:"Total",amount:{currency:"USD",value:"0.00"}}},D={width:"1px !important",height:"1px !important",left:"1px !important",bottom:"1px !important",position:"fixed !important",border:"0px !important"},W={border:"none !important",margin:"0 !important",padding:"0 !important",display:"block !important",width:"1px !important","min-width":"100% !important",background:"transparent !important",position:"relative !important",opacity:"0 !important",overflow:"hidden !important",height:"100% !important",outline:"none !important","z-index":"1 !important"},z={tabindex:"-1",scrolling:"no",frameborder:0,allowtransparency:!0,allowpaymentrequest:!0},F={"z-index":"2 !important",position:"absolute !important",border:"none !important",background:"transparent !important",left:"0 !important",top:"0 !important",cursor:"pointer !important",outline:"none !important",width:"100% !important",height:"100% !important"},U={role:"button","aria-pressed":"false"},B={border:"0 !important",margin:"0 !important",padding:"0 !important",display:"block !important",background:"transparent !important","user-select":"none !important",overflow:"hidden !important",position:"relative !important",opacity:"1 !important",height:"0 !important",width:"100% !important",outline:"none !important"},N="dark",I={dark:"dark",light:"light",black:"dark",white:"light"},G={ar:"",bg:"",ca:"",zh:"",hr:"",cs:"",da:"",nl:"",en:"Pay with",et:"",es:"Comprar con",el:"",fi:"",fr:"Acheter avec",de:"Zahlen über",id:"",it:"Acquista con",ja:"",ko:"",ms:"",no:"",pl:"Zapłać przez",pt:"",ru:"Оплатить через",sr:"",sk:"Zaplatiť cez",sl:"",sv:"",th:"",tr:"",uk:"Оплатити через"},V=Object.freeze({__proto__:null,ApiEndpoint:j,ApiFrameCss:D,ApiOrigin:q,ButtonColorMap:I,ButtonContainerCss:B,ButtonCoverAttrs:U,ButtonCoverCss:F,ButtonDefaultColor:N,ButtonFrameAttrs:z,ButtonFrameCss:W,ButtonLabelMap:G,GoogleBaseRequest:M,GooglePayApi:O,GooglePayLanguages:L,PaymentRequestDetails:T,ProxyUrl:R});function J(){var t=[],e=[],n=[],i=0,r=void 0,s=null,o=null,a=function(t,e,n){var i=[].concat(n),a=function(t,e){s=e?Array.from(t):[t]},h=function(){var t=i.shift();t&&(void 0!==(o=t.apply(r,s))?o&&o.then?o.then((function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];a(e,!0),h()})):(a(o),h()):h())};r=t,s=e,h()},h={done:function(e){return v(e)&&(1===i&&e.apply(r,s),t.push(e)),this},fail:function(t){return v(t)&&(2===i&&t.apply(r,s),e.push(t)),this},progress:function(t){return v(t)&&(3===i&&t.apply(r,s),n.push(t)),this},always:function(t){return this.done(t).fail(t)},then:function(t,e,n){return v(t)&&this.done(t),v(e)&&this.fail(e),v(n)&&this.progress(e),this},promise:function(t){return null===t?h:(P(h,(function(e,n){t[n]=e})),t)},state:function(){return i},isPending:function(){return 0===i},isRejected:function(){return 2===i},isResolved:function(){return 1===i},resetState:function(){return i=0,this},resolveWith:function(e,n){return 0===i&&(i=1,a(e,n,t)),this},rejectWith:function(t,n){return 0===i&&(i=2,a(t,n,e)),this},notifyWith:function(t,e){return 0===i&&(i=3,a(t,e,n),i=0),this},resolve:function(){return this.resolveWith(this,Array.from(arguments))},reject:function(){return this.rejectWith(this,Array.from(arguments))},notify:function(){return this.notifyWith(this,Array.from(arguments))}};return h}var $=!1,Z=/xyz/.test(function(){return"xyz"}.toString())?/\b_super\b/:/.*/;function H(){}function Y(t,e,n){return function(){var i,r=this._super;return this._super=t[e],i=n.apply(this,arguments),this._super=r,i}}H.prototype._super=function(){},H.prototype.instance=function(t){return new this.constructor(t)},H.prototype.proxy=function(t){return function(t,e){return function(){return e.apply(t,[this].concat(Array.prototype.slice.call(arguments)))}}(this,t="string"==typeof t?this[t]:t)},H.extend=function t(e){function n(){!$&&this&&this.init.apply(this,arguments)}return n.prototype=function(t,e){var n,i,r=t.prototype;for(n in $=!0,i=new t,$=!1,e)e.hasOwnProperty(n)&&("function"==typeof r[n]&&"function"==typeof e[n]&&Z.test(e[n])?i[n]=Y(r,n,e[n]):i[n]=e[n]);return i}(this,e),n.prototype.constructor=n,n.extend=t,n};var X=H.extend({init:function(){this.events={},this.empty=[]},on:function(t,e){return(this.events[t]=this.events[t]||[]).push(e),this},off:function(t,e){t||(this.events={});for(var n=this.events[t]||this.empty,i=n.length=e?n.length:0;i--;)e===n[i]&&n.splice(i,1);return this},trigger:function(t){for(var e,n=this.events[t]||this.empty,i=n.length>0?n.slice(0,n.length):n,r=0;e=i[r++];)e.apply(e,this.empty.slice.call(arguments,1));return this}}),K=H.extend({utils:A,getListener:function(){return this._listener_||(this._listener_=new X),this._listener_},destroy:function(){this.off()},on:function(t,e){return this.getListener().on(t,e),this},off:function(t,e){return this.getListener().off(t,e),this},proxy:function(t){return this._proxy_cache_||(this._proxy_cache_={}),this.utils.isString(t)?(this._proxy_cache_[t]||(this._proxy_cache_[t]=this._super(t)),this._proxy_cache_[t]):this._super(t)},trigger:function(){return this.getListener().trigger.apply(this.getListener(),arguments),this},each:function(t,e){this.utils.forEach(t,this.proxy(e))},addAttr:function(t,e){if(!this.utils.isElement(t))return!1;this.utils.forEach(e,(function(e,n){t.setAttribute(n,e)}))},addCss:function(t,e){if(!this.utils.isElement(t))return!1;this.utils.forEach(e,(function(e,n){this.addCssProperty(t,n,e)}),this)},addCssProperty:function(t,e,n){var i,r=t.style.cssText.match(new RegExp("(?:[;\\s]|^)("+e.replace("-","\\-")+"\\s*:(.*?)(;|$))"));r?(i=r.index+r[0].indexOf(r[1]),t.style.cssText=t.style.cssText.substring(0,i)+e+": "+n+";"+t.style.cssText.substring(i+r[1].length)):t.style.cssText+=" "+e+": "+n+";"},addEvent:function(t,e,n){if(!t||!e||!n)return!1;n=this.proxy(n),t.addEventListener?t.addEventListener(e,n):t.attachEvent&&t.attachEvent("on"+e,n)},removeEvent:function(t,e,n){if(!t||!e||!n)return!1;n=this.proxy(n),t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent("on"+e,n)},prepareForm:function(t,e,n,i){var r=this.utils.createElement("form");return this.addAttr(r,{action:t,target:n||"_self",method:i||"POST"}),this.addCss(r,{display:"none"}),this.utils.forEach(e,(function(t,e,n){(n=this.utils.createElement("input")).type="hidden",n.name=e,n.value=t,r.appendChild(n)}),this),r}}),Q=K.extend({ns:"crossDomain",origin:"*",uniqueId:1,signature:null,init:function(t){this.setTarget(t.target),this.setOrigin(t.origin),this.create()},create:function(){this.addEvent(window,"message","router")},setOrigin:function(t){this.origin=t||"*"},setTarget:function(t){return this.target=t,this},getUID:function(){return++this.uniqueId},destroy:function(){this.removeEvent(window,"message","router"),this._super()},router:function(t,e,n){if(this.target!==e.source)return!1;try{n=JSON.parse(e.data)}catch(t){}n&&n.action&&n.data&&this.trigger(n.action,n.data)},send:function(t,e,n,i){if(this.target){n=JSON.stringify({action:t,data:e}),i={targetOrigin:this.origin,delegate:"payment"};try{this.target.postMessage(n,i)}catch(t){this.target.postMessage(n,this.origin,[])}}}}),tt=Object.freeze({__proto__:null,acs:function(t){return"\n".concat('\n<style>\n .flitt-modal {\n box-sizing: border-box;\n margin: 100px auto;\n max-width: 680px;\n background-color: #fff;\n border-radius: 5px;\n box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n }\n\n @media (max-width: 850px) {\n .flitt-modal {\n margin: 50px auto;\n }\n }\n\n @media (max-width: 695px) {\n .flitt-modal {\n max-width: 100%;\n margin: 5px;\n }\n }\n\n .flitt-modal-wrapper {\n box-sizing: border-box;\n overflow: auto;\n position: fixed;\n z-index: 99999;\n left: 0;\n bottom: 0;\n top: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.2);\n }\n\n .flitt-modal-header {\n box-sizing: border-box;\n background-color: #fafafa;\n height: 50px;\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n }\n\n .flitt-modal-close {\n box-sizing: border-box;\n float: right;\n overflow: hidden;\n height: 50px;\n text-decoration: none;\n border-top-right-radius: 5px;\n color: #949494;\n }\n\n .flitt-modal-close:hover, .flitt-modal-close:focus, .flitt-modal-close:active {\n text-decoration: none;\n color: #646464;\n }\n\n .flitt-modal-close:before {\n content: "×";\n font-size: 50px;\n line-height: 50px;\n padding: 0 10px;\n }\n\n .flitt-modal-title {\n box-sizing: border-box;\n border-top-left-radius: 5px;\n line-height: 20px;\n height: 50px;\n padding: 5px 15px;\n font-size: 12px;\n display: table-cell;\n vertical-align: middle;\n }\n .flitt-modal-content {\n box-sizing: border-box;\n border-bottom-left-radius: 5px;\n min-height: 650px;\n }\n .flitt-modal-iframe {\n overflow-x: hidden;\n border: 0;\n display: block;\n width: 100%;\n height: 750px;\n }\n</style>\n','\n<div class="flitt-modal-wrapper">\n <div class="flitt-modal">\n <div class="flitt-modal-header">\n <a href="javascript:void(0)" class="flitt-modal-close"></a>\n <div class="flitt-modal-title">\n ').concat(t.messages.modalHeader,"\n <a href='javascript:void(0)'>").concat(t.messages.modalLinkLabel,'</a>\n </div>\n </div>\n <div class="flitt-modal-content">\n <iframe src="about:blank" class="flitt-modal-iframe" frameborder="0" allowtransparency="true"></iframe>\n </div>\n </div>\n</div>\n')}});var et=H.extend({init:function(t){this.view=tt[t]||function(t){return function(e){return["template",t,"not found"].join(" ")}}(t)},render:function(t){return this.view(t)}}),nt=K.extend({init:function(t){this.checkout=t.checkout,this.model=t.model||{},this.messages=t.checkout.params.messages||{},this.template=new et("acs"),this.body=this.utils.querySelector("body"),this.initModal(),this.initConnector()},initModal:function(){this.name=["modal-iframe",this.getRandomNumber()].join("-"),this.modal=this.utils.createElement("div"),this.modal.innerHTML=this.template.render({model:this.model,messages:this.messages}),this.iframe=this.find(".flitt-modal-iframe"),this.addAttr(this.iframe,{name:this.name,id:this.name}),this.model.send_data?(this.form=this.prepareForm(this.model.url,this.model.send_data,this.name),this.modal.appendChild(this.form)):this.iframe.src=this.model.url,this.addEvent(this.find(".flitt-modal-close"),"click","closeModal"),this.addEvent(this.find(".flitt-modal-title a"),"click","submitForm"),this.initScrollbar(),this.body.appendChild(this.modal),this.form&&this.form.submit()},measureScrollbar:function(){var t=document.createElement("div");return t.className="modal-scrollbar-measure",this.body.appendChild(t),this.utils.removeElement(t),t.offsetWidth-t.clientWidth},checkScrollbar:function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},initScrollbar:function(){this.checkScrollbar(),this.bodyPad=parseInt(this.utils.getStyle(this.body,"padding-right")||0,10),this.originalBodyPad=document.body.style.paddingRight||"",this.originalOverflow=document.body.style.overflow||"",this.bodyIsOverflowing&&this.addCss(this.body,{paddingRight:[this.bodyPad+this.scrollbarWidth,"px"].join(""),overflow:"hidden"})},resetScrollbar:function(){this.addCss(this.body,{paddingRight:this.originalBodyPad?[this.originalBodyPad,"px"].join(""):"",overflow:this.originalOverflow})},getRandomNumber:function(){return Math.round(1e9*Math.random())},find:function(t){return this.utils.querySelector(t,this.modal)},closeModal:function(t,e){e.preventDefault(),this.trigger("close",this.data),this.removeModal()},submitForm:function(t,e){e.preventDefault(),this.trigger("submit",this.data),this.addAttr(this.form,{target:"_blank"}),this.form.submit()},removeModal:function(){this.destroy()},destroy:function(){this.utils.removeElement(this.modal),this.resetScrollbar(),this.connector.destroy(),this._super()},initConnector:function(){this.connector=new Q({target:this.iframe.contentWindow}),this.connector.on("response",this.proxy("onResponse"))},onResponse:function(t,e){this.sendResponse(e),this.removeModal()},sendResponse:function(t){this.checkout.connector.send("request",{uid:t.uid,action:"api.checkout.proxy",method:"send",params:t})}}),it=K.extend({init:function(t){this.data=t||{},this.create()},create:function(){},eachProps:function(t){var e=t[1]?t[0]:null,n=t[1]?t[1]:t[0];return{list:e?this.alt(e,[]):this.data,callback:n}},each:function(){var t=this.eachProps(arguments);for(var e in t.list)t.list.hasOwnProperty(e)&&t.callback(this.instance(t.list[e]),t.list[e],e)},filter:function(){var t=this.eachProps(arguments);for(var e in t.list)if(t.list.hasOwnProperty(e)){var n=this.instance(t.list[e]);if(t.callback(n,t.list[e],e))return t.list[e]}},find:function(){var t=this.eachProps(arguments);for(var e in t.list)if(t.list.hasOwnProperty(e)){var n=this.instance(t.list[e]);if(t.callback(n,t.list[e],e))return n}return!1},alt:function(t,e){return void 0===(t=this.attr(t))?e:t},attr:function(t,e){for(var n=0,i=this.data,r=(t||"").split("."),s=r.pop(),o=arguments.length;n<r.length;n++)if(i&&i.hasOwnProperty(r[n]))i=i[r[n]];else{if(2!==o)break;i=i[r[n]]={}}return 1===o?i?i[s]:void 0:(2===o&&(i[s]=e),this)},stringify:function(){return JSON.stringify(this.serialize())},serialize:function(){return this.data}}),rt=it.extend({stringFormat:function(t){var e=this;return(t||"").replace(/{(.+?)}/g,(function(t,n){return e.attr(["order.order_data",n].join("."))||t}))},setConnector:function(t){return this.connector=t,this},setUID:function(t){return this.uid=t,this},getUID:function(){return this.uid},formDataProxy:function(t,e,n,i){location.assign([R,JSON.stringify({url:t,params:e,target:n,method:i})].join("#"))},formDataSubmit:function(t,e,n,i){if(t.match(/^http:/))return this.formDataProxy(t,e,n,i);var r=this.stringFormat(t),s=this.prepareForm(r,e,n,i);this.utils.querySelector("body").appendChild(s),s.submit(),s.parentNode.removeChild(s)},inProgress:function(){return this.attr("order.in_progress")},readyToSubmit:function(){return this.attr("order.ready_to_submit")},waitForResponse:function(){return this.attr("order.pending")},needVerifyCode:function(){return this.attr("order.need_verify_code")},redirectUrl:function(){return!!this.attr("url")&&(this.redirectToUrl(this.attr("url")),!0)},redirectToUrl:function(t){location.assign(t)},submitToMerchant:function(){var t=this.attr("order.ready_to_submit"),e=this.attr("model.url")||this.attr("order.response_url"),n=this.attr("order.method"),i=this.attr("order.action"),r=this.attr("model.send_data")||this.attr("order.order_data");if(t&&e&&r)return"redirect"===i||!0===r.get_without_parameters?this.redirectToUrl(e):this.formDataSubmit(e,r,"_self",n),!0},submitForm:function(){var t=this.attr("method"),e=this.attr("url"),n=this.attr("send_data");return!(!e||!n)&&(this.formDataSubmit(e,n,"_self",t),!0)},sendResponse:function(){var t=this.attr("action");return"submit"===t?this.submitForm():"redirect"===t&&this.redirectUrl()},prepare3dsData:function(){var t={},e=this.attr("submit3ds");return e["3ds"]&&(t.token=this.attr("token"),t.uid=this.getUID(),t.frame=!0,e.send_data.TermUrl&&(e.send_data.TermUrl=[e.send_data.TermUrl,this.utils.param(t)].join("#!!"))),e},waitOn3dsDecline:function(){var t=this.alt("submit3ds.checkout_data",{js_wait_on_3ds_decline:!1,js_wait_on_3ds_decline_duration:0});return t.js_wait_on_3ds_decline?t.js_wait_on_3ds_decline_duration:0},submit3dsForm:function(){this.attr("submit3ds.checkout_data")&&this.connector.trigger("modal",this.prepare3dsData())},supportedMethod:function(t){var e=this.find("methods",(function(e){return e.alt("supportedMethods","").match(t)}));e?this.attr("methods",[e.serialize()]):this.attr("methods",[])}}),st=K.extend({defaults:{origin:q,endpoint:j,container:"body",messages:{modalHeader:"Now you will be redirected to your bank 3DSecure. If you are not redirected please refer",modalLinkLabel:"link"}},init:function(t){this.initParams(t)},url:function(t,e){return[this.params.origin,this.params.endpoint[t]||"/",e||""].join("")},extendParams:function(t){return this.utils.extend(this.params,t),this},initParams:function(t){this.params=this.utils.extend({},this.defaults),this.extendParams(t),this.setOrigin(this.params.origin),this.loaded=!1,this.created=!1},setOrigin:function(t){return this.utils.isString(t)&&(this.params.origin=t),this},scope:function(t){t=this.proxy(t),this.domReady((function(){!0===this.createFrame().loaded?t():this.on("checkout.api",t)}))},domReady:function(t){t=this.proxy(t),"loading"!==document.readyState?t():window.addEventListener("DOMContentLoaded",t)},request:function(t,e,n){var i=J(),r={uid:this.connector.getUID(),action:t,method:e,params:n||{}};return this.connector.send("request",r),this.connector.on(r.uid,this.proxy((function(t,e,n,s){var o=new rt(e);o.setUID(r.uid),o.setConnector(this.connector),s="resolveWith",o.attr("submit3ds")&&(s="notifyWith"),o.attr("error")&&(s="rejectWith"),i[s](this,[o])}))),i},loadFrame:function(t){if(this.iframe=this.utils.createElement("iframe"),this.addAttr(this.iframe,{allowtransparency:!0,frameborder:0,scrolling:"no"}),this.addAttr(this.iframe,{src:t}),this.addCss(this.iframe,D),this.container=this.utils.querySelector(this.params.container),!this.container)throw Error('container element not found: querySelector("'.concat(this.params.container,'")'));return this.container.firstChild?this.container.insertBefore(this.iframe,this.container.firstChild):this.container.appendChild(this.iframe),this.iframe},createFrame:function(){return!1===this.created&&(this.created=!0,this.iframe=this.loadFrame(this.url("gateway")),this.connector=new Q({target:this.iframe.contentWindow,origin:this.params.origin}),this.connector.on("load",this.proxy("onLoadConnector")),this.connector.on("modal",this.proxy("onOpenModal"))),this},onOpenModal:function(t,e){this.modal=new nt({checkout:this,model:e}),this.modal.on("close",this.proxy("onCloseModal"))},onCloseModal:function(t,e){this.trigger("modal.close",t,e)},onLoadConnector:function(){this.loaded=!0,this.connector.off("load"),this.trigger("checkout.api"),this.off("checkout.api")}}),ot=new(K.extend({id:"google-payments-api",init:function(){this.client=null,this.wrapper=this.utils.querySelector("head"),this.defer=J()},load:function(){return this.utils.getPath("google.payments.api.PaymentsClient")?this.defer.resolveWith(this):(this.utils.querySelector("#".concat(this.id))||(this.script=this.utils.createElement("script"),this.addAttr(this.script,{id:this.id,async:!0,src:O}),this.utils.isElement(this.wrapper)&&this.wrapper.appendChild(this.script),this.addEvent(this.script,"load","onLoadSuccess"),this.addEvent(this.script,"error","onLoadError")),this.defer)},show:function(t){var e=t.find((function(t){return"https://google.com/pay"===t.supportedMethods}));return this.getClient({environment:e.data.environment}).loadPaymentData(e.data)},readyToPay:function(t,e){e.result&&this.defer.resolveWith(this)},onError:function(t,e){this.defer.rejectWith(this,e)},onLoadSuccess:function(){var t=this.getClient();t&&t.isReadyToPay(M).then(this.proxy("readyToPay")).catch(this.proxy("onError"))},onLoadError:function(){this.defer.rejectWith(this)},getClient:function(t){if(t||null===this.client){var e=this.utils.getPath("google.payments.api.PaymentsClient");e?this.client=new e(t):this.onError(null,new Error("Google Client Error"))}return this.client}})),at=null,ht={fallback:!1,provider:[]},ut=function(){if(at)return at;at=J();var t=[["google",{supportedMethods:"https://google.com/pay",data:M}],["apple",{supportedMethods:"https://apple.com/apple-pay"},function(){return E(window,"ApplePaySession")}]],e=T;return function n(){var i=t.shift();if(void 0===i)return-1===ht.provider.indexOf("google")&&(ht.fallback=!0,ht.provider.push("google")),at.resolve(ht);var r=i.shift(),s=i.shift(),o=i.shift();if(v(o)&&!1===o())return setTimeout(n,25),!1;var a=S([s],e,{});a?a.canMakePayment().then((function(t){!0===t&&ht.provider.push(r),setTimeout(n,25)})).catch((function(){setTimeout(n,25)})):setTimeout(n,25)}(),at},ct=K.extend({config:{payment_system:"",fallback:!1,methods:[],details:{},options:{}},supported:{fallback:!1,provider:[]},payload:{payment_system:null,provider:[]},params:{},getSupportedMethods:function(){var t=this;return ut().then((function(e){return t.setSupported(e),e}))},init:function(t){this.params=t||{}},setSupported:function(t){return this.supported=t,this.trigger("supported",t),this},setPayload:function(t){return this.payload=t,this.trigger("payload",t),this},setMerchant:function(t){this.merchant=t},setApi:function(t){return t instanceof st&&(this.api=t),this},getProviderPayload:function(t){return this.payload.provider[t]||{}},isMethodSupported:function(t){return-1!==this.supported.provider.indexOf(t)},isFallbackMethod:function(t){return"google"===t&&this.supported.fallback}}).extend({request:function(t,e,n,i){this.api&&this.api.scope(this.proxy((function(){this.api.request("api.checkout.pay",t,e).done(this.proxy(n)).fail(this.proxy(i))})))},update:function(t){var e=J();return this.request("methods",t,(function(t,n){this.onUpdate(t,n),e.resolveWith(this,[n])}),(function(t,n){this.onError(t,n),e.rejectWith(this,[n])})),e},onUpdate:function(t,e){this.setPayload(e.serialize())},onError:function(t,e){this.trigger("error",e)},isPending:function(){return!0===this.pendingState},setPending:function(t){var e=this;this.pendingState=t,clearTimeout(this.pendingTimeoutEvent),this.pendingTimeoutEvent=setTimeout((function(){e.trigger("pending",t)}),100)},beforeCallback:function(t){t.resolve()},setBeforeCallback:function(t){return v(t)&&(this.beforeCallback=t),this},before:function(){if(!this.isPending()){this.setPending(!0);var t=J();return t.always(this.proxy((function(){this.setPending(!1)}))),this.beforeCallback(t),t}},pay:function(t){if(!this.isPending()){this.setPending(!0);var e=this.getProviderPayload(t),n=J();return n.always((function(){this.setPending(!1)})),!1===this.isMethodSupported(t)?n.rejectWith(this,[{test:!0}]):(this.isFallbackMethod(t)?this.makePaymentFallback(n,e.methods):this.makeNativePayment(n,e),n.done((function(t){this.trigger("details",{payment_system:this.payload.payment_system,data:t})})).fail((function(t){this.trigger("error",t),!0===this.params.embedded&&(location.reload(),this.trigger("reload",this.params))})))}},makeNativePayment:function(t,e){var n=this,i=S(e.methods,e.details,e.options);this.addEvent(i,"merchantvalidation","merchantValidation"),i.canMakePayment().then((function(){i.show().then((function(e){e.complete("success").then((function(){t.resolveWith(n,[e.details])}))})).catch((function(e){t.rejectWith(n,[{code:e.code,message:e.message}])}))})).catch((function(e){t.rejectWith(n,[{code:e.code,message:e.message}])}))},makePaymentFallback:function(t,e){var n=this;ot.load().then((function(){ot.show(e).then((function(e){t.resolveWith(n,[e])})).catch((function(e){t.rejectWith(n,[{code:e.code,message:e.message}])}))}))},appleSession:function(t){var e=J();return this.request("session",t,(function(t,n){e.resolveWith(this,[n.serialize()])}),(function(t,n){e.rejectWith(this,[n])})),e},merchantValidation:function(t,e){var n=e.validationURL,i=location.host;this.appleSession({url:n,domain:i,merchant_id:this.merchant}).done((function(t){try{e.complete(t.data)}catch(t){this.trigger("error",t)}})).fail((function(t){this.trigger("error",t)}))}}),lt=K.extend({defaults:{method:null,appendTo:null,className:"payment-element",origin:q,endpoint:j.element,mode:"plain",color:"black",lang:"en",height:38},init:function(t){this.params={},this.utils.extend(this.params,this.defaults),this.utils.extend(this.params,t),this.initElement()},getElementUrl:function(){return[this.params.origin,this.params.endpoint].join("")},getElementOptions:function(){return this.utils.param({method:this.params.method,mode:this.params.mode,style:this.params.style,color:this.params.color,lang:this.params.lang})},initElement:function(){this.element=this.utils.createElement("div"),this.iframe=this.utils.createElement("iframe"),this.button=this.utils.createElement("a"),this.addCss(this.element,B),this.addCss(this.button,F),this.addAttr(this.button,U),this.addCss(this.iframe,W),this.addAttr(this.iframe,z),this.addAttr(this.iframe,{src:[this.getElementUrl(),this.getElementOptions()].join("?")}),this.addEvent(this.iframe,"load","onloadConnector"),this.addEvent(this.iframe,"error","errorConnector"),this.addAttr(this.element,{class:this.params.className}),this.element.appendChild(this.iframe),this.element.appendChild(this.button)},errorConnector:function(){},onloadConnector:function(){this.connector=new Q({target:this.iframe.contentWindow,origin:this.params.origin})},send:function(t,e){this.connector&&this.connector.send(t,e)},onEvent:function(t,e){if(e.preventDefault(),this.pending)return!1;this.send("event",{type:e.type})},onClick:function(){if(this.pending)return!1;this.request.before().done(this.proxy("onClickDone")).fail(this.proxy("onClickFail"))},onClickDone:function(){this.request.pay(this.params.method)},onClickFail:function(){},onSupported:function(t,e){e.provider.includes(this.params.method)&&this.mount()},onPayload:function(t,e){e.allowed.includes(this.params.method)&&this.show()},onPending:function(t,e){this.pending=e,this.send("pending",{state:e})},initEvents:function(){this.addEvent(this.button,"mouseenter","onEvent"),this.addEvent(this.button,"mouseleave","onEvent"),this.addEvent(this.button,"blur","onEvent"),this.addEvent(this.button,"focus","onEvent"),this.addEvent(this.button,"click","onClick")},setPaymentRequest:function(t){if(!(t instanceof ct))throw Error("request is not instance of PaymentRequestApi");this.request=t;var e=this.proxy("onSupported"),n=this.proxy("onPayload"),i=this.proxy("onPending");return this.request.off("supported",e).on("supported",e),this.request.off("payload",n).on("payload",n),this.request.off("pending",i).on("pending",i),this},appendTo:function(t){var e=this.utils.querySelector(t);return e&&e.appendChild(this.element),this.initEvents(),this},mount:function(){this.appendTo(this.params.appendTo)},isMounted:function(){return document.body.contains(this.element)},show:function(){return!1===this.isMounted()||(this.addCss(this.iframe,{transition:"opacity 0.6s 0.4s ease-out",opacity:this.utils.cssUnit(1)}),this.addCss(this.element,{transition:"height 0.2s ease-out",height:this.utils.cssUnit(this.params.height,"px")}),this.trigger("show",{})),this},hide:function(){return!1===this.isMounted()||(this.addCss(this.iframe,{transition:"opacity 0.4s ease-out",opacity:this.utils.cssUnit(0)}),this.addCss(this.element,{transition:"height 0.2s 0.4s ease-out",height:this.utils.cssUnit(0,"px")}),this.trigger("hide",{})),this}}),dt=K.extend({defaults:{origin:q,endpoint:j,methods:["apple","google"],element:null,style:{height:38,mode:"default",type:"long",color:"black"},data:{lang:"en"},before:function(t){t.resolve()}},init:function(t){this.elements={},this.supported=!1,this.params={element:t.element,methods:t.methods||this.defaults.methods,origin:t.origin||this.defaults.origin,endpoint:this.utils.extend({},this.defaults.endpoint,t.endpoint),style:this.utils.extend({},this.defaults.style,t.style),before:t.before||this.defaults.before,data:this.utils.extend({},this.defaults.data,t.data)},this.initApi(t.api),this.initPaymentRequestApi(),this.initElements(),this.initData()},initData:function(){var t=this.params.data;t.merchant_id&&(t.currency&&t.amount||t.token)&&this.update()},initApi:function(t){this.api=t instanceof st?t:new st({origin:this.params.origin,endpoint:this.params.endpoint})},initPaymentRequestApi:function(){this.request=new ct,this.request.setApi(this.api),this.request.setMerchant(this.params.data.merchant_id),this.request.setBeforeCallback(this.params.before),this.request.on("details",this.proxy("onDetails")),this.request.on("error",this.proxy("onError"))},initElements:function(){var t=this.params.style,e=this.params.data,n=this.params.origin,i=this.params.element,r=this.params.endpoint.element,s=this.request;this.container=this.utils.querySelector(this.params.element),this.addCss(this.container,{display:"flex",gap:"1rem","flex-direction":"column"}),P(this.params.methods,(function(o){new lt({origin:n,endpoint:r,method:o,appendTo:i,color:t.color,mode:t.mode,lang:e.lang,height:t.height}).setPaymentRequest(s)})),s.getSupportedMethods()},update:function(t){return this.request.update(this.utils.extend(this.params.data,t||{}))},onDetails:function(t,e){var n=this;this.api.scope((function(){n.api.request("api.checkout.form","request",n.utils.extend({},n.params.data,e)).done(n.proxy("onSuccess")).fail(n.proxy("onError"))}))},onSuccess:function(t,e){this.trigger("success",e)},onError:function(t,e){this.trigger("error",e)}}),pt=K.extend({defaults:{element:null,method:"card",data:{lang:"en"},style:{}},init:function(t){this.initParams(t),this.initEvents()},initParams:function(t){this.params=this.utils.extend({},this.defaults,t),this.element=this.utils.querySelector(this.params.element),this.connector=new Q({target:window.parent}),this.payment=new ct({embedded:!0})},extendParams:function(t){this.utils.extend(this.params,{method:t.method,style:t.style,data:t.data,css:t.css})},getGoogleLangSupport:function(t,e){return-1!==L.indexOf(t)?t:e},getButtonColor:function(t){return I[t]||N},getGoogleSvg:function(t,e,n){var i={endpoint:"https://www.gstatic.com/instantbuy/svg",color:this.getButtonColor(t),mode:n||"plain",lang:e||"en"},r='url("{endpoint}/{color}/{mode}/{lang}.svg")';return"plain"===n&&(r='url("{endpoint}/{color}_gpay.svg")'),"buy"===n&&(r='url("{endpoint}/{color}/{lang}.svg")'),this.utils.stringFormat(r,i)},getAppleSvg:function(t){var e={color:this.getButtonColor(t)};return this.utils.stringFormat('url("svg/apple-pay-{color}.svg")',e)},getAppleLabel:function(t){return G[t||"en"]},addFrameImage:function(){var t=this.utils.querySelector("iframe",this.element)||this.utils.createElement("iframe"),e=this.params.style||{},n=this.getGoogleLangSupport(this.params.data.lang,"en"),i={buttonColor:e.color||"black",browserLocale:n,buttonSizeMode:"fill"},r=["https://pay.google.com/gp/p/generate_gpay_btn_img",this.utils.param(i)].join("?");this.addAttr(t,{scrolling:"no",frameborder:0,src:r}),this.element.appendChild(t),this.element.classList.remove("short","long")},styleButton:function(){var t=this.element,e=this.params,n=e.method,i=e.style||{},r=e.data.lang||"en",s=e.css||{};t.setAttribute("class",""),t.classList.add("button","pending"),"card"===n&&(n="google"),n&&t.classList.add(n),t.classList.add(r),i.type&&t.classList.add(i.type),i.mode&&t.classList.add(i.mode),i.color&&t.classList.add(i.color),"google"===n&&("short"===i.type&&(i.mode="plain"),"default"===i.mode?this.addFrameImage():s.image=this.getGoogleSvg(i.color,r,i.mode)),"apple"===n&&(s.image=this.getAppleSvg(i.color),s.label=this.getAppleLabel(r,i.mode)),this.utils.forEach(s,(function(e,n){t.style.setProperty(["--",n].join(""),e)}))},initEvents:function(){this.payment.on("details",this.proxy((function(t,e){this.connector.send("details",e),this.connector.send("complete",e)}))),this.payment.on("reload",this.proxy((function(t,e){this.connector.send("reload",e)}))),this.payment.on("error",this.proxy((function(t,e){this.connector.send("error",e)}))),this.connector.on("options",this.proxy((function(t,e){this.extendParams(e),this.styleButton()}))),this.connector.on("pay",this.proxy((function(){if(!this.element.classList.contains("pending"))if("apple"===this.params.method){var t=this.payment.payload||{},e=t.provider.apple||{};this.connector.send("pay",{payment_system:t.payment_system,methods:e.methods,details:e.details,options:e.options})}else this.payment.setSupported({fallback:!1,provider:["google"]}).pay("google")}))),this.connector.on("config",this.proxy((function(t,e){this.payment.setPayload(e=function(t){var e={payment_system:t.payment_system,provider:{},allowed:[]},n=t.methods||[],i=t.details||{},r=t.options||{},s=new RegExp("//([a-z]+)\\.com/");return n.forEach((function(t){var n=s.exec(t.supportedMethods);null!==n&&(e.provider[n[1]]={methods:[t],details:i,options:r})})),e}(e)),e.payment_system&&Object.keys(e.provider).length>0?(this.element.classList.remove("pending"),this.element.classList.add("ready"),this.connector.send("show",{})):this.connector.send("hide",{})}))),this.connector.on("event",this.proxy((function(t,e){"mouseenter"===e.type&&this.element.classList.add("hover"),"mouseleave"===e.type&&this.element.classList.remove("hover"),"focusin"===e.type&&this.element.classList.add("active"),"focusout"===e.type&&this.element.classList.remove("active")})))}}),ft=st.extend({init:function(t){this.initParams(t),this.initWidget()},initWidget:function(){this.initOptions(this.params.options),this.utils.isString(this.params.element)&&this.initElement(this.params.element)},initOptions:function(){this.utils.isPlainObject(this.params.options)&&(this.params.options=this.params.options||{})},initElement:function(t){},addSelectorEvent:function(t,e,n){return this.each(this.utils.querySelectorAll(t),(function(t,i){this.addEvent(i,e,n)})),this},getRequestParams:function(){return{}},sendRequest:function(t,e){e.defaultPrevented||(e.preventDefault(),this.trigger("request",this.getRequestParams(t)),this.scope((function(){this.request("api.checkout.form","request",this.getRequestParams(t)).done(this.proxy("onSuccess")).fail(this.proxy("onError")).progress(this.proxy("onProgress"))})))},onProgress:function(t,e){this.trigger("progress",e)},onSuccess:function(t,e){e.sendResponse(),e.submitToMerchant(),this.trigger("success",e)},onError:function(t,e){this.trigger("error",e)}}),mt=K.extend({init:function(t){this.setFormElement(t)},setFormElement:function(t){this.utils.isElement(t)&&(this.form=t)},getData:function(t){var e=this.deparam(this.serializeArray());return!0===t?this.utils.cleanObject(e):e},serializeArray:function(){var t=this.utils.toArray(this.form.elements);return this.utils.map(t,(function(t){if(!t.disabled&&""!==t.name&&(!t.type.match("checkbox|radio")||t.checked))return{name:t.name,value:t.value}}))},serializeAndEncode:function(){return this.utils.map(this.serializeArray(),(function(t){return[t.name,encodeURIComponent(t.value)].join("=")})).join("&")},deparam:function(t){var e,n={},i=/[^\[\]]+|\[\]$/g,r=function(t,e){var i,r=n,s=t.pop(),o=t.length;for(i=0;i<o;i++)r[t[i]]||(r[t[i]]=o===i+1&&"[]"===s?[]:{}),r=r[t[i]];"[]"===s?r.push(e):r[s]=e};for(e in t)t.hasOwnProperty(e)&&r(t[e].name.match(i),t[e].value);return n}}),gt=ft.extend({initElement:function(t){this.addSelectorEvent(t,"submit","sendRequest")},getRequestParams:function(t){return this.utils.extend({},this.params.options,new mt(t).getData())}}),yt=ft.extend({attributes:{},initElement:function(t){this.utils.isPlainObject(this.params.attributes)&&this.utils.extend(this.attributes,this.params.attributes),this.addSelectorEvent(t,"click","sendRequest")},getRequestParams:function(t){return this.utils.extend({},this.params.options,this.getElementData(t))},getElementData:function(t){var e={};return this.utils.forEach(this.attributes,(function(n,i){t.hasAttribute(i)&&(e[n]=t.getAttribute(i))})),e}});return i.add("Api",st),i.add("Connector",Q),i.add("PaymentButton",dt),i.add("PaymentRequestApi",ct),i.add("PaymentElement",lt),i.add("FormWidget",gt),i.add("ButtonWidget",yt),i.Utils=A,i.Config=V,i.Api=st,i.Module=K,i.Connector=Q,i.Response=rt,i.PaymentRequestApi=ct,i.PaymentContainer=pt,i.PaymentElement=lt,i.PaymentButton=dt,i}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).$checkout=e()}(this,(function(){"use strict";var t={},e={},n=function(e,n){if(!t[e])throw Error(["module is undefined",e].join(" "));return new t[e](n||{})};function i(t,i){return e[t]?e[t]:e[t]=n(t,i)}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n<e;n++)i[n]=t[n];return i}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,r,o,s,a=[],u=!0,l=!1;try{if(o=(n=n.call(t)).next,0===e);else for(;!(u=(i=o.call(n)).done)&&(a.push(i.value),a.length!==e);u=!0);}catch(t){l=!0,r=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw r}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}i.get=function(t,e){return n(t,e)},i.add=function(e,n){return function(e,n){if(t[e])throw Error(["module already added",e].join(" "));t[e]=n}(e,n),this};var a,u,l=/^\d+$/,c=/([^\[\]]+)|(\[\])/g,h=/([^?#]*)(#.*)?$/,d=/%20/g,p=/\[\]$/,m=/\s([a-zA-Z]+)/,f=function(t){return decodeURIComponent(t.replace(/\+/g," "))},g=function(t){var e=[];return _(t,(function(t){e=e.concat(w(t)?g(t):t)})),e},y=function(t,e,n){w(e)?_(e,(function(i,r){p.test(t)?n(t,i):y(t+"["+(b(e)?r:"")+"]",i,n)})):b(e)?_(e,(function(e,i){y(t+"["+i+"]",e,n)})):n(t,e)},v=function(t){return{}.toString.call(t).match(m)[1].toLowerCase()},b=function(t){return!!t&&"object"===s(t)&&t.constructor===Object},x=function(t){return"function"===v(t)},w=function(t){return"array"===v(t)},P=function(t){return t&&1===t.nodeType},E=function(t){return[].slice.call(t)},C=function(t,e){return t&&t.hasOwnProperty(e)},_=function(t,e,n){for(var i in t)C(t,i)&&e.call(n||null,t[i],i)},S=function(t){for(var e in t)C(t,e)&&(0===t[e].length?(w(t)&&t.splice(e,1),b(t)&&delete t[e]):b(t[e])&&S(t[e]));return t},A=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i<e;i++)n[i-1]=arguments[i];return _(n,(function(e){null!==e&&_(e,(function(e,n){b(e)?t[n]=A(t[n]||{},e):t[n]=e}))})),t},k=function(){for(var t=0,e="";t++<36;)e+=51*t&52?(15^t?8^Math.random()*(20^t?16:4):4).toString(16):"-";return e},q=(a=window,C(a,"PaymentRequest")&&x(a.PaymentRequest)&&(u=a.PaymentRequest),function(t,e,n){var i=null;if((e=e||{}).id=k(),n=n||{},u)try{i=new u(t,e,n)}catch(t){i=null}return i}),j=function(){var t,e;return{promise:new Promise((function(n,i){t=n,e=i})),resolve:t,reject:e}},R=function(t){var e=t.methods,n=t.details,i=t.options,r=e.find((function(t){return"https://apple.com/apple-pay"===t.supportedMethods})),o=[],s=[];return i.requestShipping&&s.push("postalAddress"),i.requestPayerName&&o.push("name"),i.requestPayerEmail&&o.push("email"),i.requestPayerPhone&&o.push("phone"),{version:r.data.version,countryCode:r.data.countryCode,supportedNetworks:r.data.supportedNetworks,merchantCapabilities:r.data.merchantCapabilities,merchantIdentifier:r.data.merchantIdentifier,lineItems:r.data.lineItems||n.displayItems,additionalLineItems:r.data.additionalLineItems,recurringPaymentRequest:r.data.recurringPaymentRequest,deferredPaymentRequest:r.data.deferredPaymentRequest,currencyCode:r.data.currencyCode||n.total.amount.currency,total:{label:n.total.label,amount:n.total.amount.value},requiredBillingContactFields:s,requiredShippingContactFields:o}},O=function(t){var e=t.split(".").reduce((function(t,e){return t&&t.hasOwnProperty(e)?t=t[e]:null}),window);return x(e),e},M=function(t,e){var n=E(document.scripts).filter((function(e){return e.src===t}));if(o(n,1)[0])return Promise.resolve(O(e));var i=j(),r=i.promise,s=i.resolve,a=document.createElement("script");return a.async=!0,a.src=t,a.addEventListener("load",(function(){var n=O(e);console.log("api loading","success",t),s(n)})),a.addEventListener("error",(function(n){var i=O(e);console.log("api loading","error",t),s(i)})),document.head.appendChild(a),r},L=Object.freeze({__proto__:null,PromiseWithResolvers:j,addAttr:function(t,e){if(!1===P(t))return!1;b(e)&&_(e,(function(e,n){t.setAttribute(n,e)}))},addClass:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i=e.shift();if(!1!==P(i)){var r=i.className.trim().split(/\s+/);g(e.map((function(t){return t.trim().split(/\s+/)}))).forEach((function(t){t&&!~r.indexOf(t)&&r.push(t)})),i.className=r.join(" ").trim()}},cleanObject:S,createElement:function(t){return document.createElement(t)},cssUnit:function(t,e){return String(t||0).concat(e||"").concat(" !important")},deparam:function(t){var e={};return"?"===t.charAt(0)&&(t=t.slice(1)),t&&h.test(t)&&_(t.split("&"),(function(t){var n=t.split("="),i=f(n.shift()),r=f(n.join("=")),o=e;if(i){for(var s=0,a=(n=i.match(c)).length-1;s<a;s++)o[n[s]]||(o[n[s]]=l.test(n[s+1])||"[]"===n[s+1]?[]:{}),o=o[n[s]];var u=n.pop();"[]"===u?o.push(r):o[u]=r}})),e},extend:A,forEach:_,getAppleSessionConfig:R,getFunction:O,getPath:function(t){var e=t.split("."),n=e.shift(),i=null;return C(window,n)&&(i=window[n],_(e,(function(t){i=C(i,t)?i[t]:null}))),i},getPaymentRequest:q,getStyle:function(t,e,n){return((n=window.getComputedStyle)?n(t):t.currentStyle)[e.replace(/-(\w)/gi,(function(t,e){return e.toUpperCase()}))]},getType:v,hasProp:C,isArguments:function(t){return"arguments"===v(t)},isArray:w,isDate:function(t){return"date"===v(t)},isElement:P,isError:function(t){return"error"===v(t)},isFunction:x,isNumber:function(t){return"number"===v(t)},isObject:function(t){return"object"===v(t)},isPlainObject:b,isRegexp:function(t){return"regexp"===v(t)},isString:function(t){return"string"===v(t)},jsonParse:function(t,e){try{return JSON.parse(t)}catch(t){return e}},loadExternalApi:M,map:function(t,e,n){var i,r,o=[];for(i in t)C(t,i)&&void 0!==(r=e.call(n||null,t[i],i))&&(o[i]=r);return o},param:function(t){var e=[];return _(t,(function(t,n){y(n,t,(function(t,n){n=null==n?"":n,e.push([encodeURIComponent(t),encodeURIComponent(n)].join("="))}))})),e.join("&").replace(d,"+")},querySelector:function(t,e){return(e||document).querySelector(t)},querySelectorAll:function(t,e){return E((e||document).querySelectorAll(t))},removeAttr:function(t,e){if(!1===P(t))return!1;b(e)&&_(e,(function(e){t.removeAttribute(e)}))},removeClass:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var i=e.shift();if(!1!==P(i)){var r=i.className.trim().split(/\s+/);g(e.map((function(t){return t.trim().split(/\s+/)}))).forEach((function(t){if(t){var e=r.indexOf(t);~e&&r.splice(e,1)}})),i.className=r.join(" ").trim()}},removeElement:function(t){t.parentNode.removeChild(t)},stringFormat:function(t,e,n){return(t||"").replace(n||/{(.+?)}/g,(function(t,n){return e[n]||t}))},toArray:E,uuid:k}),D="https://pay.flitt.com",T={gateway:"/latest/checkout-v2/index.html",element:"/latest/checkout-v2/button/element.html"},z="http://secure-redirect.cloudipsp.com/submit/",U={apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[{type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"]}}]},F=[{url:"https://pay.google.com/gp/p/js/pay.js",name:"google",path:"google.payments.api.PaymentsClient",callback:function(t){return!!t&&new t({environment:"TEST"}).isReadyToPay(U).catch((function(t){return console.log(t),!1}))}},{url:"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",name:"apple",path:"ApplePaySession",callback:function(t){return!!t&&t.supportsVersion(3)}}],I=["ar","bg","ca","zh","hr","cs","da","nl","en","et","fi","fr","de","el","id","it","ja","ko","ms","no","pl","pt","ru","sr","sk","sl","es","sv","th","tr","uk"],N={width:"1px !important",height:"1px !important",left:"1px !important",bottom:"1px !important",position:"fixed !important",border:"0px !important"},B={border:"none !important",margin:"0 !important",padding:"0 !important",display:"block !important",width:"1px !important","min-width":"100% !important",background:"transparent !important",position:"relative !important",opacity:"0 !important",overflow:"hidden !important",height:"100% !important",outline:"none !important","z-index":"1 !important"},W={tabindex:"-1",scrolling:"no",frameborder:0,allowtransparency:!0,allowpaymentrequest:!0},G={"z-index":"2 !important",position:"absolute !important",border:"none !important",background:"transparent !important",left:"0 !important",top:"0 !important",cursor:"pointer !important",outline:"none !important",width:"100% !important",height:"100% !important"},V={role:"button","aria-pressed":"false"},$={border:"0 !important",margin:"0 !important",padding:"0 !important",display:"block !important",background:"transparent !important","user-select":"none !important",overflow:"hidden !important",position:"relative !important",opacity:"1 !important",height:"0 !important",width:"100% !important",outline:"none !important"},J="dark",Z={dark:"dark",light:"light",black:"dark",white:"light"},H={ar:"",bg:"",ca:"",zh:"",hr:"",cs:"",da:"",nl:"",en:"Pay with",et:"",es:"Comprar con",el:"",fi:"",fr:"Acheter avec",de:"Zahlen über",id:"",it:"Acquista con",ja:"",ko:"",ms:"",no:"",pl:"Zapłać przez",pt:"",ru:"Оплатить через",sr:"",sk:"Zaplatiť cez",sl:"",sv:"",th:"",tr:"",uk:"Оплатити через"},Y=Object.freeze({__proto__:null,ApiEndpoint:T,ApiFrameCss:N,ApiOrigin:D,ButtonColorMap:Z,ButtonContainerCss:$,ButtonCoverAttrs:V,ButtonCoverCss:G,ButtonDefaultColor:J,ButtonFrameAttrs:W,ButtonFrameCss:B,ButtonLabelMap:H,GoogleBaseRequest:U,GooglePayApi:"https://pay.google.com/gp/p/js/pay.js",GooglePayLanguages:I,PaymentMethodsConfig:F,PaymentRequestDetails:{total:{label:"Total",amount:{currency:"USD",value:"0.00"}}},ProxyUrl:z});function X(){var t=[],e=[],n=[],i=0,r=void 0,o=null,s=null,a=function(t,e,n){var i=[].concat(n),a=function(t,e){o=e?Array.from(t):[t]},u=function(){var t=i.shift();t&&(void 0!==(s=t.apply(r,o))?s&&s.then?s.then((function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];a(e,!0),u()})):(a(s),u()):u())};r=t,o=e,u()},u={done:function(e){return x(e)&&(this.isResolved()?e.apply(r,o):t.push(e)),this},fail:function(t){return x(t)&&(this.isRejected()?t.apply(r,o):e.push(t)),this},progress:function(t){return x(t)&&(this.isProgress()?t.apply(r,o):n.push(t)),this},always:function(t){return this.done(t).fail(t)},then:function(t,e,n){return x(t)&&this.done(t),x(e)&&this.fail(e),x(n)&&this.progress(e),this},promise:function(t){return null===t?u:(_(u,(function(e,n){t[n]=e})),t)},state:function(){return i},isPending:function(){return 0===i},isRejected:function(){return 2===i},isResolved:function(){return 1===i},isProgress:function(){return 3===i},resolveWith:function(e,n){return this.isPending()&&(i=1,a(e,n,t)),this},rejectWith:function(t,n){return this.isPending()&&(i=2,a(t,n,e)),this},notifyWith:function(t,e){return this.isPending()&&(i=3,a(t,e,n),i=0),this},resolve:function(){return this.resolveWith(this,Array.from(arguments))},reject:function(){return this.rejectWith(this,Array.from(arguments))},notify:function(){return this.notifyWith(this,Array.from(arguments))}};return u}var K=!1,Q=/xyz/.test(function(){return"xyz"}.toString())?/\b_super\b/:/.*/;function tt(){}function et(t,e,n){return function(){var i,r=this._super;return this._super=t[e],i=n.apply(this,arguments),this._super=r,i}}tt.prototype._super=function(){},tt.prototype.instance=function(t){return new this.constructor(t)},tt.prototype.proxy=function(t){return function(t,e){return function(){return e.apply(t,[this].concat(Array.prototype.slice.call(arguments)))}}(this,t="string"==typeof t?this[t]:t)},tt.extend=function t(e){function n(){!K&&this&&this.init.apply(this,arguments)}return n.prototype=function(t,e){var n,i,r=t.prototype;for(n in K=!0,i=new t,K=!1,e)e.hasOwnProperty(n)&&("function"==typeof r[n]&&"function"==typeof e[n]&&Q.test(e[n])?i[n]=et(r,n,e[n]):i[n]=e[n]);return i}(this,e),n.prototype.constructor=n,n.extend=t,n};var nt=tt.extend({init:function(){this.events={},this.empty=[]},on:function(t,e){return(this.events[t]=this.events[t]||[]).push(e),this},off:function(t,e){t||(this.events={});for(var n=this.events[t]||this.empty,i=n.length=e?n.length:0;i--;)e===n[i]&&n.splice(i,1);return this},trigger:function(t){for(var e,n=this.events[t]||this.empty,i=n.length>0?n.slice(0,n.length):n,r=0;e=i[r++];)e.apply(e,this.empty.slice.call(arguments,1));return this}}),it=tt.extend({utils:L,getListener:function(){return this._listener_||(this._listener_=new nt),this._listener_},destroy:function(){this.off()},on:function(t,e){return this.getListener().on(t,e),this},off:function(t,e){return this.getListener().off(t,e),this},proxy:function(t){return this._proxy_cache_||(this._proxy_cache_={}),this.utils.isString(t)?(this._proxy_cache_[t]||(this._proxy_cache_[t]=this._super(t)),this._proxy_cache_[t]):this._super(t)},trigger:function(){return this.getListener().trigger.apply(this.getListener(),arguments),this},each:function(t,e){this.utils.forEach(t,this.proxy(e))},addAttr:function(t,e){if(!this.utils.isElement(t))return!1;this.utils.forEach(e,(function(e,n){t.setAttribute(n,e)}))},addCss:function(t,e){if(!this.utils.isElement(t))return!1;this.utils.forEach(e,(function(e,n){this.addCssProperty(t,n,e)}),this)},addCssProperty:function(t,e,n){var i,r=t.style.cssText.match(new RegExp("(?:[;\\s]|^)("+e.replace("-","\\-")+"\\s*:(.*?)(;|$))"));r?(i=r.index+r[0].indexOf(r[1]),t.style.cssText=t.style.cssText.substring(0,i)+e+": "+n+";"+t.style.cssText.substring(i+r[1].length)):t.style.cssText+=" "+e+": "+n+";"},addEvent:function(t,e,n){if(!t||!e||!n)return!1;n=this.proxy(n),t.addEventListener?t.addEventListener(e,n):t.attachEvent&&t.attachEvent("on"+e,n)},removeEvent:function(t,e,n){if(!t||!e||!n)return!1;n=this.proxy(n),t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent("on"+e,n)},prepareForm:function(t,e,n,i){var r=this.utils.createElement("form");return this.addAttr(r,{action:t,target:n||"_self",method:i||"POST"}),this.addCss(r,{display:"none"}),this.utils.forEach(e,(function(t,e,n){(n=this.utils.createElement("input")).type="hidden",n.name=e,n.value=t,r.appendChild(n)}),this),r}}),rt=it.extend({ns:"crossDomain",origin:"*",uniqueId:1,signature:null,init:function(t){this.setTarget(t.target),this.setOrigin(t.origin),this.create()},create:function(){this.addEvent(window,"message","router")},setOrigin:function(t){this.origin=t||"*"},setTarget:function(t){return this.target=t,this},getUID:function(){return++this.uniqueId},destroy:function(){this.removeEvent(window,"message","router"),this._super()},router:function(t,e,n){if(this.target!==e.source)return!1;try{n=JSON.parse(e.data)}catch(t){}n&&n.action&&n.data&&this.trigger(n.action,n.data)},send:function(t,e,n,i){if(this.target){n=JSON.stringify({action:t,data:e}),i={targetOrigin:this.origin,delegate:"payment"};try{this.target.postMessage(n,i)}catch(t){this.target.postMessage(n,this.origin,[])}}}}),ot=Object.freeze({__proto__:null,acs:function(t){return"\n".concat('\n<style>\n .flitt-modal {\n box-sizing: border-box;\n margin: 100px auto;\n max-width: 680px;\n background-color: #fff;\n border-radius: 5px;\n box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n }\n\n @media (max-width: 850px) {\n .flitt-modal {\n margin: 50px auto;\n }\n }\n\n @media (max-width: 695px) {\n .flitt-modal {\n max-width: 100%;\n margin: 5px;\n }\n }\n\n .flitt-modal-wrapper {\n box-sizing: border-box;\n overflow: auto;\n position: fixed;\n z-index: 99999;\n left: 0;\n bottom: 0;\n top: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.2);\n }\n\n .flitt-modal-header {\n box-sizing: border-box;\n background-color: #fafafa;\n height: 50px;\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n }\n\n .flitt-modal-close {\n box-sizing: border-box;\n float: right;\n overflow: hidden;\n height: 50px;\n text-decoration: none;\n border-top-right-radius: 5px;\n color: #949494;\n }\n\n .flitt-modal-close:hover, .flitt-modal-close:focus, .flitt-modal-close:active {\n text-decoration: none;\n color: #646464;\n }\n\n .flitt-modal-close:before {\n content: "×";\n font-size: 50px;\n line-height: 50px;\n padding: 0 10px;\n }\n\n .flitt-modal-title {\n box-sizing: border-box;\n border-top-left-radius: 5px;\n line-height: 20px;\n height: 50px;\n padding: 5px 15px;\n font-size: 12px;\n display: table-cell;\n vertical-align: middle;\n }\n .flitt-modal-content {\n box-sizing: border-box;\n border-bottom-left-radius: 5px;\n min-height: 650px;\n }\n .flitt-modal-iframe {\n overflow-x: hidden;\n border: 0;\n display: block;\n width: 100%;\n height: 750px;\n }\n</style>\n','\n<div class="flitt-modal-wrapper">\n <div class="flitt-modal">\n <div class="flitt-modal-header">\n <a href="javascript:void(0)" class="flitt-modal-close"></a>\n <div class="flitt-modal-title">\n ').concat(t.messages.modalHeader,"\n <a href='javascript:void(0)'>").concat(t.messages.modalLinkLabel,'</a>\n </div>\n </div>\n <div class="flitt-modal-content">\n <iframe src="about:blank" class="flitt-modal-iframe" frameborder="0" allowtransparency="true"></iframe>\n </div>\n </div>\n</div>\n')}});var st=tt.extend({init:function(t){this.view=ot[t]||function(t){return function(e){return["template",t,"not found"].join(" ")}}(t)},render:function(t){return this.view(t)}}),at=it.extend({init:function(t){this.checkout=t.checkout,this.model=t.model||{},this.messages=t.checkout.params.messages||{},this.template=new st("acs"),this.body=this.utils.querySelector("body"),this.initModal(),this.initConnector()},initModal:function(){this.name=["modal-iframe",this.getRandomNumber()].join("-"),this.modal=this.utils.createElement("div"),this.modal.innerHTML=this.template.render({model:this.model,messages:this.messages}),this.iframe=this.find(".flitt-modal-iframe"),this.addAttr(this.iframe,{name:this.name,id:this.name}),this.model.send_data?(this.form=this.prepareForm(this.model.url,this.model.send_data,this.name),this.modal.appendChild(this.form)):this.iframe.src=this.model.url,this.addEvent(this.find(".flitt-modal-close"),"click","closeModal"),this.addEvent(this.find(".flitt-modal-title a"),"click","submitForm"),this.initScrollbar(),this.body.appendChild(this.modal),this.form&&this.form.submit()},measureScrollbar:function(){var t=document.createElement("div");return t.className="modal-scrollbar-measure",this.body.appendChild(t),this.utils.removeElement(t),t.offsetWidth-t.clientWidth},checkScrollbar:function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},initScrollbar:function(){this.checkScrollbar(),this.bodyPad=parseInt(this.utils.getStyle(this.body,"padding-right")||0,10),this.originalBodyPad=document.body.style.paddingRight||"",this.originalOverflow=document.body.style.overflow||"",this.bodyIsOverflowing&&this.addCss(this.body,{paddingRight:[this.bodyPad+this.scrollbarWidth,"px"].join(""),overflow:"hidden"})},resetScrollbar:function(){this.addCss(this.body,{paddingRight:this.originalBodyPad?[this.originalBodyPad,"px"].join(""):"",overflow:this.originalOverflow})},getRandomNumber:function(){return Math.round(1e9*Math.random())},find:function(t){return this.utils.querySelector(t,this.modal)},closeModal:function(t,e){e.preventDefault(),this.trigger("close",this.data),this.removeModal()},submitForm:function(t,e){e.preventDefault(),this.trigger("submit",this.data),this.addAttr(this.form,{target:"_blank"}),this.form.submit()},removeModal:function(){this.destroy()},destroy:function(){this.utils.removeElement(this.modal),this.resetScrollbar(),this.connector.destroy(),this._super()},initConnector:function(){this.connector=new rt({target:this.iframe.contentWindow}),this.connector.on("response",this.proxy("onResponse"))},onResponse:function(t,e){this.sendResponse(e),this.removeModal()},sendResponse:function(t){this.checkout.connector.send("request",{uid:t.uid,action:"api.checkout.proxy",method:"send",params:t})}}),ut=it.extend({init:function(t){this.data=t||{},this.create()},create:function(){},eachProps:function(t){var e=t[1]?t[0]:null,n=t[1]?t[1]:t[0];return{list:e?this.alt(e,[]):this.data,callback:n}},each:function(){var t=this.eachProps(arguments);for(var e in t.list)t.list.hasOwnProperty(e)&&t.callback(this.instance(t.list[e]),t.list[e],e)},filter:function(){var t=this.eachProps(arguments);for(var e in t.list)if(t.list.hasOwnProperty(e)){var n=this.instance(t.list[e]);if(t.callback(n,t.list[e],e))return t.list[e]}},find:function(){var t=this.eachProps(arguments);for(var e in t.list)if(t.list.hasOwnProperty(e)){var n=this.instance(t.list[e]);if(t.callback(n,t.list[e],e))return n}return!1},alt:function(t,e){return void 0===(t=this.attr(t))?e:t},attr:function(t,e){for(var n=0,i=this.data,r=(t||"").split("."),o=r.pop(),s=arguments.length;n<r.length;n++)if(i&&i.hasOwnProperty(r[n]))i=i[r[n]];else{if(2!==s)break;i=i[r[n]]={}}return 1===s?i?i[o]:void 0:(2===s&&(i[o]=e),this)},stringify:function(){return JSON.stringify(this.serialize())},serialize:function(){return this.data}}),lt=ut.extend({stringFormat:function(t){var e=this;return(t||"").replace(/{(.+?)}/g,(function(t,n){return e.attr(["order.order_data",n].join("."))||t}))},setConnector:function(t){return this.connector=t,this},setUID:function(t){return this.uid=t,this},getUID:function(){return this.uid},formDataProxy:function(t,e,n,i){location.assign([z,JSON.stringify({url:t,params:e,target:n,method:i})].join("#"))},formDataSubmit:function(t,e,n,i){if(t.match(/^http:/))return this.formDataProxy(t,e,n,i);var r=this.stringFormat(t),o=this.prepareForm(r,e,n,i);this.utils.querySelector("body").appendChild(o),o.submit(),o.parentNode.removeChild(o)},inProgress:function(){return this.attr("order.in_progress")},readyToSubmit:function(){return this.attr("order.ready_to_submit")},waitForResponse:function(){return this.attr("order.pending")},needVerifyCode:function(){return this.attr("order.need_verify_code")},redirectUrl:function(){return!!this.attr("url")&&(this.redirectToUrl(this.attr("url")),!0)},redirectToUrl:function(t){location.assign(t)},submitToMerchant:function(){var t=this.attr("order.ready_to_submit"),e=this.attr("model.url")||this.attr("order.response_url"),n=this.attr("order.method"),i=this.attr("order.action"),r=this.attr("model.send_data")||this.attr("order.order_data");if(t&&e&&r)return"redirect"===i||!0===r.get_without_parameters?this.redirectToUrl(e):this.formDataSubmit(e,r,"_self",n),!0},submitForm:function(){var t=this.attr("method"),e=this.attr("url"),n=this.attr("send_data");return!(!e||!n)&&(this.formDataSubmit(e,n,"_self",t),!0)},sendResponse:function(){var t=this.attr("action");return"submit"===t?this.submitForm():"redirect"===t&&this.redirectUrl()},prepare3dsData:function(){var t={},e=this.attr("submit3ds");return e["3ds"]&&(t.token=this.attr("token"),t.uid=this.getUID(),t.frame=!0,e.send_data.TermUrl&&(e.send_data.TermUrl=[e.send_data.TermUrl,this.utils.param(t)].join("#!!"))),e},waitOn3dsDecline:function(){var t=this.alt("submit3ds.checkout_data",{js_wait_on_3ds_decline:!1,js_wait_on_3ds_decline_duration:0});return t.js_wait_on_3ds_decline?t.js_wait_on_3ds_decline_duration:0},submit3dsForm:function(){this.attr("submit3ds.checkout_data")&&this.connector.trigger("modal",this.prepare3dsData())},supportedMethod:function(t){var e=this.find("methods",(function(e){return e.alt("supportedMethods","").match(t)}));e?this.attr("methods",[e.serialize()]):this.attr("methods",[])}}),ct=it.extend({defaults:{origin:D,endpoint:T,container:"body",messages:{modalHeader:"Now you will be redirected to your bank 3DSecure. If you are not redirected please refer",modalLinkLabel:"link"}},init:function(t){this.iframeDeferred=X(),this.initParams(t)},url:function(t,e){return[this.params.origin,this.params.endpoint[t]||"/",e||""].join("")},extendParams:function(t){return this.utils.extend(this.params,t),this},initParams:function(t){this.params=this.utils.extend({},this.defaults),this.extendParams(t),this.setOrigin(this.params.origin)},setOrigin:function(t){return this.utils.isString(t)&&(this.params.origin=t),this},scope:function(t){t=this.proxy(t),this.domReady((function(){this.createFrame(),this.iframeDeferred.isPending()?this.iframeDeferred.done(t):t()}))},domReady:function(t){t=this.proxy(t),"loading"===document.readyState?window.addEventListener("DOMContentLoaded",t):t()},request:function(t,e,n){var i=X(),r={uid:this.connector.getUID(),action:t,method:e,params:n||{}};return this.connector.send("request",r),this.connector.on(r.uid,this.proxy((function(t,e,n,o){var s=new lt(e);s.setUID(r.uid),s.setConnector(this.connector),o="resolveWith",s.attr("submit3ds")&&(o="notifyWith"),s.attr("error")&&(o="rejectWith"),i[o](this,[s])}))),i},createFrame:function(){if(this.iframe)return this;if(this.iframe=this.utils.createElement("iframe"),this.addAttr(this.iframe,{allowtransparency:!0,frameborder:0,scrolling:"no"}),this.addAttr(this.iframe,{src:this.url("gateway")}),this.addCss(this.iframe,N),this.utils.isElement(this.params.container)&&(this.container=this.params.container),this.utils.isString(this.params.container)&&(this.container=this.utils.querySelector(this.params.container)),!this.container)throw Error('container element not found: document.querySelector("'.concat(this.params.container,'")'));return this.container.firstChild?this.container.insertBefore(this.iframe,this.container.firstChild):this.container.appendChild(this.iframe),this.connector=new rt({target:this.iframe.contentWindow,origin:this.params.origin}),this.connector.on("load",this.proxy("onLoadConnector")),this.connector.on("modal",this.proxy("onOpenModal")),this},onOpenModal:function(t,e){this.modal=new at({checkout:this,model:e}),this.modal.on("close",this.proxy("onCloseModal"))},onCloseModal:function(t,e){this.trigger("modal.close",t,e)},onLoadConnector:function(){this.iframeDeferred.resolve(!0),this.connector.off("load")}}),ht=null,dt=it.extend({config:{payment_system:"",fallback:!1,methods:[],details:{},options:{}},supported:{fallback:!1,provider:[]},payload:{payment_system:null,provider:[]},params:{},getSupportedMethods:function(){var t=this;return function(){if(ht)return ht;ht=X();var t=[],e={provider:[]};return _(F,(function(n){t.push(M(n.url,n.path).then(n.callback).then((function(t){t?e.provider.push(n.name):console.log("error loading api",google)})))})),Promise.all(t).then((function(){ht.resolve(e)}),(function(){ht.resolve(e)})),ht}().then((function(e){return t.setSupported(e),e}))},init:function(t){this.params=t||{}},setSupported:function(t){return this.supported=t,this.trigger("supported",t),this},setPayload:function(t){return this.payload=t,this.trigger("payload",t),this},setMerchant:function(t){this.merchant=t},setBeforeCallback:function(t){x(t)&&(this.params.before=t)},setAfterCallback:function(t){x(t)&&(this.params.after=t)},setApi:function(t){return t instanceof ct&&(this.api=t),this},getProviderPayload:function(t){return this.payload.provider[t]||{}},isMethodSupported:function(t){return-1!==this.supported.provider.indexOf(t)},isFallbackMethod:function(t){return"google"===t&&this.supported.fallback},request:function(t,e,n,i,r){var o=this;o.api&&o.api.scope((function(){o.api.request(t,e,n).done(i).fail(r)}))},session:function(t){var e=X();return this.request("api.checkout.pay","session",t,(function(t){e.resolve(t.serialize())}),(function(t){e.reject(t)})),e},update:function(t){if(!this.isPending()){this.setPending(!0);var e=this,n=X();return this.params.data=t,this.request("api.checkout.pay","methods",this.params.data,(function(t){e.setPending(!1),e.setPayload(t.serialize()),n.resolve(t)}),(function(t){e.setPending(!1),e.trigger("error",t),n.reject(t)})),n}},isPending:function(){return!0===this.pendingState},setPending:function(t){this.pendingState=t,clearTimeout(this.pendingTimeoutEvent),this.pendingTimeoutEvent=setTimeout((function(e){e.trigger("pending",t)}),50,this)},before:function(){if(!this.isPending()){this.setPending(!0);var t=X(),e=this;return t.always((function(){e.setPending(!1)})),this.params.before(t),t}},after:function(t){var e=X();return this.params.after(e,t),e},withApplePay:function(t,e){var n=R(e),i=new ApplePaySession(n.version,n),r=this.merchant,o=this;i.onvalidatemerchant=function(e){o.session({url:e.validationURL,domain:location.host,merchant_id:r}).done((function(e){try{i.completeMerchantValidation(e.data)}catch(e){t.reject({code:e.code,message:e.message})}}))},i.oncancel=function(){t.reject({code:20,message:"cancel"})},i.onpaymentauthorized=function(e){i.completePayment(ApplePaySession.STATUS_SUCCESS),t.resolve(e.payment)},i.begin()},withGooglePay:function(t,e){var n=e.methods.find((function(t){return"https://google.com/pay"===t.supportedMethods}));new google.payments.api.PaymentsClient({environment:n.data.environment}).loadPaymentData(n.data).then((function(e){t.resolve(e)})).catch((function(e){t.reject({code:e.code,message:e.message})}))},pay:function(t){if(!this.isPending()){this.setPending(!0);var e=this,n=X(),i=this.getProviderPayload(t);switch(n.always((function(){e.setPending(!1)})),t){case"google":this.withGooglePay(n,i);break;case"apple":this.withApplePay(n,i)}return n.done((function(t){e.trigger("details",{payment_system:e.payload.payment_system,data:t})})).fail((function(t){e.trigger("error",t)}))}}}),pt=it.extend({defaults:{method:null,appendTo:null,className:"payment-element",origin:D,endpoint:T.element,mode:"plain",color:"black",lang:"en",height:38},init:function(t){this.state={isSupported:!1,isAllowed:!1,isMounted:!1},this.params={},this.utils.extend(this.params,this.defaults),this.utils.extend(this.params,t),this.initElement()},timeout:function(t,e){return this.timeoutMap=this.timeoutMap||{},clearTimeout(this.timeoutMap[e]),this.timeoutMap[t]=setTimeout(t,e),this},getElementUrl:function(){return[this.params.origin,this.params.endpoint].join("")},getElementOptions:function(){return this.utils.param({method:this.params.method,mode:this.params.mode,style:this.params.style,color:this.params.color,lang:this.params.lang})},initElement:function(){this.element=this.utils.createElement("div"),this.iframe=this.utils.createElement("iframe"),this.button=this.utils.createElement("a"),this.addCss(this.element,$),this.addCss(this.button,G),this.addAttr(this.button,V),this.addCss(this.iframe,B),this.addAttr(this.iframe,W),this.addAttr(this.iframe,{src:[this.getElementUrl(),this.getElementOptions()].join("?")}),this.addEvent(this.iframe,"load","onloadConnector"),this.addEvent(this.iframe,"error","errorConnector"),this.addAttr(this.element,{class:this.params.className}),this.element.appendChild(this.iframe),this.element.appendChild(this.button)},errorConnector:function(){},onloadConnector:function(){this.connector=new rt({target:this.iframe.contentWindow,origin:this.params.origin})},send:function(t,e){this.connector&&this.connector.send(t,e)},onEvent:function(t,e){if(e.preventDefault(),this.pending)return!1;this.send("event",{type:e.type})},onClick:function(){if(this.pending)return!1;this.request.before().done(this.proxy("onClickDone")).fail(this.proxy("onClickFail"))},onClickDone:function(){this.request.pay(this.params.method)},onClickFail:function(){},onSupported:function(t,e){this.state.isSupported=e.provider.includes(this.params.method)},onPayload:function(t,e){this.state.isAllowed=e.allowed.includes(this.params.method),this.render()},onPending:function(t,e){this.pending=e,this.addCss(this.element,{transition:"height 0.2s ease-out, opacity 0.4s ease-out",pointerEvents:this.pending?"none":"",opacity:this.pending?"0.5":"1"})},initEvents:function(){this.addEvent(this.button,"mouseenter","onEvent"),this.addEvent(this.button,"mouseleave","onEvent"),this.addEvent(this.button,"blur","onEvent"),this.addEvent(this.button,"focus","onEvent"),this.addEvent(this.button,"click","onClick")},setPaymentRequest:function(t){if(!(t instanceof dt))throw Error("request is not instance of PaymentRequestApi");this.request=t;var e=this.proxy("onSupported"),n=this.proxy("onPayload"),i=this.proxy("onPending");return this.request.off("supported",e).on("supported",e),this.request.off("payload",n).on("payload",n),this.request.off("pending",i).on("pending",i),this},appendTo:function(t){var e=this.utils.querySelector(t);return e&&e.appendChild(this.element),this.initEvents(),this},render:function(){return!1===this.state.isSupported||!1===this.state.isAllowed?this:(this.mount(),void this.show())},unmount:function(){return this.element.parentNode&&this.element.parentNode.removeChild(this.element),this},mount:function(){return!1===document.body.contains(this.element)&&this.appendTo(this.params.appendTo),this},show:function(){var t=this;return this.timeout((function(){t.addCss(t.iframe,{transition:"opacity 0.6s 0.4s ease-out",opacity:t.utils.cssUnit(1)}),t.addCss(t.element,{transition:"height 0.2s ease-out",height:t.utils.cssUnit(t.params.height,"px")}),t.trigger("show",{})}),25),this},hide:function(){var t=this;return this.timeout((function(){t.addCss(t.iframe,{transition:"opacity 0.4s ease-out",opacity:t.utils.cssUnit(0)}),t.addCss(t.element,{transition:"height 0.2s 0.4s ease-out",height:t.utils.cssUnit(0,"px")}),t.trigger("hide",{})}),25),this}}),mt=it.extend({defaults:{origin:D,endpoint:T,methods:["apple","google"],element:null,style:{height:38,mode:"default",type:"long",color:"black"},data:{lang:"en"},before:function(t){t.resolve()},after:function(t,e){t.resolve(e)}},init:function(t){this.elements={},this.supported=!1,this.params={element:t.element,methods:t.methods||this.defaults.methods,origin:t.origin||this.defaults.origin,endpoint:this.utils.extend({},this.defaults.endpoint,t.endpoint),style:this.utils.extend({},this.defaults.style,t.style),before:x(t.before)?t.before:this.defaults.before,after:x(t.after)?t.after:this.defaults.after,data:this.utils.extend({},this.defaults.data,t.data)},this.initApi(t.api),this.initPaymentRequestApi(),this.initElements(),this.initData()},initData:function(){var t=this.params.data;t.merchant_id&&(t.currency&&t.amount||t.token)&&this.update()},initApi:function(t){this.api=t instanceof ct?t:new ct({origin:this.params.origin,endpoint:this.params.endpoint})},initPaymentRequestApi:function(){this.request=new dt({before:this.params.before,after:this.params.after}),this.request.setApi(this.api),this.request.setMerchant(this.params.data.merchant_id),this.request.on("details",this.proxy("onDetails")),this.request.on("error",this.proxy("onError"))},initElements:function(){var t=this.params.style,e=this.params.data,n=this.params.origin,i=this.params.element,r=this.params.endpoint.element,o=this.request;this.container=this.utils.querySelector(this.params.element),this.addCss(this.container,{display:"flex",gap:"1rem","flex-direction":"column"}),_(this.params.methods,(function(s){new pt({origin:n,endpoint:r,method:s,appendTo:i,color:t.color,mode:t.mode,lang:e.lang,height:t.height}).setPaymentRequest(o)})),o.getSupportedMethods()},update:function(t){return this.request.update(this.utils.extend(this.params.data,t||{}))},onDetails:function(t,e){var n=this;this.api.scope((function(){n.request.after(n.params.data).done((function(t){n.api.request("api.checkout.form","request",n.utils.extend({},n.params.data,t||{},e)).done(n.proxy("onSuccess")).fail(n.proxy("onError"))}))}))},onSuccess:function(t,e){this.trigger("success",e)},onError:function(t,e){this.trigger("error",e)}}),ft=it.extend({defaults:{element:null,method:"card",data:{lang:"en"},style:{}},init:function(t){this.initParams(t),this.initEvents()},initParams:function(t){this.params=this.utils.extend({},this.defaults,t),this.element=this.utils.querySelector(this.params.element),this.connector=new rt({target:window.parent}),this.payment=new dt({embedded:!0})},extendParams:function(t){this.utils.extend(this.params,{method:t.method,style:t.style,data:t.data,css:t.css})},getGoogleLangSupport:function(t,e){return-1!==I.indexOf(t)?t:e},getButtonColor:function(t){return Z[t]||J},getGoogleSvg:function(t,e,n){var i={endpoint:"https://www.gstatic.com/instantbuy/svg",color:this.getButtonColor(t),mode:n||"plain",lang:e||"en"},r='url("{endpoint}/{color}/{mode}/{lang}.svg")';return"plain"===n&&(r='url("{endpoint}/{color}_gpay.svg")'),"buy"===n&&(r='url("{endpoint}/{color}/{lang}.svg")'),this.utils.stringFormat(r,i)},getAppleSvg:function(t){var e={color:this.getButtonColor(t)};return this.utils.stringFormat('url("svg/apple-pay-{color}.svg")',e)},getAppleLabel:function(t){return H[t||"en"]},addFrameImage:function(){var t=this.utils.querySelector("iframe",this.element)||this.utils.createElement("iframe"),e=this.params.style||{},n=this.getGoogleLangSupport(this.params.data.lang,"en"),i={buttonColor:e.color||"black",browserLocale:n,buttonSizeMode:"fill"},r=["https://pay.google.com/gp/p/generate_gpay_btn_img",this.utils.param(i)].join("?");this.addAttr(t,{scrolling:"no",frameborder:0,src:r}),this.element.appendChild(t),this.element.classList.remove("short","long")},styleButton:function(){var t=this.element,e=this.params,n=e.method,i=e.style||{},r=e.data.lang||"en",o=e.css||{};t.setAttribute("class",""),t.classList.add("button","pending"),"card"===n&&(n="google"),n&&t.classList.add(n),t.classList.add(r),i.type&&t.classList.add(i.type),i.mode&&t.classList.add(i.mode),i.color&&t.classList.add(i.color),"google"===n&&("short"===i.type&&(i.mode="plain"),"default"===i.mode?this.addFrameImage():o.image=this.getGoogleSvg(i.color,r,i.mode)),"apple"===n&&(o.image=this.getAppleSvg(i.color),o.label=this.getAppleLabel(r,i.mode)),this.utils.forEach(o,(function(e,n){t.style.setProperty(["--",n].join(""),e)}))},initEvents:function(){this.payment.on("details",this.proxy((function(t,e){this.connector.send("details",e),this.connector.send("complete",e)}))),this.payment.on("reload",this.proxy((function(t,e){this.connector.send("reload",e)}))),this.payment.on("error",this.proxy((function(t,e){this.connector.send("error",e)}))),this.connector.on("options",this.proxy((function(t,e){this.extendParams(e),this.styleButton()}))),this.connector.on("pay",this.proxy((function(){if(!this.element.classList.contains("pending"))if("apple"===this.params.method){var t=this.payment.payload||{},e=t.provider.apple||{};this.connector.send("pay",{payment_system:t.payment_system,methods:e.methods,details:e.details,options:e.options})}else this.payment.setSupported({fallback:!1,provider:["google"]}).pay("google")}))),this.connector.on("config",this.proxy((function(t,e){this.payment.setPayload(e=function(t){var e={payment_system:t.payment_system,provider:{},allowed:[]},n=t.methods||[],i=t.details||{},r=t.options||{},o=new RegExp("//([a-z]+)\\.com/");return n.forEach((function(t){var n=o.exec(t.supportedMethods);null!==n&&(e.provider[n[1]]={methods:[t],details:i,options:r})})),e}(e)),e.payment_system&&Object.keys(e.provider).length>0?(this.element.classList.remove("pending"),this.element.classList.add("ready"),this.connector.send("show",{})):this.connector.send("hide",{})}))),this.connector.on("event",this.proxy((function(t,e){"mouseenter"===e.type&&this.element.classList.add("hover"),"mouseleave"===e.type&&this.element.classList.remove("hover"),"focusin"===e.type&&this.element.classList.add("active"),"focusout"===e.type&&this.element.classList.remove("active")})))}}),gt=ct.extend({init:function(t){this.initParams(t),this.initWidget()},initWidget:function(){this.initOptions(this.params.options),this.utils.isString(this.params.element)&&this.initElement(this.params.element)},initOptions:function(){this.utils.isPlainObject(this.params.options)&&(this.params.options=this.params.options||{})},initElement:function(t){},addSelectorEvent:function(t,e,n){return this.each(this.utils.querySelectorAll(t),(function(t,i){this.addEvent(i,e,n)})),this},getRequestParams:function(){return{}},sendRequest:function(t,e){e.defaultPrevented||(e.preventDefault(),this.trigger("request",this.getRequestParams(t)),this.scope((function(){this.request("api.checkout.form","request",this.getRequestParams(t)).done(this.proxy("onSuccess")).fail(this.proxy("onError")).progress(this.proxy("onProgress"))})))},onProgress:function(t,e){this.trigger("progress",e)},onSuccess:function(t,e){e.sendResponse(),e.submitToMerchant(),this.trigger("success",e)},onError:function(t,e){this.trigger("error",e)}}),yt=it.extend({init:function(t){this.setFormElement(t)},setFormElement:function(t){this.utils.isElement(t)&&(this.form=t)},getData:function(t){var e=this.deparam(this.serializeArray());return!0===t?this.utils.cleanObject(e):e},serializeArray:function(){var t=this.utils.toArray(this.form.elements);return this.utils.map(t,(function(t){if(!t.disabled&&""!==t.name&&(!t.type.match("checkbox|radio")||t.checked))return{name:t.name,value:t.value}}))},serializeAndEncode:function(){return this.utils.map(this.serializeArray(),(function(t){return[t.name,encodeURIComponent(t.value)].join("=")})).join("&")},deparam:function(t){var e,n={},i=/[^\[\]]+|\[\]$/g,r=function(t,e){var i,r=n,o=t.pop(),s=t.length;for(i=0;i<s;i++)r[t[i]]||(r[t[i]]=s===i+1&&"[]"===o?[]:{}),r=r[t[i]];"[]"===o?r.push(e):r[o]=e};for(e in t)t.hasOwnProperty(e)&&r(t[e].name.match(i),t[e].value);return n}}),vt=gt.extend({initElement:function(t){this.addSelectorEvent(t,"submit","sendRequest")},getRequestParams:function(t){return this.utils.extend({},this.params.options,new yt(t).getData())}}),bt=gt.extend({attributes:{},initElement:function(t){this.utils.isPlainObject(this.params.attributes)&&this.utils.extend(this.attributes,this.params.attributes),this.addSelectorEvent(t,"click","sendRequest")},getRequestParams:function(t){return this.utils.extend({},this.params.options,this.getElementData(t))},getElementData:function(t){var e={};return this.utils.forEach(this.attributes,(function(n,i){t.hasAttribute(i)&&(e[n]=t.getAttribute(i))})),e}});return i.add("Api",ct),i.add("Connector",rt),i.add("PaymentButton",mt),i.add("PaymentRequestApi",dt),i.add("PaymentElement",pt),i.add("FormWidget",vt),i.add("ButtonWidget",bt),i.Utils=L,i.Config=Y,i.Api=ct,i.Module=it,i.Connector=rt,i.Response=lt,i.PaymentRequestApi=dt,i.PaymentContainer=ft,i.PaymentElement=pt,i.PaymentButton=mt,i}));
2
2
  //# sourceMappingURL=checkout.js.map