@gr4vy/secure-fields 2.10.1 → 2.10.2

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # v2.10.2 (Thu Jul 23 2026)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - chore: extend card details changed event [#1263](https://github.com/gr4vy/secure-fields/pull/1263) ([@gryevns](https://github.com/gryevns) [@luca-gr4vy](https://github.com/luca-gr4vy))
6
+
7
+ #### Authors: 2
8
+
9
+ - Gary Evans ([@gryevns](https://github.com/gryevns))
10
+ - Luca Allievi ([@luca-gr4vy](https://github.com/luca-gr4vy))
11
+
12
+ ---
13
+
1
14
  # v2.10.1 (Mon Jul 20 2026)
2
15
 
3
16
  #### 🏠 Internal
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Events:()=>o,SecureFields:()=>te,SecureInput:()=>W});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production";return"https://".concat(arguments.length>2?arguments[2]:void 0,".").concat("sandbox"===t?"sandbox.":"").concat(e,".gr4vy.app")},n=(e,t)=>"".concat(e,"?").concat(new URLSearchParams(t).toString()),i="@gr4vy-secure-fields-debug",o=function(e){return e.CARD_VAULT_SUCCESS="card-vault-success",e.CARD_VAULT_FAILURE="card-vault-failure",e.FORM_CHANGE="form-change",e.METHOD_CHANGE="method-change",e.READY="ready",e.RESIZE="resize",e.CLICK_TO_PAY_INITIALIZED="click-to-pay-initialized",e.CLICK_TO_PAY_READY="click-to-pay-ready",e.CLICK_TO_PAY_SIGN_OUT="click-to-pay-sign-out",e.CLICK_TO_PAY_ERROR="click-to-pay-error",e.CLICK_TO_PAY_CANCEL="click-to-pay-cancel",e.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD="click-to-pay-checkout-with-new-card",e.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA="click-to-pay-unable-to-load-dpa",e.CLICK_TO_PAY_VISIBILITY_CHANGE="click-to-pay:visibility-change",e.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE="click-to-pay-card-form:visibility-change",e.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE="click-to-pay-sign-in:visibility-change",e.CLICK_TO_PAY_PROCESSING="click-to-pay-processing",e.CLICK_TO_PAY_AUTHENTICATE="click-to-pay-authenticate",e.CLICK_TO_PAY_AUTHENTICATE_FAILURE="click-to-pay-authenticate-failure",e.THREE_DS_START="three-ds-start",e.THREE_DS_FINISH="three-ds-finish",e}({}),a=function(e){return e.REQUEST_PORT="request-port",e.TRANSFER_PORT="transfer-port",e.REQUEST_RECOGNITION_TOKEN="request-recognition-token",e.REQUEST_RECOGNITION_TOKEN_FAILED="request-recognition-token-failed",e.RECOGNITION_TOKEN="recognition-token",e}({}),s=function(e){return e.FOCUSED="data-secure-fields-focused",e.INVALID="data-secure-fields-invalid",e.AUTOFILLED="data-secure-fields-autofilled",e}({}),c=function(e){return e.PAYMENT_METHOD_ID_IN_USE="You're passing a paymentMethodId to use a stored payment method, which means Secure Fields methods `addCardNumber`, `addExpiryDate` and `addClickToPay` are automatically disabled and won't render the related fields",e.PAYMENT_METHOD_ID_DEPRECATED="The 'paymentMethodId' prop is deprecated and will be removed in a future version. Please use the 'paymentMethod' prop instead: { paymentMethod: { id: 'your-id', scheme: 'visa' } }",e.FIELD_PATTERN_IN_USE="The `pattern` option can't be used on card fields, so it won't be applied here.",e.AUTO_ADVANCE_ENABLED="autoAdvance is enabled. Auto-advancing focus on field completion can degrade checkout UX (see WCAG 3.2.2). Use with caution.",e.NO_RECOGNITION_TOKEN="The recognition token couldn't be obtained or the request took too much time. It is possible that a Click to Pay user was therefore not recognised.",e}({}),l="secure-fields",d={number:"addCardNumberField",expiryDate:"addExpiryDateField",securityCode:"addSecurityCodeField"},h=["01","02","03","04","05"];function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e,t)||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.")}()}var y=new class{subscribe(e,t){this.subscribers.push([e,t])}unsubscribe(e,t){this.subscribers=this.subscribers.filter((r=>{var n=p(r,2),i=n[0],o=n[1];return i!==e||o.toString()!==t.toString()}))}unsubscribeAll(){this.subscribers=[]}publish(e,t){this.subscribers.forEach((r=>{var n=p(r,2),i=n[0],o=n[1];return setTimeout((()=>i===e?o(t):null),0)}))}constructor(){var e,t;t=void 0,(e="subscribers")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t,this.subscribers=[]}};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(e,t)||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.")}()}var v=new class{add(e,t,r){window.addEventListener(e,t),this.listeners.push([e,t,r])}remove(e,t,r){var n=this.listeners.findIndex((n=>{var i=f(n,3),o=i[0],a=i[1],s=i[2];return o===e&&a.toString()===t.toString()&&s===r}));if(-1!==n){var i=f(this.listeners.splice(n,1),1),o=f(i[0],2),a=o[0],s=o[1];window.removeEventListener(a,s)}}removeAll(){this.listeners.forEach((e=>{var t=f(e,2),r=t[0],n=t[1];window.removeEventListener(r,n)})),this.listeners=[]}constructor(){var e,t;t=[],(e="listeners")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t}};function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){b(e,t,r[t])}))}return e}var _={debug:!1,level:"log"},I=(e,t,r)=>{var n=g({},_,r),o=n.debug,a=n.level;(o||"true"===localStorage.getItem(i))&&console[a]("Gr4vy - Secure Fields - ".concat(e),t||{})},O=(e,t,r)=>{var n,i;I(e,t,(n=g({},r),i=null!=(i={level:"warn"})?i:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(i)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))})),n))};function C(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function E(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){E(e,t,r[t])}))}return e}function A(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class P{init(e,t){var r;this.challengeWindowSize=h.includes(null==t?void 0:t.challengeWindowSize)?t.challengeWindowSize:"05",this.element="string"==typeof e?document.querySelector(e):e;var i="gr4vy-threeds-flow-controller";null===(r=document.body.querySelector("iframe#".concat(i)))||void 0===r||r.remove();var o=document.createElement("iframe");o.id=i,o.title="ThreeDSecure",o.style.display="block",o.style.border="0px",o.style.padding="0px",o.style.margin="0px",o.style.width="100%",o.style.height="100%",o.src=n(this.secureFields.frameUrl+"/threeds.html",{sessionId:this.secureFields.config.sessionId,parentOrigin:this.secureFields.parentOrigin,gr4vyId:this.secureFields.config.gr4vyId,environment:this.secureFields.config.environment}),this.element.appendChild(o),this.controller=o;var a={type:"three-ds-init",channel:l,data:{challengeWindowSize:this.challengeWindowSize}};return o.addEventListener("load",(()=>{var e;null===(e=o.contentWindow)||void 0===e||e.postMessage(a,this.secureFields.frameUrl)}),{once:!0}),this.secureFields.controller.addEventListener("load",(()=>{this.secureFields.controller.contentWindow.postMessage(a,this.secureFields.frameUrl)}),{once:!0}),v.remove("message",this.listener.bind(this),"three-ds"),v.add("message",this.listener.bind(this),"three-ds"),this}listener(e){return(t=function*(){if(e.origin===this.secureFields.frameUrl){var t=e.data,r=t.type,n=t.data;switch(r){case o.THREE_DS_START:y.publish(o.THREE_DS_START,A(T({},n),{element:this.element})),I("3DS start",e.data.data);break;case o.THREE_DS_FINISH:y.publish(o.THREE_DS_FINISH,A(T({},n),{element:this.element})),I("3DS finish",e.data.data)}}},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){C(o,n,i,a,s,"next",e)}function s(e){C(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var t}constructor(e){E(this,"secureFields",void 0),E(this,"controller",void 0),E(this,"challengeWindowSize",void 0),E(this,"element",void 0),this.secureFields=e}}function S(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}class w extends Error{constructor(e){super(e),this.name="UnableToLoadDpaError"}}var k=(e,t)=>e&&(e.style.display=t?"block":"none"),N=e=>{var t,r;if(null===(t=document)||void 0===t?void 0:t.cookie)return null===(r="; ".concat(document.cookie).match(";\\s*".concat(e,"=([^;]+)")))||void 0===r?void 0:r[1]};function L(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function D(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){L(o,n,i,a,s,"next",e)}function s(e){L(o,n,i,a,s,"throw",e)}a(void 0)}))}}function R(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(){return U=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},U.apply(this,arguments)}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){R(e,t,r[t])}))}return e}class F{_addIframe(e,t,r,i){var o=document.createElement("iframe");return o.id=e,o.title=t,o.setAttribute("width","100%"),o.setAttribute("frameborder","0"),o.setAttribute("style","height:0px"),o.src=n(r,i),o}_attachListeners(){var e=new MessageChannel,t=!0,r=r=>{var n=r.origin,i=r.data,s=i.type,d=i.data;switch(n){case this.origin:switch(s){case o.RESIZE:this.controller.style.height="".concat(d.height>0?d.height+48:0,"px");break;case o.METHOD_CHANGE:var h=d.method||"card";(this.secureFields.method!==h||t)&&(t=!1,this.secureFields.updateMethod(h,{data:d}),k(this.cardForm,"card"===h),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,"card"===h));break;case o.CLICK_TO_PAY_INITIALIZED:y.publish(o.CLICK_TO_PAY_INITIALIZED,this.clickToPay),I("Click to Pay initialized",this.clickToPay),k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),k(this.clickToPay.element,!0),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!0);break;case o.CLICK_TO_PAY_READY:this._buyerExists=d.buyerExists,y.publish(o.CLICK_TO_PAY_READY,d),I("Click to Pay ready"),k(this.signIn,!d.buyerExists),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!d.buyerExists),k(this.clickToPay.element,!0),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!0);break;case o.CLICK_TO_PAY_SIGN_OUT:this.clickToPay.signOut();break;case o.CLICK_TO_PAY_ERROR:y.publish(o.CLICK_TO_PAY_ERROR,d),I("Click to Pay error:",d),k(this.signIn,!["UNKNOWN","INVALID_CARD","CODE_INVALID"].includes(d.error)),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!["UNKNOWN","INVALID_CARD","CODE_INVALID"].includes(d.error)),k(this.clickToPay.element,"UNKNOWN"!==d.error),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,"UNKNOWN"!==d.error);break;case o.CLICK_TO_PAY_CANCEL:y.publish(o.CLICK_TO_PAY_CANCEL,d),I("Click to Pay cancelled"),this._buyerExists||(k(this.signIn,!0),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!0));break;case o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD:y.publish(o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD,d),k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),I("Click to Pay checkout with new card initiated");break;case o.CLICK_TO_PAY_PROCESSING:k(this.cardForm,!d),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,d),I("Click to Pay processing",d);break;case o.CLICK_TO_PAY_AUTHENTICATE:!function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),i=2;i<r;i++)n[i-2]=arguments[i];document.cookie="".concat(e,"=").concat(t,"; path=/; ").concat(n.join("; "))}("recognitionToken",d.recognitionToken,"Secure","SameSite=Strict","MaxAge=15552000");break;case o.CLICK_TO_PAY_AUTHENTICATE_FAILURE:y.publish(o.CLICK_TO_PAY_AUTHENTICATE_FAILURE,d),I("Click to Pay authenticate failure:",d);break;case a.REQUEST_RECOGNITION_TOKEN:this.controller.contentWindow.postMessage({channel:l,type:a.RECOGNITION_TOKEN,data:{recognitionToken:N("recognitionToken")}},this.origin);break;case a.REQUEST_RECOGNITION_TOKEN_FAILED:O(c.NO_RECOGNITION_TOKEN);break;case a.REQUEST_PORT:this.controller.contentWindow.postMessage({channel:l,type:a.TRANSFER_PORT},this.origin,[e.port1])}break;case this.secureFields.frameUrl:s===a.REQUEST_PORT&&this.encrypt.contentWindow.postMessage({channel:l,type:a.TRANSFER_PORT},this.secureFields.frameUrl,[e.port2])}};v.remove("message",r,"click-to-pay"),v.add("message",r,"click-to-pay")}_fetchDPA(e,t){return D((function*(e,t){var n=t.gr4vyId,i=t.environment,a=t.sessionId;try{var s=e||function(e){return r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production","api")}(n,i);return yield function(e){return(t=function*(e){var t=e.apiBaseUrl,r=e.checkoutSessionId;try{var n="".concat(t,"/digital-wallets/click-to-pay/session"),i=yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({checkout_session_id:r})});if(i.ok){var o=yield i.json();return{srcDpaId:o.digital_payment_application_id,dpaName:o.digital_payment_application_name}}throw new w("Unable to load DPA")}catch(e){throw new w("Unable to load DPA")}},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){S(o,n,i,a,s,"next",e)}function s(e){S(o,n,i,a,s,"throw",e)}a(void 0)}))}).apply(this,arguments);var t}({apiBaseUrl:s,checkoutSessionId:a})}catch(e){return I(e.message),y.publish(o.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA),k(this.cardForm,!0),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,!0),k(this.clickToPay.element,!1),void y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!1)}})).apply(this,arguments)}_initConsentCheckbox(e){var t=e.checked?"click-to-pay":"card";this.secureFields.updateMethod(t,{data:{method:t}}),e.addEventListener("change",(e=>{var t=e.target;this.consent=t.checked})),v.add("message",(t=>{switch(t.data.type){case o.CLICK_TO_PAY_ERROR:"UNKNOWN"===t.data.data.error&&(this.consent=!1,e.checked=!1);break;case o.METHOD_CHANGE:var r=this._buyerExists&&"card"===t.data.data.method;this.consent=r,e.checked=r}}),"click-to-pay-consent-checkbox")}_setNewCardRememberMe(e){this.controller.contentWindow.postMessage({type:"remember-me-new-card-changed",channel:l,data:{value:e}},this.origin)}_initNewCardRememberMeCheckbox(e){e.addEventListener("change",(e=>{var t=e.target;this._setNewCardRememberMe(t.checked)})),v.add("message",(t=>{switch(t.data.type){case o.CLICK_TO_PAY_INITIALIZED:this._setNewCardRememberMe(e.checked);break;case o.CLICK_TO_PAY_ERROR:"UNKNOWN"===t.data.data.error&&(this._setNewCardRememberMe(!1),e.checked=!1)}}),"click-to-pay-new-card-remember-me-checkbox")}_initLearnMore(e){e.style.visibility="hidden",v.add("message",(t=>{t.data.type===o.CLICK_TO_PAY_INITIALIZED&&(e.style.visibility="visible",e.addEventListener("click",(()=>{this.controller.contentWindow.postMessage({type:"show-learn-more",channel:l},this.origin)})))}),"click-to-pay-learn-more")}init(e,t){return D((function*(){this.cardForm="string"==typeof(null==t?void 0:t.cardForm)?document.querySelector(null==t?void 0:t.cardForm):null==t?void 0:t.cardForm,this.signIn="string"==typeof(null==t?void 0:t.signIn)?document.querySelector(null==t?void 0:t.signIn):null==t?void 0:t.signIn,k(this.signIn,!1);var r=this.secureFields,n=r.apiUrl,i=r.config,a=i.gr4vyId,s=i.environment,c=i.sessionId,l=r.environmentPath;if(this.clickToPay={element:null,options:t,signIn:e=>{var t=e.email,r=e.mobileNumber;return D((function*(){var e=this.clickToPay,n=e.element,i=e.options;delete i.email,delete i.mobileNumber,n.innerHTML="",k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),k(this.cardForm,!1),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,!1),this.secureFields.update("clickToPay",yield this.init(n,j({},i,t?{email:t}:{},r?{mobileNumber:r}:{})))})).call(this)},signOut:()=>(this._buyerExists=!1,y.publish(o.CLICK_TO_PAY_SIGN_OUT),I("Click to pay signed out"),k(this.signIn,!0),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!0),document.cookie="".concat("recognitionToken","=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;"),this.clickToPay.signIn({email:null,mobileNumber:null})),updateCheckoutOptions:e=>{this.checkoutOptions=j({},this.checkoutOptions,e)}},!(null==t?void 0:t.srcDpaId)||!(null==t?void 0:t.dpaName)){var d=yield this._fetchDPA(n,{gr4vyId:a,environment:s,sessionId:c});if(!(null==d?void 0:d.srcDpaId)&&!(null==d?void 0:d.dpaName))return;t.srcDpaId=d.srcDpaId,t.dpaName=d.dpaName}this.url=window.CLICK_TO_PAY_FRAME_URL||"https://click-to-pay.".concat(l).concat(a,".gr4vy.app"),this.origin=new URL(this.url).origin;var h=window.location.origin,u=(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),j({gr4vyId:a,environment:s,sessionId:c},U({},t)));if(this.controller=this._addIframe("click-to-pay-controller","Click To Pay","".concat(this.url,"/click-to-pay.html"),{parentOrigin:h,environment:s,config:encodeURIComponent(JSON.stringify(u))}),this.encrypt=this._addIframe("click-to-pay-encrypt","Click To Pay Encrypt","".concat(this.secureFields.frameUrl,"/click-to-pay-encrypt.html"),{parentOrigin:h,environment:s,config:encodeURIComponent(JSON.stringify(u))}),this._attachListeners(),null==t?void 0:t.consentCheckbox){var p="string"==typeof(null==t?void 0:t.consentCheckbox)?document.querySelector(null==t?void 0:t.consentCheckbox):null==t?void 0:t.consentCheckbox;p&&this._initConsentCheckbox(p)}if(null==t?void 0:t.rememberMeCheckbox){var m="string"==typeof(null==t?void 0:t.rememberMeCheckbox)?document.querySelector(t.rememberMeCheckbox):null==t?void 0:t.rememberMeCheckbox;m&&this._initNewCardRememberMeCheckbox(m)}if(null==t?void 0:t.learnMoreLink){var f="string"==typeof(null==t?void 0:t.learnMoreLink)?document.querySelector(null==t?void 0:t.learnMoreLink):null==t?void 0:t.learnMoreLink;f&&this._initLearnMore(f)}return(e="string"==typeof e?document.querySelector(e):e).appendChild(this.controller),e.appendChild(this.encrypt),this.clickToPay.element=e,this.clickToPay})).call(this)}constructor(e){R(this,"secureFields",void 0),R(this,"_buyerExists",void 0),R(this,"consent",void 0),R(this,"controller",void 0),R(this,"encrypt",void 0),R(this,"origin",void 0),R(this,"url",void 0),R(this,"cardForm",void 0),R(this,"signIn",void 0),R(this,"checkoutOptions",void 0),R(this,"clickToPay",void 0),this.secureFields=e,this._buyerExists=!1,this.consent=!1,this.checkoutOptions={}}}var M=e=>(e!=e.toLowerCase()&&(e=e.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),e);function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Y=function(){var e=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.entries(t).reduce(((n,i)=>{var o,a,s=(a=2,function(e){if(Array.isArray(e))return e}(o=i)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(o,a)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(e,t):void 0}}(o,a)||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.")}()),c=s[0],l=s[1];return(e=>"[object Object]"===Object.prototype.toString.call(e))(l)?n.push(...e(t[c],"".concat((r+c).match(/[a-zA-Z0-9]+/g).join("-"),"-"))):(c=M(c).replace(/^-/,""),n.push(["--".concat(r).concat(c),l])),n}),[])};return e(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})};function K(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function H(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){H(e,t,r[t])}))}return e}function V(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class W{_postMessage(e){return(t=function*(){yield this.ready,this.frame.contentWindow.postMessage(G({channel:l},e),this.frameUrl)},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){K(o,n,i,a,s,"next",e)}function s(e){K(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var t}update(e){if(this.frameUrl){this.options=G({},this.options,e);var t=Y(G({},this.options.styles,e.styles)),r=V(G({},this.options,e),{styles:t});this._postMessage({type:"update",data:V(G({},r),{styles:t})}),I("Updated field",this.options)}}setPlaceholder(e){this.update({placeholder:e})}setStyles(e){this.update({styles:e})}clear(){if(this.frameUrl){var e=this.type;this._postMessage({type:"reset",data:{type:e}}),I("Cleared field",{type:e})}}focus(){if(this.frameUrl){var e=this.type;this._postMessage({type:"focus",data:{type:e}}),I("Focus field",{type:e})}}redactValue(){if(this.frameUrl){var e=this.type;this._postMessage({type:"redact-value",data:{type:e}}),I("Redact field",{type:e})}}unredactValue(){if(this.frameUrl){var e=this.type;this._postMessage({type:"unredact-value",data:{type:e}}),I("Unredact field",{type:e})}}setEnterKeyHint(e){if(this.frameUrl){var t=this.type;this._postMessage({type:"set-enter-key-hint",data:{type:t,value:e}}),I("Updated enter key hint",{type:t,value:e})}}constructor(e){if(H(this,"frameUrl",void 0),H(this,"parentOrigin",void 0),H(this,"frame",void 0),H(this,"type",void 0),H(this,"options",void 0),H(this,"addEventListener",void 0),H(this,"removeEventListener",void 0),H(this,"ready",void 0),H(this,"_resolveReady",void 0),H(this,"complete",void 0),e){this.ready=new Promise((e=>{this._resolveReady=e}));var t=e.frameUrl,r=e.parentOrigin,i=e.font,o=e.sessionId,a=e.gr4vyId,s=e.environment,c=e.options,l=c.type,d=c.autoFocus,h=function(e,t){if(null==e)return{};var r,n,i,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var r,n,i={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r]);return i}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(c,["type","autoFocus"]),u=e.paymentMethodScheme;this.frameUrl=t,this.parentOrigin=r,this.type=l,this.options=h;var p=Y(h.styles),y={parentOrigin:r,type:l,sessionId:o,gr4vyId:a,environment:s};this.frame=document.createElement("iframe"),this.frame.id=l,this.frame.src=n("".concat(t,"/input.html"),y),this.frame.title="Secure Input",this.frame.style.display="block",this.frame.style.height="100%",this.frame.style.border="none",this.frame.style.width="100%",i&&(this.frame.src+="&font=".concat(i)),u&&(this.frame.src+="&paymentMethodScheme=".concat(u)),this.frame.onload=()=>{this._postMessage({type:"update",data:V(G({},this.options),{styles:p,type:l})}),I("Added field",this.options),d&&this.focus()}}}}var B=["number","expiryDate","securityCode","postalCode"],q=["accesskey","autocapitalize","autocomplete","autofocus","aria-.","class","contenteditable","data-.","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","onabort","onautocomplete","onautocompleteerror","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onsort","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting","popover","role","slot","spellcheck","style","tabindex","title","translate"];function z(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Z=["visa","mastercard","amex"];function Q(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function J(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){J(e,t,r[t])}))}return e}function X(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function ee(e,t){if(null==e)return{};var r,n,i,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var r,n,i={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r]);return i}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}class te{static get Events(){return o}static get version(){return"#bf0b68b64203083680e2460ee044a8dd06f5cae7"}update(e,t){this[e]=t}updateMethod(e,t){var r=t.data;this.update("method",e),y.publish(o.METHOD_CHANGE,r),I("Method changed",{method:e}),this.controller.contentWindow.postMessage({type:"method-change",channel:l},this.frameUrl)}setAutoAdvance(e){e.enabled&&(O(c.AUTO_ADVANCE_ENABLED),this.autoAdvance=(e=>{var t=e.enabled,r=e.secureFields,n=(e=>{if(!(null==e?void 0:e.length))return B;var t=e.filter(((t,r)=>B.includes(t)&&e.indexOf(t)===r)),r=B.filter((e=>!t.includes(e)));return[...t,...r]})(e.fieldOrder),i=e=>e?"number"===e?r.cardNumber:"expiryDate"===e?r.expiryDate:"securityCode"===e?r.securityCode:r.otherFields[e]:null,o=e=>{var t=e.type,r=e.nextIndex,a=null!=r?r:n.indexOf(t);if(!(a<0||a>=n.length-1)){var s=i(n[a+1]);!(null==s?void 0:s.complete)&&(null==s?void 0:s.frame)?s.focus():o({nextIndex:a+1})}};return{get enabled(){return t},get fieldOrder(){return n},updateEnterKeyHint:e=>{var r;if(null==e?void 0:e.frame){var o=n.indexOf(e.type),a=n[o+1],s=a&&(null===(r=i(a))||void 0===r?void 0:r.frame);e.setEnterKeyHint(t&&s?"next":"done")}},trigger:o}})(X($({},e),{secureFields:this})))}_addField(e,t,r){if(!(e="string"==typeof e?document.querySelector(e):e)||!t.frame)return t.addEventListener=()=>{},t.removeEventListener=()=>{},t;var n=e.closest("[data-secure-fields-input-group]"),i=null!=n?n:document.createElement("div"),o=e=>{var r;if(e.origin===this.frameUrl&&(null===(r=e.data.data)||void 0===r?void 0:r.id)===t.type)switch(e.data.type){case"blur":y.publish("".concat(t.type,":blur"),e.data.data),i.removeAttribute(s.FOCUSED),I("Field blurred",e.data.data);break;case"focus":y.publish("".concat(t.type,":focus"),e.data.data),i.setAttribute(s.FOCUSED,""),I("Field focused",e.data.data);break;case"input":var n,o=e.data.data,a=o.complete,c=o.fromBlur,l=o.isDeleteInputType,d=ee(o,["complete","fromBlur","isDeleteInputType"]);if(y.publish("".concat(t.type,":input"),d),t.complete=a,e.data.data.valid?i.removeAttribute(s.INVALID):i.setAttribute(s.INVALID,""),e.data.data.autofilled?i.setAttribute(s.AUTOFILLED,""):i.removeAttribute(s.AUTOFILLED),(null===(n=this.autoAdvance)||void 0===n?void 0:n.enabled)&&a&&!d.autofilled&&!1===c&&!l&&this.autoAdvance.trigger({type:t.type}),this.schemeIcons&&"number"===t.type){var h,u,p;d.bin||(this.cardDetailsSchemes={scheme:void 0,additionalSchemes:[]});var m=null!==(h=null===(u=this.cardDetailsSchemes)||void 0===u?void 0:u.scheme)&&void 0!==h?h:d.schema,f=null===(p=this.cardDetailsSchemes)||void 0===p?void 0:p.additionalSchemes;!m&&d.empty&&this.schemeIcons.config.placeholders?this.schemeIcons.showPlaceholders():m?this.schemeIcons.showSchemes({scheme:m,additionalSchemes:f}):this.schemeIcons.hideSchemes()}I("Field input changed",d);break;case"redacted":y.publish("".concat(t.type,":redacted"),e.data.data),I("Field redacted",e.data.data);break;case"unredacted":y.publish("".concat(t.type,":unredacted"),e.data.data),I("Field unredacted",e.data.data);break;case"card-details-changed":var v;y.publish("".concat(t.type,":card-details-changed"),e.data.data),this.schemeIcons&&(this.cardDetailsSchemes={scheme:e.data.data.scheme,additionalSchemes:null!==(v=e.data.data.additionalSchemes)&&void 0!==v?v:[]},this.schemeIcons.showSchemes(this.cardDetailsSchemes)),I("Card details changed",e.data.data)}};return v.remove("message",o,t.type),v.add("message",o,t.type),t.addEventListener=this.addEventListener,t.removeEventListener=this.removeEventListener,this.controllerReady.then((()=>{var o,a,s,c;o=e,a=i,Array.from(o.attributes).forEach((e=>{var t=e.name,r=e.value;q.some((e=>new RegExp(e).test(t)))&&a.setAttribute(t,r)})),(i=a).classList.add("secure-fields__input","secure-fields__input--".concat(M(t.type))),n?(null===(s=e.parentNode)||void 0===s||s.replaceChild(t.frame,e),n.style.display="inline-flex",n.style.alignItems="center",t.frame.style.minWidth="0"):(null===(c=e.parentNode)||void 0===c||c.replaceChild(i,e),i.appendChild(t.frame)),"number"===t.type&&(null==r?void 0:r.showSchemeIcons)&&(i.style.display="inline-flex",i.style.alignItems="center",this.schemeIcons=(e=>{var t=e.baseUrl,r=(e=>{var t={scheme:!1,additionalSchemes:!1,placeholders:!1};return"boolean"==typeof e?e?{scheme:!0,additionalSchemes:!0,placeholders:!1}:t:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){z(e,t,r[t])}))}return e}({},t,e)})(e.showSchemeIcons),n=new Set,i=document.createElement("div");i.classList.add("secure-fields__scheme-icons"),i.style.display="flex",i.style.gap="4px",i.style.marginRight="4px";var o=Array.from({length:3},(()=>{var e=document.createElement("img");return e.setAttribute("alt",""),e.setAttribute("aria-hidden","true"),e.style.display="none",e.onerror=()=>{var t=e.getAttribute("src");t&&n.add(t),e.style.display="none"},e.onload=()=>{e.style.display="block"},i.appendChild(e),e})),a=e=>{var i=e.scheme,a=void 0===i?"":i,s=e.additionalSchemes,c=void 0===s?[]:s,l=e.placeholders,d=void 0!==l&&l,h=[...r.scheme&&a?[a]:[],...r.additionalSchemes&&c.length?c:[],...d?Z:[]].slice(0,3);o.forEach(((e,r)=>{var i=h[r];if(i){var o="".concat(t,"/").concat(i,".svg");e.getAttribute("src")!==o?(e.setAttribute("src",o),e.width=48):n.has(o)||(e.style.display="block")}else e.style.display="none"}))};return{config:r,container:i,slots:o,showSchemes:a,showPlaceholders:()=>a({placeholders:!0}),hideSchemes:()=>o.forEach((e=>e.style.display="none"))}})({baseUrl:"".concat(this.cdnBaseUrl,"/assets/icons/card-schemes"),showSchemeIcons:r.showSchemeIcons}),t.frame.after(this.schemeIcons.container),this.schemeIcons.config.placeholders&&this.schemeIcons.showPlaceholders()),t._resolveReady(),t.frame.addEventListener("load",(()=>{var e;return null===(e=this.autoAdvance)||void 0===e?void 0:e.updateEnterKeyHint(t)}))})),t}addCardNumberField(e,t){return this.paymentMethodId&&O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addCardNumberField"}),this.cardNumber||(this.cardNumber=new W(X($({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,sessionId:this.config.sessionId,gr4vyId:this.config.gr4vyId,environment:this.config.environment},this.paymentMethodId?{paymentMethodId:this.paymentMethodId}:{}),{options:X($({label:"Card number"},t),{type:"number"})}))),this._addField(e,this.cardNumber,t)}addSecurityCodeField(e,t){var r,n;return this.securityCode||(this.securityCode=new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:X($({label:"Security code"},this.paymentMethodId&&!(null===(r=this.config.paymentMethod)||void 0===r?void 0:r.scheme)?{lengths:[3,4]}:{},t),{type:"securityCode"}),paymentMethodScheme:null===(n=this.config.paymentMethod)||void 0===n?void 0:n.scheme})),this._addField(e,this.securityCode)}addExpiryDateField(e,t){return this.paymentMethodId&&O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addExpiryDateField"}),this.expiryDate||(this.expiryDate=new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:X($({label:"Expiry date"},t),{type:"expiryDate"})})),this._addField(e,this.expiryDate)}addField(e,t){if(["number","expiryDate","securityCode"].includes(t.type)){t.pattern&&O(c.FIELD_PATTERN_IN_USE,$({method:"addField"},t)),t.pattern,t.type;var r=ee(t,["pattern","type"]);return this[d[t.type]](e,r)}return this.otherFields[t.type]||(this.otherFields=X($({},this.otherFields),{[t.type]:new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:t})})),this._addField(e,this.otherFields[t.type])}addThreeDSecure(e,t){this.threeDS||(this.threeDS=new P(this),this.threeDS.init(e,t))}addClickToPay(e,t){return(r=function*(){if(!this.paymentMethodId)return this.clickToPayInstance=yield new F(this),this.clickToPay=yield this.clickToPayInstance.init(e,t),this.clickToPay;O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addClickToPay"})},function(){var e=this,t=arguments;return new Promise((function(n,i){var o=r.apply(e,t);function a(e){Q(o,n,i,a,s,"next",e)}function s(e){Q(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var r}addEventListener(e,t){var r=this.type,n="".concat(this.constructor===W?"".concat(r,":"):"").concat(e);y.subscribe(n,t)}removeEventListener(e,t){var r=this.type,n="".concat(this.constructor===W?"".concat(r,":"):"").concat(e);y.unsubscribe(n,t)}submit(){var e,t,r,n=e=>{var t,r=[this.frameUrl,null===(t=this.clickToPayInstance)||void 0===t?void 0:t.origin].includes(e.origin),i=e.data.channel===l,a=["success","error"].includes(e.data.type);if(r&&i&&a){switch(e.data.type){case"success":var s;y.publish(o.CARD_VAULT_SUCCESS,e.data.data),(null===(s=e.data.data)||void 0===s?void 0:s.warn)&&(O(e.data.data.warn),delete e.data.data.warn),I("Payment method tokenized successfully",e.data.data);break;case"error":y.publish(o.CARD_VAULT_FAILURE,e.data),I("Failed to update checkout session",e.data.data)}window.removeEventListener("message",n)}};window.addEventListener("message",n),"click-to-pay"===this.method||"card"===this.method&&(null===(e=this.clickToPayInstance)||void 0===e?void 0:e.controller)&&!0===(null===(t=this.clickToPayInstance)||void 0===t?void 0:t.consent)?this.clickToPayInstance.controller.contentWindow.postMessage({type:"submit",channel:l,data:{checkoutOptions:null===(r=this.clickToPayInstance)||void 0===r?void 0:r.checkoutOptions}},this.clickToPayInstance.url):this.controller.contentWindow.postMessage({type:"submit",channel:l,data:{method:this.paymentMethodId?"id":"card"}},this.frameUrl)}setDebug(e){localStorage.setItem(i,String(e))}addFont(e){this.font=e.replace(/\s/g,"+")}constructor(e){var t,i;J(this,"config",void 0),J(this,"controller",void 0),J(this,"frameUrl",void 0),J(this,"apiUrl",void 0),J(this,"cdnBaseUrl",void 0),J(this,"parentOrigin",void 0),J(this,"font",void 0),J(this,"cardNumber",void 0),J(this,"securityCode",void 0),J(this,"expiryDate",void 0),J(this,"otherFields",{}),J(this,"method","card"),J(this,"clickToPayInstance",void 0),J(this,"clickToPay",void 0),J(this,"threeDS",void 0),J(this,"environmentPath",void 0),J(this,"paymentMethodId",void 0),J(this,"autoAdvance",null),J(this,"schemeIcons",null),J(this,"cardDetailsSchemes",null),J(this,"controllerReady",void 0),J(this,"_resolveControllerReady",void 0),y.unsubscribeAll(),this.config=$({environment:"production"},e),this.controllerReady=new Promise((e=>{var t=Date.now();this._resolveControllerReady=()=>e(Date.now()-t)})),this.config.paymentMethodId&&!this.config.paymentMethod&&O(c.PAYMENT_METHOD_ID_DEPRECATED),this.environmentPath="sandbox"===this.config.environment?"sandbox.":"",this.frameUrl=window.SECURE_FIELDS_FRAME_URL||"https://secure-fields.".concat(this.environmentPath).concat(this.config.gr4vyId,".gr4vy.app"),this.parentOrigin=window.location.origin,this.paymentMethodId=(null===(t=this.config.paymentMethod)||void 0===t?void 0:t.id)||this.config.paymentMethodId,this.cdnBaseUrl=function(e){return r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production","cdn")}(this.config.gr4vyId,this.config.environment);var a=$({parentOrigin:this.parentOrigin,sessionId:this.config.sessionId,gr4vyId:this.config.gr4vyId,environment:this.config.environment},this.paymentMethodId?{paymentMethodId:this.paymentMethodId}:{});null===(i=document.body.querySelector("iframe#controller[src*=secure-fields]"))||void 0===i||i.remove(),this.controller=document.createElement("iframe"),this.controller.id="controller",this.controller.src=n("".concat(this.frameUrl,"/controller.html"),a),this.controller.title="Secure Controller",this.controller.style.position="absolute",this.controller.style.left="-9999999px",document.body.appendChild(this.controller),this.paymentMethodId&&(this.cardNumber=new W,this.expiryDate=new W),I("Initialized",X($({},this.config),{version:te.version,frameUrl:this.frameUrl,parentOrigin:this.parentOrigin}));var s=e=>{if(e.origin===this.frameUrl)switch(e.data.type){case"ready":var t=$({version:te.version},this.config);y.publish(o.READY,t),this._resolveControllerReady(),I("Ready",t);break;case"form-change":y.publish(o.FORM_CHANGE,e.data.data),I("Form change",e.data.data)}};v.remove("message",s,"init"),v.add("message",s,"init"),this.controllerReady.then((e=>I("Loaded controller after ".concat(e," milliseconds"))))}}return t})()));
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Events:()=>o,SecureFields:()=>te,SecureInput:()=>W});var r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production";return"https://".concat(arguments.length>2?arguments[2]:void 0,".").concat("sandbox"===t?"sandbox.":"").concat(e,".gr4vy.app")},n=(e,t)=>"".concat(e,"?").concat(new URLSearchParams(t).toString()),i="@gr4vy-secure-fields-debug",o=function(e){return e.CARD_VAULT_SUCCESS="card-vault-success",e.CARD_VAULT_FAILURE="card-vault-failure",e.FORM_CHANGE="form-change",e.METHOD_CHANGE="method-change",e.READY="ready",e.RESIZE="resize",e.CLICK_TO_PAY_INITIALIZED="click-to-pay-initialized",e.CLICK_TO_PAY_READY="click-to-pay-ready",e.CLICK_TO_PAY_SIGN_OUT="click-to-pay-sign-out",e.CLICK_TO_PAY_ERROR="click-to-pay-error",e.CLICK_TO_PAY_CANCEL="click-to-pay-cancel",e.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD="click-to-pay-checkout-with-new-card",e.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA="click-to-pay-unable-to-load-dpa",e.CLICK_TO_PAY_VISIBILITY_CHANGE="click-to-pay:visibility-change",e.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE="click-to-pay-card-form:visibility-change",e.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE="click-to-pay-sign-in:visibility-change",e.CLICK_TO_PAY_PROCESSING="click-to-pay-processing",e.CLICK_TO_PAY_AUTHENTICATE="click-to-pay-authenticate",e.CLICK_TO_PAY_AUTHENTICATE_FAILURE="click-to-pay-authenticate-failure",e.THREE_DS_START="three-ds-start",e.THREE_DS_FINISH="three-ds-finish",e}({}),a=function(e){return e.REQUEST_PORT="request-port",e.TRANSFER_PORT="transfer-port",e.REQUEST_RECOGNITION_TOKEN="request-recognition-token",e.REQUEST_RECOGNITION_TOKEN_FAILED="request-recognition-token-failed",e.RECOGNITION_TOKEN="recognition-token",e}({}),s=function(e){return e.FOCUSED="data-secure-fields-focused",e.INVALID="data-secure-fields-invalid",e.AUTOFILLED="data-secure-fields-autofilled",e}({}),c=function(e){return e.PAYMENT_METHOD_ID_IN_USE="You're passing a paymentMethodId to use a stored payment method, which means Secure Fields methods `addCardNumber`, `addExpiryDate` and `addClickToPay` are automatically disabled and won't render the related fields",e.PAYMENT_METHOD_ID_DEPRECATED="The 'paymentMethodId' prop is deprecated and will be removed in a future version. Please use the 'paymentMethod' prop instead: { paymentMethod: { id: 'your-id', scheme: 'visa' } }",e.FIELD_PATTERN_IN_USE="The `pattern` option can't be used on card fields, so it won't be applied here.",e.AUTO_ADVANCE_ENABLED="autoAdvance is enabled. Auto-advancing focus on field completion can degrade checkout UX (see WCAG 3.2.2). Use with caution.",e.NO_RECOGNITION_TOKEN="The recognition token couldn't be obtained or the request took too much time. It is possible that a Click to Pay user was therefore not recognised.",e}({}),l="secure-fields",d={number:"addCardNumberField",expiryDate:"addExpiryDateField",securityCode:"addSecurityCodeField"},h=["01","02","03","04","05"];function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e,t)||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.")}()}var y=new class{subscribe(e,t){this.subscribers.push([e,t])}unsubscribe(e,t){this.subscribers=this.subscribers.filter((r=>{var n=p(r,2),i=n[0],o=n[1];return i!==e||o.toString()!==t.toString()}))}unsubscribeAll(){this.subscribers=[]}publish(e,t){this.subscribers.forEach((r=>{var n=p(r,2),i=n[0],o=n[1];return setTimeout((()=>i===e?o(t):null),0)}))}constructor(){var e,t;t=void 0,(e="subscribers")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t,this.subscribers=[]}};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(e,t)||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.")}()}var v=new class{add(e,t,r){window.addEventListener(e,t),this.listeners.push([e,t,r])}remove(e,t,r){var n=this.listeners.findIndex((n=>{var i=f(n,3),o=i[0],a=i[1],s=i[2];return o===e&&a.toString()===t.toString()&&s===r}));if(-1!==n){var i=f(this.listeners.splice(n,1),1),o=f(i[0],2),a=o[0],s=o[1];window.removeEventListener(a,s)}}removeAll(){this.listeners.forEach((e=>{var t=f(e,2),r=t[0],n=t[1];window.removeEventListener(r,n)})),this.listeners=[]}constructor(){var e,t;t=[],(e="listeners")in this?Object.defineProperty(this,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):this[e]=t}};function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){b(e,t,r[t])}))}return e}var _={debug:!1,level:"log"},I=(e,t,r)=>{var n=g({},_,r),o=n.debug,a=n.level;(o||"true"===localStorage.getItem(i))&&console[a]("Gr4vy - Secure Fields - ".concat(e),t||{})},O=(e,t,r)=>{var n,i;I(e,t,(n=g({},r),i=null!=(i={level:"warn"})?i:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(i)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))})),n))};function C(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function E(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){E(e,t,r[t])}))}return e}function A(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class P{init(e,t){var r;this.challengeWindowSize=h.includes(null==t?void 0:t.challengeWindowSize)?t.challengeWindowSize:"05",this.element="string"==typeof e?document.querySelector(e):e;var i="gr4vy-threeds-flow-controller";null===(r=document.body.querySelector("iframe#".concat(i)))||void 0===r||r.remove();var o=document.createElement("iframe");o.id=i,o.title="ThreeDSecure",o.style.display="block",o.style.border="0px",o.style.padding="0px",o.style.margin="0px",o.style.width="100%",o.style.height="100%",o.src=n(this.secureFields.frameUrl+"/threeds.html",{sessionId:this.secureFields.config.sessionId,parentOrigin:this.secureFields.parentOrigin,gr4vyId:this.secureFields.config.gr4vyId,environment:this.secureFields.config.environment}),this.element.appendChild(o),this.controller=o;var a={type:"three-ds-init",channel:l,data:{challengeWindowSize:this.challengeWindowSize}};return o.addEventListener("load",(()=>{var e;null===(e=o.contentWindow)||void 0===e||e.postMessage(a,this.secureFields.frameUrl)}),{once:!0}),this.secureFields.controller.addEventListener("load",(()=>{this.secureFields.controller.contentWindow.postMessage(a,this.secureFields.frameUrl)}),{once:!0}),v.remove("message",this.listener.bind(this),"three-ds"),v.add("message",this.listener.bind(this),"three-ds"),this}listener(e){return(t=function*(){if(e.origin===this.secureFields.frameUrl){var t=e.data,r=t.type,n=t.data;switch(r){case o.THREE_DS_START:y.publish(o.THREE_DS_START,A(T({},n),{element:this.element})),I("3DS start",e.data.data);break;case o.THREE_DS_FINISH:y.publish(o.THREE_DS_FINISH,A(T({},n),{element:this.element})),I("3DS finish",e.data.data)}}},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){C(o,n,i,a,s,"next",e)}function s(e){C(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var t}constructor(e){E(this,"secureFields",void 0),E(this,"controller",void 0),E(this,"challengeWindowSize",void 0),E(this,"element",void 0),this.secureFields=e}}function S(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}class w extends Error{constructor(e){super(e),this.name="UnableToLoadDpaError"}}var k=(e,t)=>e&&(e.style.display=t?"block":"none"),N=e=>{var t,r;if(null===(t=document)||void 0===t?void 0:t.cookie)return null===(r="; ".concat(document.cookie).match(";\\s*".concat(e,"=([^;]+)")))||void 0===r?void 0:r[1]};function L(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function D(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){L(o,n,i,a,s,"next",e)}function s(e){L(o,n,i,a,s,"throw",e)}a(void 0)}))}}function R(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function U(){return U=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},U.apply(this,arguments)}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){R(e,t,r[t])}))}return e}class F{_addIframe(e,t,r,i){var o=document.createElement("iframe");return o.id=e,o.title=t,o.setAttribute("width","100%"),o.setAttribute("frameborder","0"),o.setAttribute("style","height:0px"),o.src=n(r,i),o}_attachListeners(){var e=new MessageChannel,t=!0,r=r=>{var n=r.origin,i=r.data,s=i.type,d=i.data;switch(n){case this.origin:switch(s){case o.RESIZE:this.controller.style.height="".concat(d.height>0?d.height+48:0,"px");break;case o.METHOD_CHANGE:var h=d.method||"card";(this.secureFields.method!==h||t)&&(t=!1,this.secureFields.updateMethod(h,{data:d}),k(this.cardForm,"card"===h),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,"card"===h));break;case o.CLICK_TO_PAY_INITIALIZED:y.publish(o.CLICK_TO_PAY_INITIALIZED,this.clickToPay),I("Click to Pay initialized",this.clickToPay),k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),k(this.clickToPay.element,!0),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!0);break;case o.CLICK_TO_PAY_READY:this._buyerExists=d.buyerExists,y.publish(o.CLICK_TO_PAY_READY,d),I("Click to Pay ready"),k(this.signIn,!d.buyerExists),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!d.buyerExists),k(this.clickToPay.element,!0),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!0);break;case o.CLICK_TO_PAY_SIGN_OUT:this.clickToPay.signOut();break;case o.CLICK_TO_PAY_ERROR:y.publish(o.CLICK_TO_PAY_ERROR,d),I("Click to Pay error:",d),k(this.signIn,!["UNKNOWN","INVALID_CARD","CODE_INVALID"].includes(d.error)),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!["UNKNOWN","INVALID_CARD","CODE_INVALID"].includes(d.error)),k(this.clickToPay.element,"UNKNOWN"!==d.error),y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,"UNKNOWN"!==d.error);break;case o.CLICK_TO_PAY_CANCEL:y.publish(o.CLICK_TO_PAY_CANCEL,d),I("Click to Pay cancelled"),this._buyerExists||(k(this.signIn,!0),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!0));break;case o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD:y.publish(o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD,d),k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),I("Click to Pay checkout with new card initiated");break;case o.CLICK_TO_PAY_PROCESSING:k(this.cardForm,!d),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,d),I("Click to Pay processing",d);break;case o.CLICK_TO_PAY_AUTHENTICATE:!function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),i=2;i<r;i++)n[i-2]=arguments[i];document.cookie="".concat(e,"=").concat(t,"; path=/; ").concat(n.join("; "))}("recognitionToken",d.recognitionToken,"Secure","SameSite=Strict","MaxAge=15552000");break;case o.CLICK_TO_PAY_AUTHENTICATE_FAILURE:y.publish(o.CLICK_TO_PAY_AUTHENTICATE_FAILURE,d),I("Click to Pay authenticate failure:",d);break;case a.REQUEST_RECOGNITION_TOKEN:this.controller.contentWindow.postMessage({channel:l,type:a.RECOGNITION_TOKEN,data:{recognitionToken:N("recognitionToken")}},this.origin);break;case a.REQUEST_RECOGNITION_TOKEN_FAILED:O(c.NO_RECOGNITION_TOKEN);break;case a.REQUEST_PORT:this.controller.contentWindow.postMessage({channel:l,type:a.TRANSFER_PORT},this.origin,[e.port1])}break;case this.secureFields.frameUrl:s===a.REQUEST_PORT&&this.encrypt.contentWindow.postMessage({channel:l,type:a.TRANSFER_PORT},this.secureFields.frameUrl,[e.port2])}};v.remove("message",r,"click-to-pay"),v.add("message",r,"click-to-pay")}_fetchDPA(e,t){return D((function*(e,t){var n=t.gr4vyId,i=t.environment,a=t.sessionId;try{var s=e||function(e){return r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production","api")}(n,i);return yield function(e){return(t=function*(e){var t=e.apiBaseUrl,r=e.checkoutSessionId;try{var n="".concat(t,"/digital-wallets/click-to-pay/session"),i=yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({checkout_session_id:r})});if(i.ok){var o=yield i.json();return{srcDpaId:o.digital_payment_application_id,dpaName:o.digital_payment_application_name}}throw new w("Unable to load DPA")}catch(e){throw new w("Unable to load DPA")}},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){S(o,n,i,a,s,"next",e)}function s(e){S(o,n,i,a,s,"throw",e)}a(void 0)}))}).apply(this,arguments);var t}({apiBaseUrl:s,checkoutSessionId:a})}catch(e){return I(e.message),y.publish(o.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA),k(this.cardForm,!0),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,!0),k(this.clickToPay.element,!1),void y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE,!1)}})).apply(this,arguments)}_initConsentCheckbox(e){var t=e.checked?"click-to-pay":"card";this.secureFields.updateMethod(t,{data:{method:t}}),e.addEventListener("change",(e=>{var t=e.target;this.consent=t.checked})),v.add("message",(t=>{switch(t.data.type){case o.CLICK_TO_PAY_ERROR:"UNKNOWN"===t.data.data.error&&(this.consent=!1,e.checked=!1);break;case o.METHOD_CHANGE:var r=this._buyerExists&&"card"===t.data.data.method;this.consent=r,e.checked=r}}),"click-to-pay-consent-checkbox")}_setNewCardRememberMe(e){this.controller.contentWindow.postMessage({type:"remember-me-new-card-changed",channel:l,data:{value:e}},this.origin)}_initNewCardRememberMeCheckbox(e){e.addEventListener("change",(e=>{var t=e.target;this._setNewCardRememberMe(t.checked)})),v.add("message",(t=>{switch(t.data.type){case o.CLICK_TO_PAY_INITIALIZED:this._setNewCardRememberMe(e.checked);break;case o.CLICK_TO_PAY_ERROR:"UNKNOWN"===t.data.data.error&&(this._setNewCardRememberMe(!1),e.checked=!1)}}),"click-to-pay-new-card-remember-me-checkbox")}_initLearnMore(e){e.style.visibility="hidden",v.add("message",(t=>{t.data.type===o.CLICK_TO_PAY_INITIALIZED&&(e.style.visibility="visible",e.addEventListener("click",(()=>{this.controller.contentWindow.postMessage({type:"show-learn-more",channel:l},this.origin)})))}),"click-to-pay-learn-more")}init(e,t){return D((function*(){this.cardForm="string"==typeof(null==t?void 0:t.cardForm)?document.querySelector(null==t?void 0:t.cardForm):null==t?void 0:t.cardForm,this.signIn="string"==typeof(null==t?void 0:t.signIn)?document.querySelector(null==t?void 0:t.signIn):null==t?void 0:t.signIn,k(this.signIn,!1);var r=this.secureFields,n=r.apiUrl,i=r.config,a=i.gr4vyId,s=i.environment,c=i.sessionId,l=r.environmentPath;if(this.clickToPay={element:null,options:t,signIn:e=>{var t=e.email,r=e.mobileNumber;return D((function*(){var e=this.clickToPay,n=e.element,i=e.options;delete i.email,delete i.mobileNumber,n.innerHTML="",k(this.signIn,!1),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!1),k(this.cardForm,!1),y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE,!1),this.secureFields.update("clickToPay",yield this.init(n,j({},i,t?{email:t}:{},r?{mobileNumber:r}:{})))})).call(this)},signOut:()=>(this._buyerExists=!1,y.publish(o.CLICK_TO_PAY_SIGN_OUT),I("Click to pay signed out"),k(this.signIn,!0),y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE,!0),document.cookie="".concat("recognitionToken","=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;"),this.clickToPay.signIn({email:null,mobileNumber:null})),updateCheckoutOptions:e=>{this.checkoutOptions=j({},this.checkoutOptions,e)}},!(null==t?void 0:t.srcDpaId)||!(null==t?void 0:t.dpaName)){var d=yield this._fetchDPA(n,{gr4vyId:a,environment:s,sessionId:c});if(!(null==d?void 0:d.srcDpaId)&&!(null==d?void 0:d.dpaName))return;t.srcDpaId=d.srcDpaId,t.dpaName=d.dpaName}this.url=window.CLICK_TO_PAY_FRAME_URL||"https://click-to-pay.".concat(l).concat(a,".gr4vy.app"),this.origin=new URL(this.url).origin;var h=window.location.origin,u=(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(t),j({gr4vyId:a,environment:s,sessionId:c},U({},t)));if(this.controller=this._addIframe("click-to-pay-controller","Click To Pay","".concat(this.url,"/click-to-pay.html"),{parentOrigin:h,environment:s,config:encodeURIComponent(JSON.stringify(u))}),this.encrypt=this._addIframe("click-to-pay-encrypt","Click To Pay Encrypt","".concat(this.secureFields.frameUrl,"/click-to-pay-encrypt.html"),{parentOrigin:h,environment:s,config:encodeURIComponent(JSON.stringify(u))}),this._attachListeners(),null==t?void 0:t.consentCheckbox){var p="string"==typeof(null==t?void 0:t.consentCheckbox)?document.querySelector(null==t?void 0:t.consentCheckbox):null==t?void 0:t.consentCheckbox;p&&this._initConsentCheckbox(p)}if(null==t?void 0:t.rememberMeCheckbox){var m="string"==typeof(null==t?void 0:t.rememberMeCheckbox)?document.querySelector(t.rememberMeCheckbox):null==t?void 0:t.rememberMeCheckbox;m&&this._initNewCardRememberMeCheckbox(m)}if(null==t?void 0:t.learnMoreLink){var f="string"==typeof(null==t?void 0:t.learnMoreLink)?document.querySelector(null==t?void 0:t.learnMoreLink):null==t?void 0:t.learnMoreLink;f&&this._initLearnMore(f)}return(e="string"==typeof e?document.querySelector(e):e).appendChild(this.controller),e.appendChild(this.encrypt),this.clickToPay.element=e,this.clickToPay})).call(this)}constructor(e){R(this,"secureFields",void 0),R(this,"_buyerExists",void 0),R(this,"consent",void 0),R(this,"controller",void 0),R(this,"encrypt",void 0),R(this,"origin",void 0),R(this,"url",void 0),R(this,"cardForm",void 0),R(this,"signIn",void 0),R(this,"checkoutOptions",void 0),R(this,"clickToPay",void 0),this.secureFields=e,this._buyerExists=!1,this.consent=!1,this.checkoutOptions={}}}var M=e=>(e!=e.toLowerCase()&&(e=e.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),e);function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Y=function(){var e=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.entries(t).reduce(((n,i)=>{var o,a,s=(a=2,function(e){if(Array.isArray(e))return e}(o=i)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(o,a)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(e,t):void 0}}(o,a)||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.")}()),c=s[0],l=s[1];return(e=>"[object Object]"===Object.prototype.toString.call(e))(l)?n.push(...e(t[c],"".concat((r+c).match(/[a-zA-Z0-9]+/g).join("-"),"-"))):(c=M(c).replace(/^-/,""),n.push(["--".concat(r).concat(c),l])),n}),[])};return e(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})};function K(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function H(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){H(e,t,r[t])}))}return e}function V(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class W{_postMessage(e){return(t=function*(){yield this.ready,this.frame.contentWindow.postMessage(G({channel:l},e),this.frameUrl)},function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(e){K(o,n,i,a,s,"next",e)}function s(e){K(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var t}update(e){if(this.frameUrl){this.options=G({},this.options,e);var t=Y(G({},this.options.styles,e.styles)),r=V(G({},this.options,e),{styles:t});this._postMessage({type:"update",data:V(G({},r),{styles:t})}),I("Updated field",this.options)}}setPlaceholder(e){this.update({placeholder:e})}setStyles(e){this.update({styles:e})}clear(){if(this.frameUrl){var e=this.type;this._postMessage({type:"reset",data:{type:e}}),I("Cleared field",{type:e})}}focus(){if(this.frameUrl){var e=this.type;this._postMessage({type:"focus",data:{type:e}}),I("Focus field",{type:e})}}redactValue(){if(this.frameUrl){var e=this.type;this._postMessage({type:"redact-value",data:{type:e}}),I("Redact field",{type:e})}}unredactValue(){if(this.frameUrl){var e=this.type;this._postMessage({type:"unredact-value",data:{type:e}}),I("Unredact field",{type:e})}}setEnterKeyHint(e){if(this.frameUrl){var t=this.type;this._postMessage({type:"set-enter-key-hint",data:{type:t,value:e}}),I("Updated enter key hint",{type:t,value:e})}}constructor(e){if(H(this,"frameUrl",void 0),H(this,"parentOrigin",void 0),H(this,"frame",void 0),H(this,"type",void 0),H(this,"options",void 0),H(this,"addEventListener",void 0),H(this,"removeEventListener",void 0),H(this,"ready",void 0),H(this,"_resolveReady",void 0),H(this,"complete",void 0),e){this.ready=new Promise((e=>{this._resolveReady=e}));var t=e.frameUrl,r=e.parentOrigin,i=e.font,o=e.sessionId,a=e.gr4vyId,s=e.environment,c=e.options,l=c.type,d=c.autoFocus,h=function(e,t){if(null==e)return{};var r,n,i,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var r,n,i={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r]);return i}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(c,["type","autoFocus"]),u=e.paymentMethodScheme;this.frameUrl=t,this.parentOrigin=r,this.type=l,this.options=h;var p=Y(h.styles),y={parentOrigin:r,type:l,sessionId:o,gr4vyId:a,environment:s};this.frame=document.createElement("iframe"),this.frame.id=l,this.frame.src=n("".concat(t,"/input.html"),y),this.frame.title="Secure Input",this.frame.style.display="block",this.frame.style.height="100%",this.frame.style.border="none",this.frame.style.width="100%",i&&(this.frame.src+="&font=".concat(i)),u&&(this.frame.src+="&paymentMethodScheme=".concat(u)),this.frame.onload=()=>{this._postMessage({type:"update",data:V(G({},this.options),{styles:p,type:l})}),I("Added field",this.options),d&&this.focus()}}}}var B=["number","expiryDate","securityCode","postalCode"],q=["accesskey","autocapitalize","autocomplete","autofocus","aria-.","class","contenteditable","data-.","dir","draggable","enterkeyhint","hidden","id","inert","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","onabort","onautocomplete","onautocompleteerror","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onsort","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting","popover","role","slot","spellcheck","style","tabindex","title","translate"];function z(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Z=["visa","mastercard","amex"];function Q(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function J(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){J(e,t,r[t])}))}return e}function X(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function ee(e,t){if(null==e)return{};var r,n,i,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var r,n,i={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r]);return i}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}class te{static get Events(){return o}static get version(){return"#9a81d78c7f635a91e2d4d1404007e2fa2e892d6e"}update(e,t){this[e]=t}updateMethod(e,t){var r=t.data;this.update("method",e),y.publish(o.METHOD_CHANGE,r),I("Method changed",{method:e}),this.controller.contentWindow.postMessage({type:"method-change",channel:l},this.frameUrl)}setAutoAdvance(e){e.enabled&&(O(c.AUTO_ADVANCE_ENABLED),this.autoAdvance=(e=>{var t=e.enabled,r=e.secureFields,n=(e=>{if(!(null==e?void 0:e.length))return B;var t=e.filter(((t,r)=>B.includes(t)&&e.indexOf(t)===r)),r=B.filter((e=>!t.includes(e)));return[...t,...r]})(e.fieldOrder),i=e=>e?"number"===e?r.cardNumber:"expiryDate"===e?r.expiryDate:"securityCode"===e?r.securityCode:r.otherFields[e]:null,o=e=>{var t=e.type,r=e.nextIndex,a=null!=r?r:n.indexOf(t);if(!(a<0||a>=n.length-1)){var s=i(n[a+1]);!(null==s?void 0:s.complete)&&(null==s?void 0:s.frame)?s.focus():o({nextIndex:a+1})}};return{get enabled(){return t},get fieldOrder(){return n},updateEnterKeyHint:e=>{var r;if(null==e?void 0:e.frame){var o=n.indexOf(e.type),a=n[o+1],s=a&&(null===(r=i(a))||void 0===r?void 0:r.frame);e.setEnterKeyHint(t&&s?"next":"done")}},trigger:o}})(X($({},e),{secureFields:this})))}_addField(e,t,r){if(!(e="string"==typeof e?document.querySelector(e):e)||!t.frame)return t.addEventListener=()=>{},t.removeEventListener=()=>{},t;var n=e.closest("[data-secure-fields-input-group]"),i=null!=n?n:document.createElement("div"),o=e=>{var r;if(e.origin===this.frameUrl&&(null===(r=e.data.data)||void 0===r?void 0:r.id)===t.type)switch(e.data.type){case"blur":y.publish("".concat(t.type,":blur"),e.data.data),i.removeAttribute(s.FOCUSED),I("Field blurred",e.data.data);break;case"focus":y.publish("".concat(t.type,":focus"),e.data.data),i.setAttribute(s.FOCUSED,""),I("Field focused",e.data.data);break;case"input":var n,o=e.data.data,a=o.complete,c=o.fromBlur,l=o.isDeleteInputType,d=ee(o,["complete","fromBlur","isDeleteInputType"]);if(y.publish("".concat(t.type,":input"),d),t.complete=a,e.data.data.valid?i.removeAttribute(s.INVALID):i.setAttribute(s.INVALID,""),e.data.data.autofilled?i.setAttribute(s.AUTOFILLED,""):i.removeAttribute(s.AUTOFILLED),(null===(n=this.autoAdvance)||void 0===n?void 0:n.enabled)&&a&&!d.autofilled&&!1===c&&!l&&this.autoAdvance.trigger({type:t.type}),this.schemeIcons&&"number"===t.type){var h,u,p;d.bin||(this.cardDetailsSchemes={scheme:void 0,additionalSchemes:[]});var m=null!==(h=null===(u=this.cardDetailsSchemes)||void 0===u?void 0:u.scheme)&&void 0!==h?h:d.schema,f=null===(p=this.cardDetailsSchemes)||void 0===p?void 0:p.additionalSchemes;!m&&d.empty&&this.schemeIcons.config.placeholders?this.schemeIcons.showPlaceholders():m?this.schemeIcons.showSchemes({scheme:m,additionalSchemes:f}):this.schemeIcons.hideSchemes()}I("Field input changed",d);break;case"redacted":y.publish("".concat(t.type,":redacted"),e.data.data),I("Field redacted",e.data.data);break;case"unredacted":y.publish("".concat(t.type,":unredacted"),e.data.data),I("Field unredacted",e.data.data);break;case"card-details-changed":var v;y.publish("".concat(t.type,":card-details-changed"),e.data.data),this.schemeIcons&&(this.cardDetailsSchemes={scheme:e.data.data.scheme,additionalSchemes:null!==(v=e.data.data.additionalSchemes)&&void 0!==v?v:[]},this.schemeIcons.showSchemes(this.cardDetailsSchemes)),I("Card details changed",e.data.data)}};return v.remove("message",o,t.type),v.add("message",o,t.type),t.addEventListener=this.addEventListener,t.removeEventListener=this.removeEventListener,this.controllerReady.then((()=>{var o,a,s,c;o=e,a=i,Array.from(o.attributes).forEach((e=>{var t=e.name,r=e.value;q.some((e=>new RegExp(e).test(t)))&&a.setAttribute(t,r)})),(i=a).classList.add("secure-fields__input","secure-fields__input--".concat(M(t.type))),n?(null===(s=e.parentNode)||void 0===s||s.replaceChild(t.frame,e),n.style.display="inline-flex",n.style.alignItems="center",t.frame.style.minWidth="0"):(null===(c=e.parentNode)||void 0===c||c.replaceChild(i,e),i.appendChild(t.frame)),"number"===t.type&&(null==r?void 0:r.showSchemeIcons)&&(i.style.display="inline-flex",i.style.alignItems="center",this.schemeIcons=(e=>{var t=e.baseUrl,r=(e=>{var t={scheme:!1,additionalSchemes:!1,placeholders:!1};return"boolean"==typeof e?e?{scheme:!0,additionalSchemes:!0,placeholders:!1}:t:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){z(e,t,r[t])}))}return e}({},t,e)})(e.showSchemeIcons),n=new Set,i=document.createElement("div");i.classList.add("secure-fields__scheme-icons"),i.style.display="flex",i.style.gap="4px",i.style.marginRight="4px";var o=Array.from({length:3},(()=>{var e=document.createElement("img");return e.setAttribute("alt",""),e.setAttribute("aria-hidden","true"),e.style.display="none",e.onerror=()=>{var t=e.getAttribute("src");t&&n.add(t),e.style.display="none"},e.onload=()=>{e.style.display="block"},i.appendChild(e),e})),a=e=>{var i=e.scheme,a=void 0===i?"":i,s=e.additionalSchemes,c=void 0===s?[]:s,l=e.placeholders,d=void 0!==l&&l,h=[...r.scheme&&a?[a]:[],...r.additionalSchemes&&c.length?c:[],...d?Z:[]].slice(0,3);o.forEach(((e,r)=>{var i=h[r];if(i){var o="".concat(t,"/").concat(i,".svg");e.getAttribute("src")!==o?(e.setAttribute("src",o),e.width=48):n.has(o)||(e.style.display="block")}else e.style.display="none"}))};return{config:r,container:i,slots:o,showSchemes:a,showPlaceholders:()=>a({placeholders:!0}),hideSchemes:()=>o.forEach((e=>e.style.display="none"))}})({baseUrl:"".concat(this.cdnBaseUrl,"/assets/icons/card-schemes"),showSchemeIcons:r.showSchemeIcons}),t.frame.after(this.schemeIcons.container),this.schemeIcons.config.placeholders&&this.schemeIcons.showPlaceholders()),t._resolveReady(),t.frame.addEventListener("load",(()=>{var e;return null===(e=this.autoAdvance)||void 0===e?void 0:e.updateEnterKeyHint(t)}))})),t}addCardNumberField(e,t){return this.paymentMethodId&&O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addCardNumberField"}),this.cardNumber||(this.cardNumber=new W(X($({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,sessionId:this.config.sessionId,gr4vyId:this.config.gr4vyId,environment:this.config.environment},this.paymentMethodId?{paymentMethodId:this.paymentMethodId}:{}),{options:X($({label:"Card number"},t),{type:"number"})}))),this._addField(e,this.cardNumber,t)}addSecurityCodeField(e,t){var r,n;return this.securityCode||(this.securityCode=new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:X($({label:"Security code"},this.paymentMethodId&&!(null===(r=this.config.paymentMethod)||void 0===r?void 0:r.scheme)?{lengths:[3,4]}:{},t),{type:"securityCode"}),paymentMethodScheme:null===(n=this.config.paymentMethod)||void 0===n?void 0:n.scheme})),this._addField(e,this.securityCode)}addExpiryDateField(e,t){return this.paymentMethodId&&O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addExpiryDateField"}),this.expiryDate||(this.expiryDate=new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:X($({label:"Expiry date"},t),{type:"expiryDate"})})),this._addField(e,this.expiryDate)}addField(e,t){if(["number","expiryDate","securityCode"].includes(t.type)){t.pattern&&O(c.FIELD_PATTERN_IN_USE,$({method:"addField"},t)),t.pattern,t.type;var r=ee(t,["pattern","type"]);return this[d[t.type]](e,r)}return this.otherFields[t.type]||(this.otherFields=X($({},this.otherFields),{[t.type]:new W({frameUrl:this.frameUrl,parentOrigin:this.parentOrigin,font:this.font,options:t})})),this._addField(e,this.otherFields[t.type])}addThreeDSecure(e,t){this.threeDS||(this.threeDS=new P(this),this.threeDS.init(e,t))}addClickToPay(e,t){return(r=function*(){if(!this.paymentMethodId)return this.clickToPayInstance=yield new F(this),this.clickToPay=yield this.clickToPayInstance.init(e,t),this.clickToPay;O(c.PAYMENT_METHOD_ID_IN_USE,{method:"addClickToPay"})},function(){var e=this,t=arguments;return new Promise((function(n,i){var o=r.apply(e,t);function a(e){Q(o,n,i,a,s,"next",e)}function s(e){Q(o,n,i,a,s,"throw",e)}a(void 0)}))}).call(this);var r}addEventListener(e,t){var r=this.type,n="".concat(this.constructor===W?"".concat(r,":"):"").concat(e);y.subscribe(n,t)}removeEventListener(e,t){var r=this.type,n="".concat(this.constructor===W?"".concat(r,":"):"").concat(e);y.unsubscribe(n,t)}submit(){var e,t,r,n=e=>{var t,r=[this.frameUrl,null===(t=this.clickToPayInstance)||void 0===t?void 0:t.origin].includes(e.origin),i=e.data.channel===l,a=["success","error"].includes(e.data.type);if(r&&i&&a){switch(e.data.type){case"success":var s;y.publish(o.CARD_VAULT_SUCCESS,e.data.data),(null===(s=e.data.data)||void 0===s?void 0:s.warn)&&(O(e.data.data.warn),delete e.data.data.warn),I("Payment method tokenized successfully",e.data.data);break;case"error":y.publish(o.CARD_VAULT_FAILURE,e.data),I("Failed to update checkout session",e.data.data)}window.removeEventListener("message",n)}};window.addEventListener("message",n),"click-to-pay"===this.method||"card"===this.method&&(null===(e=this.clickToPayInstance)||void 0===e?void 0:e.controller)&&!0===(null===(t=this.clickToPayInstance)||void 0===t?void 0:t.consent)?this.clickToPayInstance.controller.contentWindow.postMessage({type:"submit",channel:l,data:{checkoutOptions:null===(r=this.clickToPayInstance)||void 0===r?void 0:r.checkoutOptions}},this.clickToPayInstance.url):this.controller.contentWindow.postMessage({type:"submit",channel:l,data:{method:this.paymentMethodId?"id":"card"}},this.frameUrl)}setDebug(e){localStorage.setItem(i,String(e))}addFont(e){this.font=e.replace(/\s/g,"+")}constructor(e){var t,i;J(this,"config",void 0),J(this,"controller",void 0),J(this,"frameUrl",void 0),J(this,"apiUrl",void 0),J(this,"cdnBaseUrl",void 0),J(this,"parentOrigin",void 0),J(this,"font",void 0),J(this,"cardNumber",void 0),J(this,"securityCode",void 0),J(this,"expiryDate",void 0),J(this,"otherFields",{}),J(this,"method","card"),J(this,"clickToPayInstance",void 0),J(this,"clickToPay",void 0),J(this,"threeDS",void 0),J(this,"environmentPath",void 0),J(this,"paymentMethodId",void 0),J(this,"autoAdvance",null),J(this,"schemeIcons",null),J(this,"cardDetailsSchemes",null),J(this,"controllerReady",void 0),J(this,"_resolveControllerReady",void 0),y.unsubscribeAll(),this.config=$({environment:"production"},e),this.controllerReady=new Promise((e=>{var t=Date.now();this._resolveControllerReady=()=>e(Date.now()-t)})),this.config.paymentMethodId&&!this.config.paymentMethod&&O(c.PAYMENT_METHOD_ID_DEPRECATED),this.environmentPath="sandbox"===this.config.environment?"sandbox.":"",this.frameUrl=window.SECURE_FIELDS_FRAME_URL||"https://secure-fields.".concat(this.environmentPath).concat(this.config.gr4vyId,".gr4vy.app"),this.parentOrigin=window.location.origin,this.paymentMethodId=(null===(t=this.config.paymentMethod)||void 0===t?void 0:t.id)||this.config.paymentMethodId,this.cdnBaseUrl=function(e){return r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"production","cdn")}(this.config.gr4vyId,this.config.environment);var a=$({parentOrigin:this.parentOrigin,sessionId:this.config.sessionId,gr4vyId:this.config.gr4vyId,environment:this.config.environment},this.paymentMethodId?{paymentMethodId:this.paymentMethodId}:{});null===(i=document.body.querySelector("iframe#controller[src*=secure-fields]"))||void 0===i||i.remove(),this.controller=document.createElement("iframe"),this.controller.id="controller",this.controller.src=n("".concat(this.frameUrl,"/controller.html"),a),this.controller.title="Secure Controller",this.controller.style.position="absolute",this.controller.style.left="-9999999px",document.body.appendChild(this.controller),this.paymentMethodId&&(this.cardNumber=new W,this.expiryDate=new W),I("Initialized",X($({},this.config),{version:te.version,frameUrl:this.frameUrl,parentOrigin:this.parentOrigin}));var s=e=>{if(e.origin===this.frameUrl)switch(e.data.type){case"ready":var t=$({version:te.version},this.config);y.publish(o.READY,t),this._resolveControllerReady(),I("Ready",t);break;case"form-change":y.publish(o.FORM_CHANGE,e.data.data),I("Form change",e.data.data)}};v.remove("message",s,"init"),v.add("message",s,"init"),this.controllerReady.then((e=>I("Loaded controller after ".concat(e," milliseconds"))))}}return t})()));
package/lib/types.d.ts CHANGED
@@ -60,9 +60,9 @@ export type FieldEvent = {
60
60
  empty: boolean;
61
61
  expired?: boolean;
62
62
  schema?: string;
63
- scheme?: string;
63
+ scheme?: string | null;
64
64
  additionalSchemes?: string[];
65
- bin?: string;
65
+ bin?: string | null;
66
66
  complete?: boolean;
67
67
  fromBlur?: boolean;
68
68
  isDeleteInputType?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gr4vy/secure-fields",
3
- "version": "2.10.1",
3
+ "version": "2.10.2",
4
4
  "description": "Gr4vy-hosted secure fields offering advanced theming, PCI compliance, event handling, and more.",
5
5
  "main": "lib/index",
6
6
  "types": "lib/index",
@@ -57,5 +57,5 @@
57
57
  "access": "public",
58
58
  "registry": "https://registry.npmjs.org"
59
59
  },
60
- "gitHead": "bf0b68b64203083680e2460ee044a8dd06f5cae7"
60
+ "gitHead": "9a81d78c7f635a91e2d4d1404007e2fa2e892d6e"
61
61
  }