PageSourceSearch

https://www.xmx.de/theme/f3def284fe1a3f37195ee5abaabcae87/js/payone-payment/payone-payment.js?1790851191

js xmx.de collected 2026-10-04 01:39:37 UTC 42,228 bytes, 9 lines download raw bytes

1(()=>{"use strict";var e={156:e=>{var t=function(e){var t;return!!e&&"object"==typeof e&&"[object RegExp]"!==(t=Object.prototype.toString.call(e))&&"[object Date]"!==t&&e.$$typeof!==n},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s(Array.isArray(e)?[]:{},e,t):e}function i(e,t,n){return e.concat(t).map(function(e){return r(e,n)})}function o(e){return Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[])}function a(e,t){try{return t in e}catch(e){return!1}}function s(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=r;var d,c,h=Array.isArray(n);return h!==Array.isArray(e)?r(n,l):h?l.arrayMerge(e,n,l):(c={},(d=l).isMergeableObject(e)&&o(e).forEach(function(t){c[t]=r(e[t],d)}),o(n).forEach(function(t){(!a(e,t)||Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))&&(a(e,t)&&d.isMergeableObject(n[t])?c[t]=(function(e,t){if(!t.customMerge)return s;var n=t.customMerge(e);return"function"==typeof n?n:s})(t,d)(e[t],n[t],d):c[t]=r(n[t],d))}),c)}s.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,n){return s(e,n,t)},{})},e.exports=s}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let r=window.PluginBaseClass;class i extends r{static #e=this.options={supportedCardtypes:["#","V","A","M","D","J","O","U","P"]};init(){this.iframe=null,this.iframeFieldCheckerStarted=!1,this.orderFormDisabled=!0;let e=document.getElementById("payone-request"),t=e.getAttribute("data-payone-language"),n=JSON.parse(e.innerHTML);this._createScript(()=>{let e=this.getClientConfig(t);this.iframe=new window.Payone.ClientApi.HostedIFrames(e,n);let r=document.getElementById("savedpseudocardpan"),i=document.getElementById("confirmOrderForm");r&&r.addEventListener("change",this._handleChangeSavedCard.bind(this)),i&&i.addEventListener("submit",this._handleOrderSubmit.bind(this))})}getSelectStyle(){return["width: 100%","padding: .5625rem","color: #8798a9","vertical-align: middle","line-height: 1.5","font-weight: 500","background-color: #fff","border: none","border-radius: 3px"]}getFieldStyle(){return["width: 100%","height: 100%","padding: .5625rem","color: #8798a9","vertical-align: middle","line-height: 1.5","font-weight: 500","background-color: #fff","border: none","border-radius: .1875rem"]}getClientConfig(e){return{fields:{cardpan:{selector:"cardpan",type:"text",style:this.getFieldStyle().join("; ")},cardcvc2:{selector:"cardcvc2",type:"password",size:"4",maxlength:"4",length:{V:3,M:3,A:4,D:3,J:0,O:3,P:3,U:3},style:this.getFieldStyle().join("; ")},cardexpiremonth:{selector:"cardexpiremonth",type:"select",size:"2",maxlength:"2",style:this.getSelectStyle().join("; ")},cardexpireyear:{selector:"cardexpireyear",type:"select",style:this.getSelectStyle().join("; ")}},language:window.Payone.ClientApi.Language[e],defaultStyle:{iframe:{height:"100%",width:"100%"}},autoCardtypeDetection:{supportedCardtypes:i.options.supportedCardtypes,callback:this._cardDetectionCallback}}}_cardDetectionCallback(e){if("-"===e||"?"===e)return;let t="https://cdn.pay1.de/cc/"+e.toLowerCase()+"/xl/default.png",n=document.getElementById("errorOutput"),r=document.getElementById("card-logo");r.setAttribute("src",t),n.style.display="none",r.style.display="block"}_createScript(e){let t=document.createElement("script");t.type="text/javascript",t.src="https://secure.pay1.de/client-api/js/v1/payone_hosted.js",t.addEventListener("load",e.bind(this),!1),document.head.appendChild(t)}_handleOrderSubmit(e){document.getElementById("errorOutput").style.display="none";let t=document.getElementById("savedpseudocardpan");if(t&&t.value.length>0)return!0;
1if(!this.iframe.isComplete()){let t=document.getElementById("iframeErrorOutput");return this.iframeFieldCheckerStarted||setInterval(()=>{this.iframe.isComplete()?t.style.display="none":t.style.display="block"},250),this.iframeFieldCheckerStarted=!0,this._handleOrderFormError(e),!1}if(this.orderFormDisabled)return window.payoneCreditCardCheckCallback=this._payoneCheckCallback.bind(this),this.iframe.creditCardCheck("payoneCreditCardCheckCallback"),this._handleOrderFormError(e),!1}_handleOrderFormError(e){let t=document.getElementById("confirmOrderForm"),n=document.getElementById("confirmFormSubmit");e.preventDefault(),t&&t.dispatchEvent(new Event("removeLoader")),n&&(n.disabled=!1)}_handleChangeSavedCard(){let e=document.getElementById("savedpseudocardpan"),t=e.options[e.selectedIndex];t.value?([...document.getElementsByClassName("credit-card-input")].forEach(function(e){e.classList.add("hide")}),t.dataset.cardHolder?.length?document.getElementById("creditCardHolder").value=t.dataset.cardHolder:document.getElementById("card-holder-input-wrapper").classList.remove("hide")):[...document.getElementsByClassName("credit-card-input")].forEach(function(e){e.classList.remove("hide")})}_payoneCheckCallback(e){if("VALID"===e.status)document.getElementById("pseudocardpan").value=e.pseudocardpan,document.getElementById("truncatedcardpan").value=e.truncatedcardpan,document.getElementById("cardexpiredate").value=e.cardexpiredate,document.getElementById("cardtype").value=e.cardtype,this.orderFormDisabled=!1,document.getElementById("confirmOrderForm").submit();else{let t=document.getElementById("confirmFormSubmit"),n=document.getElementById("errorOutput");t.removeAttribute("disabled"),n.innerHTML=e.errormessage,n.style.display="block"}}}class o{static isTouchDevice(){return"ontouchstart"in document.documentElement}static isIOSDevice(){return o.isIPhoneDevice()||o.isIPadDevice()}static isNativeWindowsBrowser(){return o.isIEBrowser()||o.isEdgeBrowser()}static isIPhoneDevice(){return!!navigator.userAgent.match(/iPhone/i)}static isIPadDevice(){return!!navigator.userAgent.match(/iPad/i)}static isIEBrowser(){return -1!==navigator.userAgent.toLowerCase().indexOf("msie")||!!navigator.userAgent.match(/Trident.*rv:\d+\./)}static isEdgeBrowser(){return!!navigator.userAgent.match(/Edge\/\d+/i)}static getList(){return{"is-touch":o.isTouchDevice(),"is-ios":o.isIOSDevice(),"is-native-windows":o.isNativeWindowsBrowser(),"is-iphone":o.isIPhoneDevice(),"is-ipad":o.isIPadDevice(),"is-ie":o.isIEBrowser(),"is-edge":o.isEdgeBrowser()}}}let a="modal-backdrop",s="modal-backdrop-open",l="no-scroll",d={ON_CLICK:"backdrop/onclick"};class c{constructor(){return c.instance||(c.instance=this),c.instance}create(e){this._removeExistingBackdrops(),document.body.insertAdjacentHTML("beforeend",this._getTemplate());let t=document.body.lastChild;document.documentElement.classList.add(l),setTimeout(function(){t.classList.add(s),"function"==typeof e&&e()},75),this._dispatchEvents()}remove(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:350;this._getBackdrops().forEach(e=>e.classList.remove(s)),setTimeout(this._removeExistingBackdrops.bind(this),e),document.documentElement.classList.remove(l)}_dispatchEvents(){let e=o.isTouchDevice()?"touchstart":"click";document.addEventListener(e,function(e){e.target.classList.contains(a)&&document.dispatchEvent(new CustomEvent(d.ON_CLICK))})}_getBackdrops(){return document.querySelectorAll(`.${a}`)}_removeExistingBackdrops(){!1!==this._exists()&&this._getBackdrops().forEach(e=>e.remove())}_exists(){return document.querySelectorAll(`.${a}`).length>0}_getTemplate(){return`<div class="${a}"></div>`}}let h=Object.freeze(new c);class u{static create(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;h.create(e)}static remove(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:350;h.remove(e)}static SELECTOR_CLASS(){return a}}let m="js-pseudo-modal",p="js-pseudo-modal-template-root-element";class y{constructor(e,t=!0,n=".js-pseudo-modal-template",r=".js-pseudo-modal-template-content-element",i=".js-pseudo-modal-template-title-element"){this._content=e,this._useBackdrop=t,this._templateSelector=n,this._templateContentSelector=r,this._templateTitleSelector=i}open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:350;this._hideExistingModal(),this._create(),setTimeout(this._open.bind(this,e),t)}close(){let e=this.getModal();this._modalInstance=bootstrap.Modal.getInstance(e),this._modalInstance.hide()}getModal(){return this._modal||this._create(),this._modal}updatePosition(){this._modalInstance.handleUpdate()}updateContent(e,t){this._content=e,this._setModalContent(e),this.updatePosition(),"function"==typeof t&&t.bind(this)()}_hideExistingModal(){try{let e=document.querySelector(`.${m} .modal`);if(!e)return;let t=bootstrap.Modal.getInstance(e);if(!t)return;t.hide()}catch(e){console.warn(`[PseudoModalUtil] Unable to hide existing pseudo modal before opening pseudo modal: ${e.message}`)}}_open(e){this.getModal(),this._modal.addEventListener("hidden.bs.modal",this._modalWrapper.remove),this._modal.addEventListener("shown.bs.modal",e),this._modal.addEventListener("hide.bs.modal",()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()}),this._modalInstance.show()}_create(){this._modalMarkupEl=document.querySelector(this._templateSelector),this._createModalWrapper(),this._modalWrapper.innerHTML=this._content,this._modal=this._createModalMar
1kup(),this._modalInstance=new bootstrap.Modal(this._modal,{backdrop:this._useBackdrop}),document.body.insertAdjacentElement("beforeend",this._modalWrapper)}_createModalWrapper(){this._modalWrapper=document.querySelector(`.${m}`),this._modalWrapper||(this._modalWrapper=document.createElement("div"),this._modalWrapper.classList.add(m))}_createModalMarkup(){let e=this._modalWrapper.querySelector(".modal");if(e)return e;let t=this._modalWrapper.innerHTML;return this._modalWrapper.innerHTML=this._modalMarkupEl.innerHTML,this._setModalContent(t),this._modalWrapper.querySelector(".modal")}_setModalTitle(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";try{this._modalWrapper.querySelector(this._templateTitleSelector).innerHTML=e}catch(e){}}_setModalContent(e){let t=this._modalWrapper.querySelector(this._templateContentSelector);t.innerHTML=e;let n=t.querySelector(`.${p}`);if(n){this._modalWrapper.querySelector(`.${p}`).replaceChildren(n);return}try{let e=t.querySelector(this._templateTitleSelector);e&&(this._setModalTitle(e.innerHTML),e.parentNode.removeChild(e))}catch(e){}}}let g="loader",b={BEFORE:"before",INNER:"inner"};class _{constructor(e,t=b.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}create(){if(!this.exists()){if(this.position===b.INNER){this._previousHTML=this.parent.innerHTML,this.parent.innerHTML=_.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),_.getTemplate())}}remove(){if(this.position===b.INNER){this.parent.innerHTML=this._previousHTML;return}this.parent.querySelectorAll(`.${g}`).forEach(e=>e.remove())}exists(){return this.parent.querySelectorAll(`.${g}`).length>0}_getPosition(){return this.position===b.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return`<div class="${g}" role="status">
2                    <span class="visually-hidden">Loading...</span>
3                </div>`}static SELECTOR_CLASS(){return g}}let v=Object.freeze(new class extends _{constructor(){super(document.body)}create(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];!this.exists()&&e&&(u.create(),document.querySelector(`.${u.SELECTOR_CLASS()}`).insertAdjacentHTML("beforeend",_.getTemplate()))}remove(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];super.remove(),e&&u.remove()}});class f{static create(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];v.create(e)}static remove(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];v.remove(e)}}class C extends _{constructor(e,t="before"){super(e,t),this._isValidElement()||console.warn(`[ButtonLoadingIndicatorUtil] Parent element is not of type <button> or <a>. Given element: ${this.parent}`)}create(){if(!this._isValidElement()){console.warn(`[ButtonLoadingIndicatorUtil] Unable to create loading indicator. Parent element is not of type <button> or <a>. Given element: ${this.parent}`);return}if("inner"===this.position){let e=this.parent.getBoundingClientRect().width;this.parent.style.width=`${e}px`}super.create(),this.parent.classList.add(`is-loading-indicator-${this.position}`),this._isButtonElement()?this.parent.disabled=!0:this._isAnchorElement()&&this.parent.classList.add("disabled")}remove(){if(!this.exists()){console.warn(`[ButtonLoadingIndicatorUtil] Unable to remove loading indicator. No indicator present on given element: ${this.parent}`);return}"inner"===this.position&&(this.parent.style.width="auto"),super.remove(),this.parent.classList.remove(`is-loading-indicator-${this.position}`),this._isButtonElement()?this.parent.disabled=!1:this._isAnchorElement()&&this.parent.classList.remove("disabled")}_isValidElement(){return this._isButtonElement()||this._isAnchorElement()}_isButtonElement(){return this.parent?.tagName.toLowerCase()==="button"}_isAnchorElement(){return this.parent?.tagName.toLowerCase()==="a"}}let E=window.PluginBaseClass;class S extends E{static #e=this.options={editorModalClass:"payone-debit-modal"};init(){this.orderFormDisabled=!0,document.getElementById("confirmOrderForm").addEventListener("submit",this._handleOrderSubmit.bind(this))}_handleOrderSubmit(e){document.getElementById("errorOutput").style.display="none",this.orderFormDisabled&&(this._handleOrderFormError(e),this._getModal(e))}_handleOrderFormError(e){let t=document.getElementById("confirmFormSubmit");
3if(e.preventDefault(),t){let e=new C(t);t.disabled=!1,e.remove()}}_getModal(e){e.preventDefault(),f.create();let t=this._getRequestData();fetch(this._getManageMandateUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(e=>e.text()).then(e=>{this._openModal(e)})}_submitForm(){this.orderFormDisabled=!1,document.getElementById("confirmOrderForm").submit()}_openModal(e){if((e=JSON.parse(e)).error){let t=document.getElementById("errorOutput");t.innerHTML=e.error,t.style.display="block",f.remove();return}if("active"===e.mandate.Status){this._submitForm();return}let t=new y(e.modal_content);t.open(this._onOpen.bind(this,t))}_onOpen(e){e.getModal().classList.add("payone-debit-mandate-modal"),window.PluginManager.initializePlugins(),this._registerEvents(),f.remove()}_getRequestData(){return{iban:document.getElementById("iban").value}}_getManageMandateUrl(){return document.getElementById("payone-configuration").getAttribute("data-manage-mandate-url")}_registerEvents(){document.getElementById("mandateSubmit").addEventListener("click",this._onMandateSubmit.bind(this))}_onMandateSubmit(){document.getElementById("accept-mandate").checked&&this._submitForm()}}let I=window.PluginBaseClass,w=window.PluginBaseClass,B=window.PluginBaseClass;class P extends B{static #e=this.options={countryCode:"",currencyCode:"",supportedNetworks:[],merchantCapabilities:["supports3DS","supportsDebit","supportsCredit"],total:{label:"",type:"final",amount:"0.01"}};init(){null===this.options.supportedNetworks&&(this.options.supportedNetworks=[]),this.validateMerchantUrl=this.el.dataset.validateMerchantUrl,this.processPaymentUrl=this.el.dataset.processPaymentUrl,this.orderForm=document.querySelector("#confirmOrderForm"),this._registerEventHandler()}createSession(){try{this.session=new ApplePaySession(3,this.options)}catch(e){this.handleErrorOnPayment();return}this.session.addEventListener("validatemerchant",this.validateMerchant.bind(this)),this.session.addEventListener("paymentauthorized",this.authorizePayment.bind(this))}performPayment(){this.session.begin()}validateMerchant(e){let t=e.validationURL;fetch(this.validateMerchantUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({validationUrl:t})}).then(e=>e.text()).then(e=>{let t=null;try{t=JSON.parse(e)}catch(e){this.handleErrorOnPayment();return}if(!t||!t.merchantSessionIdentifier||!t.signature){this.handleErrorOnPayment();return}this.session.completeMerchantValidation(t)})}handleErrorOnPayment(){let e=document.querySelector("#payone-apple-pay-error");e.style.display="block",e.scrollIntoView({block:"start"})}authorizePayment(e){let t=this.orderForm.querySelector("input[name='orderId']").value;fetch(this.processPaymentUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.payment.token,orderId:t})}).then(e=>e.text()).then(e=>{this.completePayment(e),this.orderForm.submit()})}completePayment(e){let t="",n="",r="";try{let i=JSON.parse(e);n=i.status,t=i.txid,r=i.userid}catch(e){this.orderForm.submit()}this.updateFormData(n,t,r,e),("APPROVED"===n||"PENDING"===n)&&this.session.completePayment({status:ApplePaySession.STATUS_SUCCESS,errors:[]}),this.orderForm.submit()}updateFormData(e,t,n,r){this.orderForm.querySelector("input[name='status']").value=e,this.orderForm.querySelector("input[name='txid']").value=t,this.orderForm.querySelector("input[name='userid']").value=n,this.orderForm.querySelector("input[name='response']").value=r}_handleApplePayButtonClick(){this.orderForm.reportValidity()&&(this.createSession(),this.performPayment())}_registerEventHandler(){this.el.addEventListener("click",this._handleApplePayButtonClick.bind(this))}}let k=window.PluginBaseClass;class O extends k{static #e=this.options={ratepayRateInputSelector:"#ratepayRate",ratepayRuntimeInputSelector:"#ratepayRuntime",calculateInstallmentBtnSelector:"#payone-ratepay-calculate-installment-btn",ratepayInstallmentPlanContainerSelector:"#payone-ratepay-installment-plan",ratepayIbanContainerSelector:"#ratepayIbanContainer",ratepayIbanInputSelector:"#ratepayIban",ratepayInstallmentTableSelector:"#ratepayInstallmentTable"};
3init(){this.ratepayRateInput=document.querySelector(this.options.ratepayRateInputSelector),this.calculateInstallmentBtn=document.querySelector(this.options.calculateInstallmentBtnSelector),this.ratepayRuntimeInput=document.querySelector(this.options.ratepayRuntimeInputSelector),this.ratepayIbanContainer=document.querySelector(this.options.ratepayIbanContainerSelector),this.ratepayIbanInput=document.querySelector(this.options.ratepayIbanInputSelector),this._registerEventListeners(),this._handleInstallmentRuntimeChange()}_registerEventListeners(){this.calculateInstallmentBtn&&this.calculateInstallmentBtn.addEventListener("click",this._handleCalculateInstallmentButtonClick.bind(this)),this.ratepayRuntimeInput&&this.ratepayRuntimeInput.addEventListener("change",this._handleInstallmentRuntimeChange.bind(this)),document.querySelector(this.options.ratepayIbanContainerSelector).addEventListener("shown.bs.collapse",()=>this.ratepayIbanInput.required=!0),document.querySelector(this.options.ratepayIbanContainerSelector).addEventListener("hidden.bs.collapse",()=>this.ratepayIbanInput.required=!1)}_handleCalculateInstallmentButtonClick(){let e=this.ratepayRateInput.value;this._sendRequest("rate",e)}_handleInstallmentRuntimeChange(){let e=document.querySelector(this.options.ratepayRuntimeInputSelector).value;this._sendRequest("time",e)}_sendRequest(e,t){fetch("/payone/ratepay/installment/calculation",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ratepayInstallmentType:e,ratepayInstallmentValue:t})}).then(e=>e.text()).then(e=>{this._handleCalculationCallback(e)})}_handleCalculationCallback(e){this._replaceCalculationContent(e)}_replaceCalculationContent(e){document.querySelector(this.options.ratepayInstallmentPlanContainerSelector).innerHTML=e,this.ratepayInstallmentTable=document.querySelector(this.options.ratepayInstallmentTableSelector),this.ratepayRuntimeInput.value=this.ratepayInstallmentTable.dataset.ratepayNumberOfRates,this.ratepayRateInput.value=this.ratepayInstallmentTable.dataset.ratepayRate}}let L=window.PluginBaseClass;class F extends L{static #e=this.options={clientToken:null,paymentMethodIdentifier:null,selectorContainer:null,selectorTokenInput:'input[name="payoneKlarnaAuthorizationToken"]',selectorFormId:"confirmOrderForm"};static #t=this.orderForm=null;static #n=this.confirmFormSubmit=null;init(){window.klarnaAsyncCallback=this._initKlarnaWidget.bind(this);let e=document.createElement("script");e.src="https://x.klarnacdn.net/kp/lib/v1/api.js",document.body.appendChild(e),this.orderForm=document.getElementById(this.options.selectorFormId),this.confirmFormSubmit=this.orderForm.querySelector("button[type=submit]"),this._registerEventListeners()}_initKlarnaWidget(){Klarna.Payments.init({client_token:this.options.clientToken}),Klarna.Payments.load({container:this.options.selectorContainer,payment_method_category:this.options.paymentMethodIdentifier},e=>{new C(this.confirmFormSubmit).remove()})}_registerEventListeners(){this.orderForm&&this.orderForm.addEventListener("submit",this._handleOrderSubmit.bind(this))}_handleOrderSubmit(e){e.preventDefault(),Klarna.Payments.authorize({payment_method_category:this.options.paymentMethodIdentifier},{},e=>{e.approved&&e.authorization_token?(document.querySelector(this.options.selectorTokenInput).value=e.authorization_token,this.orderForm.submit()):e.show_form?new C(this.confirmFormSubmit).remove():e.show_form||(window.location.href=window.location.href)})}}let T=window.PluginBaseClass;class M extends T{static #e=this.options={sandbox:!0,clientId:null,merchantId:null,currency:null,locale:null,showPayLaterButton:!1,createCheckoutSessionUrl:null,onApproveRedirectUrl:null,onCancelRedirectUrl:null,onErrorRedirectUrl:null};init(){if(!this.options.clientId||!this.options.merchantId||!this.options.currency||!this.options.locale||!this.options.createCheckoutSessionUrl||!this.options.onApproveRedirectUrl||!this.options.onCancelRedirectUrl||!this.options.onErrorRedirectUrl){console.error("The PayPal v2 Express button could not be initialized because the required options are missing.");return}this._loadScript()}_loadScript(){let e=new URLSearchParams({"client-id":this.options.clientId,"merchant-id":this.options.merchantId,currency:this.options.currency,intent:"authorize",locale:this.options.locale,commit:"false",vault:"false","disable-funding":"card,sepa,bancontact",...this.options.showPayLaterButton?{"enable-funding":"paylater"}:{}}).toString(),t=document.createElement("script");t.onload=()=>this._renderButtons(),this.options.sandbox?t.src=`https://sandbox.paypal.com/sdk/js?${e}`:t.src=`https://www.paypal.com/sdk/js?${e}`,document.head.append(t)}_renderButtons(){paypal.Buttons({style:{layout:"vertical",color:"gold",shape:"rect",label:"checkout",height:40},createOrder:this._createOrder.bind(this),onApprove:this._onApprove.bind(this),onCancel:this._onCancel.bind(this),onError:this._onError.bind(this)}).render("#payone-payment-paypal-v2-button-container")}_createOrder(){return new Promise((e,t)=>
3{fetch(this.options.createCheckoutSessionUrl,{method:"GET",credentials:"same-origin",headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest"}}).then(async e=>{if(!e.ok)throw Error(await e.text().catch(()=>"")||`HTTP ${e.status}`);return e.json()}).then(t=>{e(t.orderId)}).catch(e=>{t(e)})})}_onApprove(){window.location.href=this.options.onApproveRedirectUrl}_onCancel(){window.location.href=this.options.onCancelRedirectUrl}_onError(){window.location.href=this.options.onErrorRedirectUrl}}let x=window.PluginBaseClass;class A extends x{init(){if("amazon"in window)this.onLoad();else{var e=document.createElement("script");e.type="text/javascript",e.src="https://static-eu.payments-amazon.com/checkout.js",e.onload=this.onLoad.bind(this),document.head.appendChild(e)}}onLoad(){}}class D extends A{onLoad(){window.amazon.Pay.renderButton("#"+this.el.id,this.options)}}let j="element-loader-backdrop";class N extends _{static create(e){e.classList.add("has-element-loader"),N.exists(e)||(N.appendLoader(e),setTimeout(()=>{let t=e.querySelector(`.${j}`);t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(`.${j}`);t&&t.remove()}static exists(e){return e.querySelectorAll(`.${j}`).length>0}static getTemplate(){return`
4        <div class="${j}">
5            <div class="loader" role="status">
6                <span class="visually-hidden">Loading...</span>
7            </div>
8        </div>
9        `}static appendLoader(e){e.insertAdjacentHTML("beforeend",N.getTemplate())}}PluginManager.register("PayonePaymentAmazonPayExpressButton",D,"[data-payone-payment-amazon-pay-express-button]"),PluginManager.register("PayonePaymentAmazonPayRedirect",class extends D{init(){N.create(document.querySelector(".content-main")),super.init()}onLoad(){super.onLoad(),document.querySelector("#"+this.el.id).dispatchEvent(new CustomEvent("click"))}},"[data-payone-payment-amazon-pay-redirect]");var q=n(156),R=n.n(q);class z{static ucFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}static lcFirst(e){return e.charAt(0).toLowerCase()+e.slice(1)}static toDashCase(e){return e.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(e,t){let n=z.toUpperCamelCase(e,t);return z.lcFirst(n)}static toUpperCamelCase(e,t){return t?e.split(t).map(e=>z.ucFirst(e.toLowerCase())).join(""):z.ucFirst(e.toLowerCase())}static parsePrimitive(e){try{return/^\d+(.|,)\d+$/.test(e)&&(e=e.replace(",",".")),JSON.parse(e)}catch(t){return e.toString()}}}class U{constructor(e=document){this._el=e,e.$emitter=this,this._listeners=[]}publish(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=new CustomEvent(e,{detail:t,cancelable:n});return this.el.dispatchEvent(r),r}subscribe(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this,i=e.split("."),o=n.scope?t.bind(n.scope):t;if(n.once&&!0===n.once){let t=o;o=function(n){r.unsubscribe(e),t(n)}}return this.el.addEventListener(i[0],o),this.listeners.push({splitEventName:i,opts:n,cb:o}),!0}unsubscribe(e){let t=e.split(".");return this.listeners=this.listeners.reduce((e,n)=>([...n.splitEventName].sort().toString()===t.sort().toString()?this.el.removeEventListener(n.splitEventName[0],n.cb):e.push(n),e),[]),!0}reset(){return this.listeners.forEach(e=>{this.el.removeEventListener(e.splitEventName[0],e.cb)}),this.listeners=[],!0}get el(){return this._el}set el(e){this._el=e}get listeners(){return this._listeners}set listeners(e){this._listeners=e}}class H{constructor(e,t={},n=!1){if(!(e instanceof Node)){console.warn(`There is no valid element given while trying to create a plugin instance for "${n}".`);return}this.el=e,this.$emitter=new U(this.el),this._pluginName=this._getPluginName(n),this.options=this._mergeOptions(t),this._initialized=!1,this._registerInstance(),this._init()}init(){console.warn(`The "init" method for the plugin "${this._pluginName}" is not defined. The plugin will not be initialized.`)}update(){}_init(){this._initialized||(this.init(),this._initialized=!0)}
9_update(){this._initialized&&this.update()}_mergeOptions(e){let t=[this.constructor.options,this.options,e];return t.push(this._getConfigFromDataAttribute()),t.push(this._getOptionsFromDataAttribute()),R().all(t.filter(e=>e instanceof Object&&!(e instanceof Array)).map(e=>e||{}))}_getConfigFromDataAttribute(){let e={};if("function"!=typeof this.el.getAttribute)return e;let t=z.toDashCase(this._pluginName),n=this.el.getAttribute(`data-${t}-config`);return n?window.PluginConfigManager.get(this._pluginName,n):e}_getOptionsFromDataAttribute(){let e={};if("function"!=typeof this.el.getAttribute)return e;let t=z.toDashCase(this._pluginName),n=this.el.getAttribute(`data-${t}-options`);if(n)try{return JSON.parse(n)}catch(e){console.error(`The data attribute "data-${t}-options" could not be parsed to json: ${e.message}`)}return e}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(e){return e||(e=this.constructor.name),e}}class $ extends H{static #e=this.scriptLoaded=!1;static #t=this.scriptPromise=null;static #n=this.paymentsClient=null;init(){if(this.config=this._parseConfig(),this.config){if(this.buttonContainer=this.el.querySelector("[data-payone-google-pay-button]"),this.tokenField=this.el.querySelector("[data-google-pay-token]"),this.orderForm=document.getElementById("confirmOrderForm"),!this.buttonContainer||!this.tokenField||!this.orderForm){console.warn("PayoneGooglePay: missing DOM elements");return}this.merchantInfo=this._generateMerchantInfo(),this._loadGooglePaySdk().then(()=>{this._onSdkReady()}).catch(console.error)}}_parseConfig(){try{return JSON.parse(this.el.dataset.payoneGooglePayOptions||"{}")}catch(e){return console.error("PayoneGooglePay: config parse error",e),null}}_generateMerchantInfo(){return{merchantId:this.config.googlePayMerchantId,merchantName:this.config.googlePayMerchantName}}_loadGooglePaySdk(){return $.scriptPromise||($.scriptPromise=new Promise((e,t)=>{let n=document.querySelector('script[src="https://pay.google.com/gp/p/js/pay.js"]');if(n&&$.scriptLoaded)return e();let r=n||document.createElement("script");r.src="https://pay.google.com/gp/p/js/pay.js",r.async=!0,r.onload=()=>{$.scriptLoaded=!0,e()},r.onerror=t,n||document.head.appendChild(r)})),$.scriptPromise}_getPaymentsClient(){return $.paymentsClient||($.paymentsClient=new google.payments.api.PaymentsClient({environment:this.config.environment,merchantInfo:this.merchantInfo})),$.paymentsClient}_deepCopy(e){return JSON.parse(JSON.stringify(e))}_onSdkReady(){let e=Object.freeze({apiVersion:2,apiVersionMinor:0,allowedPaymentMethods:[{type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:this.config.allowedCardNetworks||[]},tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"payonegmbh",gatewayMerchantId:this.config.merchantId}}}],merchantInfo:this.merchantInfo});this.baseRequest=e;let t=this._getPaymentsClient();t.isReadyToPay(this._deepCopy(e)).then(e=>{e.result&&this._renderButton(t)}).catch(console.error)}_renderButton(e){let t=e.createButton({onClick:this._onClick.bind(this),buttonColor:this.config.buttonColor||"default",buttonType:this.config.buttonType||"pay"});this.buttonContainer.innerHTML="",this.buttonContainer.appendChild(t)}_onClick(){if(!this.orderForm.reportValidity())return;let e=this._getPaymentsClient(),t={...this._deepCopy(this.baseRequest),transactionInfo:{countryCode:this.config.countryCode,currencyCode:this.config.currencyCode,totalPriceStatus:"FINAL",totalPrice:this.config.totalPrice.toString()}};e.loadPaymentData(t).then(e=>{let t=e.paymentMethodData.tokenizationData.token;this.tokenField.value=btoa(t),this.orderForm.submit()}).catch(console.error)}}let W=window.PluginBaseClass,V=window.PluginManager;V.register("PayonePaymentCreditCard",i,"[data-is-payone-credit-card]"),V.register("PayonePaymentDebitCard",S,"[data-is-payone-debit-card]"),V.register("PayonePaymentPayolutionInvoicing",class extends I{init(){this.orderFormDisabled=!0,this._registerEventListeners()}_registerEventListeners(){let e=document.getElementById("confirmOrderForm");e&&e.addEventListener("submit",this._handleOrderSubmit.bind(this))}_handleOrderSubmit(e){this._hideErrorBox(),this.orderFormDisabled&&(this._val
9idateField(e,"payolutionConsent"),this._validateInput(e,"payoneBirthday"),e.defaultPrevented||(this._validatePaymentAcceptance(),e.preventDefault()))}_validateField(e,t){let n=document.getElementById(t);if(n.checked){n.classList.remove("is-invalid");return}n.scrollIntoView({block:"start",behavior:"smooth"}),n.classList.add("is-invalid"),e.preventDefault()}_validateInput(e,t){let n=document.getElementById(t);if(n.value){n.classList.remove("is-invalid");return}n.scrollIntoView({block:"start",behavior:"smooth"}),n.classList.add("is-invalid"),e.preventDefault()}_validatePaymentAcceptance(){let e=JSON.stringify(this._getRequestData());f.create(),fetch(this._getValidateUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:e}).then(e=>e.text()).then(e=>{this._handleValidateResponse(e)})}_handleValidateResponse(e){if(e=JSON.parse(e),f.remove(),"OK"!==e.status)this._showErrorBox();else{let t=document.getElementById("payoneWorkOrder");t&&(t.value=e.workorderid),this._submitForm()}}_getValidateUrl(){return document.getElementById("payone-configuration").getAttribute("data-validate-url")}_showErrorBox(){let e=document.getElementById("payolutionErrorContainer");e&&(e.hidden=!1)}_hideErrorBox(){let e=document.getElementById("payolutionErrorContainer");e&&(e.hidden=!0)}_submitForm(){this.orderFormDisabled=!1,document.getElementById("confirmOrderForm").submit()}_getRequestData(){return{payoneBirthday:document.getElementById("payoneBirthday").value}}},"[data-is-payone-payolution-invoicing]"),V.register("PayonePaymentPayolutionInstallment",class extends w{init(){this.orderFormDisabled=!0,this._disableSubmitButton(),this._registerEventListeners()}_registerEventListeners(){let e=document.getElementById("confirmOrderForm"),t=document.getElementById("checkInstallmentButton");e&&e.addEventListener("submit",this._handleOrderSubmit.bind(this)),t&&t.addEventListener("click",this._handleCalculationButtonClick.bind(this))}_handleCalculationButtonClick(e){if(this._hideErrorBox(),this._validateField(e,"payolutionConsent"),this._validateInput(e,"payoneBirthday"),e.defaultPrevented)return;f.create();let t=JSON.stringify(this._getRequestData());fetch(this._getCalculationUrl(),{method:"POST",headers:{"Content-Type":"application/json"},body:t}).then(e=>e.text()).then(e=>{this._handleCalculationCallback(e)})}_handleCalculationCallback(e){if(e=JSON.parse(e),f.remove(),"OK"!==e.status){this._showErrorBox();return}let t=document.getElementById("payoneWorkOrder"),n=document.getElementById("payoneCartHash");t.value=e.workorderid,n.value=e.carthash,this._displayInstallmentSelection(e),this._displayCalculationOverview(e),this._registerSelectionEventListeners(),this._enableSecondStep(),this._activateSubmitButton(),this._hideCheckInstallmentButton()}_hideCheckInstallmentButton(){let e=document.getElementById("checkInstallmentButton");e&&e.classList.add("hidden")}_registerSelectionEventListeners(){document.getElementById("payolutionInstallmentDuration").addEventListener("change",function(e){let t=e.target.value;document.querySelectorAll(".installmentDetail").forEach(function(e){e.dataset.duration===t?e.hidden=!1:e.hidden="hidden"})})}_showErrorBox(){let e=document.getElementById("payolutionErrorContainer");e&&(e.hidden=!1)}_hideErrorBox(){let e=document.getElementById("payolutionErrorContainer");e&&(e.hidden=!0)}_enableSecondStep(){document.querySelectorAll(".payolution-installment .hidden").forEach(function(e){e.classList.remove("hidden")})}_displayInstallmentSelection(e){let t=document.getElementById("installmentSelection");t&&(t.innerHTML=e.installmentSelection)}_displayCalculationOverview(e){let t=document.getElementById("calculationOverview");t&&(t.innerHTML=e.calculationOverview)}_handleOrderSubmit(e){this._validateField(e,"payolutionConsent"),this._validateInput(e,"payoneBirthday"),this._validateInput(e,"payolutionAccountOwner"),this._validateInput(e,"payolutionIban"),this._validateInput(e,"payolutionBic"),this._validateInput(e,"payolutionInstallmentDuration")}_disableSubmitButton(){this.orderFormDisabled=!0;let e=document.getElementById("confirmFormSubmit");e&&e.setAttribute("disabled","disabled")}_activateSubmitButton(){this.orderFormDisabled=!1;let e=document.getElementById("confirmFormSubmit");e&&e.removeAttribute("disabled")}_getCalculationUrl(){return document.getElementById("payone-configuration").getAttribute("data-calculation-url")}_validateField(e,t){let n=document.getElementById(t);if(n.checked){n.classList.remove("is-invalid");return}n.scrollIntoView({block:"start",behavior:"smooth"}),n.classList.add("is-invalid"),this._handleOrderFormError(e)}_validateInput(e,t){let n=document.getElementById(t);if(n.value){n.classList.remove("is-invalid");return}n.scrollIntoView({block:"start",behavior:"smooth"}),n.classList.add("is-invalid"),this._handleOrderFormError(e)}_handleOrderFormError(e){let t=document.getElementById("confirmFormSubmit");
9if(e.preventDefault(),t){let e=new C(t);t.disabled=!1,e.remove()}}_getRequestData(){let e=document.getElementById("payoneBirthday"),t=document.getElementById("payoneWorkOrder"),n=document.getElementById("payoneCartHash");return{payoneBirthday:e.value,workorder:t.value,carthash:n.value}}},"[data-is-payone-payolution-installment]"),V.register("PayonePaymentApplePay",P,"[data-payone-payment-apple-pay-options]"),V.register("PayonePaymentRatepayInstallment",O,"[data-is-payone-ratepay-installment]"),V.register("PayonePaymentKlarna",F,"[data-payone-payment-klarna]"),V.register("PayonePaymentPayPalV2",M,"[data-payone-payment-pay-pal-v2-options]"),V.register("PayoneGooglePayPlugin",$,"[data-payone-google-pay]"),V.register("PayoneClickToPayPlugin",class extends W{init(){this.tokenField=this.el.querySelector("[data-click-to-pay-token]"),this.submitBtn=this.el.querySelector("button"),this.errorBox=this.el.querySelector("#payone-click-to-pay-error"),this.errorMsg=this.el.querySelector(".alert-content-container"),this.orderForm=document.getElementById("confirmOrderForm"),this.submitBtn.addEventListener("click",this._submitForm.bind(this)),this.options=this._parseOptions(),window.HostedTokenizationSdk?this.loadSDK():console.error("HTP-SDK failed to load")}async loadSDK(){try{await window.HostedTokenizationSdk.init(),window.HostedTokenizationSdk.getPaymentPage(this.getConfig(),this.callbackfunc)}catch(e){console.error("Error initializing HTP-SDK:",e)}}tokenizationSuccessCallback(e,t,n,r){if(null===n)return;let i=document.getElementById("payoneCtpCardInputMode");i&&(i.value=String(r));let o=document.getElementById("payoneCtpPaymentCheckoutData"),a=document.getElementById("payoneCtpPseudoCardPan"),s=document.getElementById("payoneCtpTruncatedCardPan"),l=document.getElementById("payoneCtpCardExpireDate"),d=document.getElementById("payoneCtpCardType"),c=document.getElementById("payoneCtpCardHolder");if(c&&n&&n.cardholderName&&(c.value=String(n.cardholderName)),s&&n&&n.cardNumber&&(s.value=String(n.cardNumber)),l&&n&&n.expiryDate&&(l.value=String(n.expiryDate)),d&&n&&n.cardType&&(d.value=String(n.cardType)),this.submitBtn.disabled=!1,"clickToPay"===r||"register"===r){o&&(o.value=String(t)),a&&(a.value=""),this.tokenField&&(this.tokenField.value=""),this.orderForm.submit();return}a&&(a.value=String(t)),o&&(o.value=""),this.tokenField&&(this.tokenField.value=String(t)),this.orderForm.submit()}tokenizationFailureCallback(e,t){let n=t&&t.error?String(t.error):t&&t.message?String(t.message):"Payment preparation error, please try again.";this._showError(n);let r=n.toLowerCase();r.includes("jwt")&&(r.includes("expired")||r.includes("incorrect")||r.includes("invalid"))&&(console.warn("CTP: JWT issue detected, reloading page to refresh token"),window.location.reload()),this.submitBtn.disabled=!1}callbackfunc(e,t){if(t&&(t.error||t.errorMessage)){console.error("Tokenization error",e);let n=String(t.error||t.errorMessage);this._showError(n)}}getConfig(){let e={mode:"live",iframe:{iframeWrapperId:"payment-IFrame",zIndex:1e4,height:500,width:400},locale:this.options.locale,token:this.options.token,email:this.options.email,showCardholderName:!0,allowedCardSchemes:["amex","diners","discover","jcb","maestro","mastercard","visa","unionpay"],CTPConfig:{enableCTP:!!this.options.enableCTP,enableCustomerOnboarding:!!this.options.enableCustomerOnboarding,transactionAmount:{amount:this.options.amount,currencyCode:this.options.currencyCode},shopName:this.el.getAttribute("data-shop-name")}},t=Object.fromEntries(Object.entries({fontSize:this.options.labelStyleFontSize,fontWeight:this.options.labelStyleFontWeight}).filter(e=>{let[t,n]=e;return null!==n})),n=Object.fromEntries(Object.entries({fontSize:this.options.inputStyleFontSize,fontWeight:this.options.inputStyleFontWeight}).filter(e=>{let[t,n]=e;return null!==n})),r=Object.fromEntries(Object.entries({fontSize:this.options.errorValidationStyleFontSize,fontWeight:this.options.errorValidationStyleFontWeight}).filter(e=>{let[t,n]=e;return null!==n})),i=Object.fromEntries(Object.entries({formBgColor:this.options.formBgColor,fieldBgColor:this.options.fieldBgColor,fieldBorder:this.options.fieldBorder,fieldOutline:this.options.fieldOutline,fieldLabelColor:this.options.fieldLabelColor,fieldPlaceholderColor:this.options.fieldPlaceholderColor,fieldTextColor:this.options.fieldTextColor,fieldErrorCodeColor:this.options.fieldErrorCodeColor,fontFamily:this.options.fontFamily,fontUrl:this.options.fontUrl,btnBgColor:this.options.btnBgColor,btnTextColor:this.options.btnTextColor,btnBorderColor:this.options.btnBorderColor,separatorColor:this.options.separatorColor,separatorTextColor:this.options.separatorTextColor}).filter(e=>{let[t,n]=e;return null!==n}));return 0<Object.keys(t).length&&(i.labelStyle=t),0<Object.keys(n).length&&(i.inputStyle=n),0<Object.keys(r).length&&(i.error
9ValidationStyle=r),0<Object.keys(i).length&&(e.uiConfig=i),e}_parseOptions(){try{return JSON.parse(this.el.getAttribute("data-payone-click-to-pay-options"))}catch(e){return console.error("PayoneClickToPay: config parse error",e),{}}}_submitForm(e){e.preventDefault(),this._hideError(),this.orderForm.reportValidity()&&(this.submitBtn.disabled=!0,window.HostedTokenizationSdk.submitForm(this.tokenizationSuccessCallback.bind(this),this.tokenizationFailureCallback.bind(this)))}_showError(e){this.errorMsg&&(this.errorMsg.textContent=e),this.errorBox&&(this.errorBox.style.display="block")}_hideError(){this.errorMsg&&(this.errorMsg.textContent=""),this.errorBox&&(this.errorBox.style.display="none")}},"[data-payone-click-to-pay]")})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.