@vue-stripe/vue-stripe 4.2.7 → 4.2.8

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/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var DEFAULT_LOCALE="auto",SUPPORTED_LOCALES=["auto","bg","cs","da","de","el","en","en-GB","es","es-419","et","fi","fr","fr-CA","hu","id","it","ja","lt","lv","ms","mt","nb","nl","pl","pt","pt-BR","ro","ru","sk","sl","sv","tr","zh","zh-HK","zh-TW"],SUPPORTED_SUBMIT_TYPES=["auto","book","donate","pay"],BILLING_ADDRESS_COLLECTION_TYPES=["required","auto"],DEFAULT_ELEMENT_STYLE={base:{color:"#32325d",fontFamily:'"Helvetica Neue", Helvetica, sans-serif',fontSmoothing:"antialiased",fontSize:"16px","::placeholder":{color:"#aab7c4"}},invalid:{color:"#fa755a",iconColor:"#fa755a"}},VUE_STRIPE_VERSION=require("../package.json").version,STRIPE_PARTNER_DETAILS={name:"vue-stripe",version:VUE_STRIPE_VERSION,url:process.env.VUE_STRIPE_WEBSITE,partner_id:process.env.VUE_STRIPE_PARTNER_ID},INSECURE_HOST_ERROR_MESSAGE="Vue Stripe will not work on an insecure host. Make sure that your site is using TCP/SSL.",isSecureHost=function(){return"localhost"===window.location.hostname||"https:"===window.location.protocol},index={install:function(e,t){isSecureHost()||console.warn(INSECURE_HOST_ERROR_MESSAGE);var n=t.pk,r=t.stripeAccount,o=t.apiVersion,i=t.locale,s=window.Stripe(n,{stripeAccount:r,apiVersion:o,locale:i});s.registerAppInfo(STRIPE_PARTNER_DETAILS),e.prototype.$stripe=s}};function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var runtime_1=createCommonjsModule((function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function l(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),s=new x(r||[]);return i._invoke=function(e,t,n){var r=u;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=w(s,n);if(a){if(a===m)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?h:d,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=h,n.method="throw",n.arg=l.arg)}}}(e,n,s),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u="suspendedStart",d="suspendedYield",p="executing",h="completed",m={};function f(){}function y(){}function E(){}var v={};v[i]=function(){return this};var S=Object.getPrototypeOf,_=S&&S(S(R([])));_&&_!==n&&r.call(_,i)&&(v=_);var g=E.prototype=f.prototype=Object.create(v);function b(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function A(e){var t;this._invoke=function(n,o){function i(){return new Promise((function(t,i){!function t(n,o,i,s){var a=c(e[n],e,o);if("throw"!==a.type){var l=a.arg,u=l.value;return u&&"object"==typeof u&&r.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,i,s)}),(function(e){t("throw",e,i,s)})):Promise.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return t("throw",e,i,s)}))}s(a.arg)}(n,o,t,i)}))}return t=t?t.then(i,i):i()}}function w(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,w(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=c(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function R(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,s=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return s.next=s}}return{next:L}}function L(){return{value:t,done:!0}}return y.prototype=g.constructor=E,E.constructor=y,E[a]=y.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,E):(e.__proto__=E,a in e||(e[a]="GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(A.prototype),A.prototype[s]=function(){return this},e.AsyncIterator=A,e.async=function(t,n,r,o){var i=new A(l(t,n,r,o));return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),g[a]="Generator",g[i]=function(){return this},g.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=R,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return a.type="throw",a.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),c=r.call(s,"finallyLoc");if(l&&c){if(this.prev<s.catchLoc)return o(s.catchLoc,!0);if(this.prev<s.finallyLoc)return o(s.finallyLoc)}else if(l){if(this.prev<s.catchLoc)return o(s.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return o(s.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:R(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),regenerator=runtime_1;function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var loadParams,V3_URL="https://js.stripe.com/v3",V3_URL_REGEX=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,EXISTING_SCRIPT_MESSAGE="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",findScript=function(){for(var e=document.querySelectorAll('script[src^="'.concat(V3_URL,'"]')),t=0;t<e.length;t++){var n=e[t];if(V3_URL_REGEX.test(n.src))return n}return null},injectScript=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(V3_URL).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(n),n},registerWrapper=function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.13.2",startTime:t})},stripePromise=null,loadScript=function(e){return null!==stripePromise?stripePromise:stripePromise=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(EXISTING_SCRIPT_MESSAGE),window.Stripe)t(window.Stripe);else try{var r=findScript();r&&e?console.warn(EXISTING_SCRIPT_MESSAGE):r||(r=injectScript(e)),r.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),r.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}))},initStripe=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return registerWrapper(r,n),r},validateLoadParams=function(e){var t="invalid load parameters; expected object of shape\n\n {advancedFraudSignals: boolean}\n\nbut received\n\n ".concat(JSON.stringify(e),"\n");if(null===e||"object"!==_typeof(e))throw new Error(t);if(1===Object.keys(e).length&&"boolean"==typeof e.advancedFraudSignals)return e;throw new Error(t)},loadStripeCalled=!1,loadStripe=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];loadStripeCalled=!0;var r=Date.now();return loadScript(loadParams).then((function(e){return initStripe(e,t,r)}))};loadStripe.setLoadParameters=function(e){if(loadStripeCalled)throw new Error("You cannot change load parameters after calling loadStripe");loadParams=validateLoadParams(e)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var DEFAULT_LOCALE="auto",SUPPORTED_LOCALES=["auto","bg","cs","da","de","el","en","en-GB","es","es-419","et","fi","fr","fr-CA","hu","id","it","ja","lt","lv","ms","mt","nb","nl","pl","pt","pt-BR","ro","ru","sk","sl","sv","tr","zh","zh-HK","zh-TW"],SUPPORTED_SUBMIT_TYPES=["auto","book","donate","pay"],BILLING_ADDRESS_COLLECTION_TYPES=["required","auto"],DEFAULT_ELEMENT_STYLE={base:{color:"#32325d",fontFamily:'"Helvetica Neue", Helvetica, sans-serif',fontSmoothing:"antialiased",fontSize:"16px","::placeholder":{color:"#aab7c4"}},invalid:{color:"#fa755a",iconColor:"#fa755a"}},VUE_STRIPE_VERSION=require("../package.json").version,STRIPE_PARTNER_DETAILS={name:"vue-stripe",version:VUE_STRIPE_VERSION,url:process.env.VUE_STRIPE_WEBSITE,partner_id:process.env.VUE_STRIPE_PARTNER_ID},INSECURE_HOST_ERROR_MESSAGE="Vue Stripe will not work on an insecure host. Make sure that your site is using TCP/SSL.",isSecureHost=function(){return"localhost"===window.location.hostname||"https:"===window.location.protocol},index={install:function(e,t){isSecureHost()||console.warn(INSECURE_HOST_ERROR_MESSAGE);var n=t.pk,r=t.stripeAccount,o=t.apiVersion,i=t.locale,s=window.Stripe(n,{stripeAccount:r,apiVersion:o,locale:i});s.registerAppInfo(STRIPE_PARTNER_DETAILS),e.prototype.$stripe=s}};function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var runtime_1=createCommonjsModule((function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function l(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),s=new x(r||[]);return i._invoke=function(e,t,n){var r=u;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=w(s,n);if(a){if(a===m)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?h:d,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=h,n.method="throw",n.arg=l.arg)}}}(e,n,s),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var u="suspendedStart",d="suspendedYield",p="executing",h="completed",m={};function f(){}function y(){}function E(){}var v={};v[i]=function(){return this};var S=Object.getPrototypeOf,_=S&&S(S(R([])));_&&_!==n&&r.call(_,i)&&(v=_);var g=E.prototype=f.prototype=Object.create(v);function A(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function b(e){var t;this._invoke=function(n,o){function i(){return new Promise((function(t,i){!function t(n,o,i,s){var a=c(e[n],e,o);if("throw"!==a.type){var l=a.arg,u=l.value;return u&&"object"==typeof u&&r.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,i,s)}),(function(e){t("throw",e,i,s)})):Promise.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return t("throw",e,i,s)}))}s(a.arg)}(n,o,t,i)}))}return t=t?t.then(i,i):i()}}function w(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,w(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=c(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function R(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,s=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return s.next=s}}return{next:L}}function L(){return{value:t,done:!0}}return y.prototype=g.constructor=E,E.constructor=y,E[a]=y.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,E):(e.__proto__=E,a in e||(e[a]="GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},A(b.prototype),b.prototype[s]=function(){return this},e.AsyncIterator=b,e.async=function(t,n,r,o){var i=new b(l(t,n,r,o));return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},A(g),g[a]="Generator",g[i]=function(){return this},g.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=R,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return a.type="throw",a.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var l=r.call(s,"catchLoc"),c=r.call(s,"finallyLoc");if(l&&c){if(this.prev<s.catchLoc)return o(s.catchLoc,!0);if(this.prev<s.finallyLoc)return o(s.finallyLoc)}else if(l){if(this.prev<s.catchLoc)return o(s.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return o(s.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:R(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),regenerator=runtime_1;function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var loadParams,V3_URL="https://js.stripe.com/v3",V3_URL_REGEX=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,EXISTING_SCRIPT_MESSAGE="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",findScript=function(){for(var e=document.querySelectorAll('script[src^="'.concat(V3_URL,'"]')),t=0;t<e.length;t++){var n=e[t];if(V3_URL_REGEX.test(n.src))return n}return null},injectScript=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(V3_URL).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(n),n},registerWrapper=function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.13.2",startTime:t})},stripePromise=null,loadScript=function(e){return null!==stripePromise?stripePromise:stripePromise=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(EXISTING_SCRIPT_MESSAGE),window.Stripe)t(window.Stripe);else try{var r=findScript();r&&e?console.warn(EXISTING_SCRIPT_MESSAGE):r||(r=injectScript(e)),r.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),r.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}))},initStripe=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return registerWrapper(r,n),r},validateLoadParams=function(e){var t="invalid load parameters; expected object of shape\n\n {advancedFraudSignals: boolean}\n\nbut received\n\n ".concat(JSON.stringify(e),"\n");if(null===e||"object"!==_typeof(e))throw new Error(t);if(1===Object.keys(e).length&&"boolean"==typeof e.advancedFraudSignals)return e;throw new Error(t)},loadStripeCalled=!1,loadStripe=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];loadStripeCalled=!0;var r=Date.now();return loadScript(loadParams).then((function(e){return initStripe(e,t,r)}))};loadStripe.setLoadParameters=function(e){if(loadStripeCalled)throw new Error("You cannot change load parameters after calling loadStripe");loadParams=validateLoadParams(e)};
2
2
  /**
3
3
  * vue-coerce-props v1.0.0
4
4
  * (c) 2018 Eduardo San Martin Morote <posva13@gmail.com>
5
5
  * @license MIT
6
6
  */
7
- var index$1={beforeCreate:function(){var e=this.$options.props;e&&(this._$coertions=Object.keys(e).filter((function(t){return e[t].coerce})).map((function(t){return[t,e[t].coerce]})))},computed:{$coerced:function(){var e=this;return this._$coertions.reduce((function(t,n){var r=n[0],o=n[1];return t[r]=o.call(e,e.$props[r]),t}),{})}}},props={pk:{type:String,required:!0},mode:{type:String,validator:function(e){return["payment","subscription"].includes(e)}},lineItems:{type:Array,default:void 0},items:{type:Array},successUrl:{type:String,default:window.location.href},cancelUrl:{type:String,default:window.location.href},submitType:{type:String,validator:function(e){return SUPPORTED_SUBMIT_TYPES.includes(e)}},billingAddressCollection:{type:String,default:"auto",validator:function(e){return BILLING_ADDRESS_COLLECTION_TYPES.includes(e)}},clientReferenceId:{type:String},customerEmail:{type:String},sessionId:{type:String},locale:{type:String,default:DEFAULT_LOCALE,coerce:function(e){return SUPPORTED_LOCALES.includes(e)?e:(console.warn("VueStripe Warning: '".concat(e,"' is not supported by Stripe yet. Falling back to default '").concat(DEFAULT_LOCALE,"'.")),DEFAULT_LOCALE)}},shippingAddressCollection:{type:Object,validator:function(e){return Object.prototype.hasOwnProperty.call(e,"allowedCountries")}},disableAdvancedFraudDetection:{type:Boolean}},index$2={props:props,mixins:[index$1],render:function(e){return e},mounted:function(){isSecureHost()||console.warn(INSECURE_HOST_ERROR_MESSAGE)},methods:{redirectToCheckout:function(){var e,t;return regenerator.async((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,isSecureHost()){n.next=3;break}throw Error(INSECURE_HOST_ERROR_MESSAGE);case 3:return this.$emit("loading",!0),this.disableAdvancedFraudDetection&&loadStripe.setLoadParameters({advancedFraudSignals:!1}),n.next=7,regenerator.awrap(loadStripe(this.pk));case 7:if((e=n.sent).registerAppInfo(STRIPE_PARTNER_DETAILS),!this.sessionId){n.next=12;break}return e.redirectToCheckout({sessionId:this.sessionId}),n.abrupt("return");case 12:if(!this.lineItems||!this.lineItems.length||this.mode){n.next=15;break}return console.error("Error: Property 'mode' is required when using 'lineItems'. See https://stripe.com/docs/js/checkout/redirect_to_checkout#stripe_checkout_redirect_to_checkout-options-mode"),n.abrupt("return");case 15:t={billingAddressCollection:this.billingAddressCollection,cancelUrl:this.cancelUrl,clientReferenceId:this.clientReferenceId,customerEmail:this.customerEmail,items:this.items,lineItems:this.lineItems,locale:this.$coerced.locale,mode:this.mode,shippingAddressCollection:this.shippingAddressCollection,submitType:this.submitType,successUrl:this.successUrl},e.redirectToCheckout(t),n.next=23;break;case 19:n.prev=19,n.t0=n.catch(0),console.error(n.t0),this.$emit("error",n.t0);case 23:case"end":return n.stop()}}),null,this,[[0,19]])}}};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var defineProperty=_defineProperty;function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ELEMENT_TYPE="card",script={props:{pk:{type:String,required:!0},stripeAccount:{type:String,default:void 0},apiVersion:{type:String,default:void 0},locale:{type:String,default:"auto"},elementsOptions:{type:Object,default:function(){return{}}},tokenData:{type:Object,default:function(){return{}}},disableAdvancedFraudDetection:{type:Boolean},classes:{type:Object,default:function(){return{}}},elementStyle:{type:Object,default:function(){return DEFAULT_ELEMENT_STYLE}},value:{type:String,default:void 0},hidePostalCode:Boolean,iconStyle:{type:String,default:"default",validator:function(e){return["solid","default"].includes(e)}},hideIcon:Boolean,disabled:Boolean},data:function(){return{loading:!1,stripe:null,elements:null,element:null,card:null}},computed:{form:function(){return document.getElementById("stripe-element-form")}},mounted:function(){var e,t,n=this;return regenerator.async((function(r){for(;;)switch(r.prev=r.next){case 0:if(isSecureHost()){r.next=3;break}return document.getElementById("stripe-element-mount-point").innerHTML='<p style="color: red">'.concat(INSECURE_HOST_ERROR_MESSAGE,"</p>"),r.abrupt("return");case 3:return this.disableAdvancedFraudDetection&&loadStripe.setLoadParameters({advancedFraudSignals:!1}),e={stripeAccount:this.stripeAccount,apiVersion:this.apiVersion,locale:this.locale},t={classes:this.classes,style:this.elementStyle,value:this.value,hidePostalCode:this.hidePostalCode,iconStyle:this.iconStyle,hideIcon:this.hideIcon,disabled:this.disabled},r.next=8,regenerator.awrap(loadStripe(this.pk,e));case 8:this.stripe=r.sent,this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS),this.elements=this.stripe.elements(this.elementsOptions),this.element=this.elements.create(ELEMENT_TYPE,t),this.element.mount("#stripe-element-mount-point"),this.element.on("change",(function(e){var t=document.getElementById("stripe-element-errors");e.error?t.textContent=e.error.message:t.textContent="",n.onChange(e)})),this.element.on("blur",this.onBlur),this.element.on("click",this.onClick),this.element.on("escape",this.onEscape),this.element.on("focus",this.onFocus),this.element.on("ready",this.onReady),this.form.addEventListener("submit",(function(e){var t,r,o,i;return regenerator.async((function(s){for(;;)switch(s.prev=s.next){case 0:return s.prev=0,n.$emit("loading",!0),e.preventDefault(),t=_objectSpread({},n.element),n.amount&&(t.amount=n.amount),s.next=7,regenerator.awrap(n.stripe.createToken(t,n.tokenData));case 7:if(r=s.sent,o=r.token,!(i=r.error)){s.next=15;break}return document.getElementById("stripe-element-errors").textContent=i.message,n.$emit("error",i),s.abrupt("return");case 15:n.$emit("token",o),s.next=22;break;case 18:s.prev=18,s.t0=s.catch(0),console.error(s.t0),n.$emit("error",s.t0);case 22:return s.prev=22,n.$emit("loading",!1),s.finish(22);case 25:case"end":return s.stop()}}),null,null,[[0,18,22,25]])}));case 20:case"end":return r.stop()}}),null,this)},methods:{submit:function(){this.$refs.submitButtonRef.click()},clear:function(){this.element.clear()},destroy:function(){this.element.destroy()},focus:function(){console.warn("This method will currently not work on iOS 13+ due to a system limitation."),this.element.focus()},unmount:function(){this.element.unmount()},update:function(e){this.element.update(e)},onChange:function(e){this.$emit("element-change",e)},onReady:function(e){this.$emit("element-ready",e)},onFocus:function(e){this.$emit("element-focus",e)},onBlur:function(e){this.$emit("element-blur",e)},onEscape:function(e){this.$emit("element-escape",e)},onClick:function(e){this.$emit("element-click",e)}}};function normalizeComponent(e,t,n,r,o,i,s,a,l,c){"boolean"!=typeof s&&(l=a,a=s,s=!1);const u="function"==typeof n?n.options:n;let d;if(e&&e.render&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0,o&&(u.functional=!0)),r&&(u._scopeId=r),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=d):t&&(d=s?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(u.functional){const e=u.render;u.render=function(t,n){return d.call(n),e(t,n)}}else{const e=u.beforeCreate;u.beforeCreate=e?[].concat(e,d):[d]}return n}const isOldIE="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function createInjector(e){return(e,t)=>addStyle(e,t)}let HEAD;const styles={};function addStyle(e,t){const n=isOldIE?t.media||"default":e,r=styles[n]||(styles[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);let n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),void 0===HEAD&&(HEAD=document.head||document.getElementsByTagName("head")[0]),HEAD.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(n),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{const e=r.ids.size-1,t=document.createTextNode(n),o=r.element.childNodes;o[e]&&r.element.removeChild(o[e]),o.length?r.element.insertBefore(t,o[e]):r.element.appendChild(t)}}}const __vue_script__=script;var __vue_render__=function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("form",{attrs:{id:"stripe-element-form"}},[t("div",{attrs:{id:"stripe-element-mount-point"}}),this._v(" "),this._t("stripe-element-errors",[t("div",{attrs:{id:"stripe-element-errors",role:"alert"}})]),this._v(" "),t("button",{ref:"submitButtonRef",staticClass:"hide",attrs:{type:"submit"}})],2)])},__vue_staticRenderFns__=[];__vue_render__._withStripped=!0;const __vue_inject_styles__=function(e){e&&e("data-v-49c9d25b_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement[data-v-49c9d25b] {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n.StripeElement--focus[data-v-49c9d25b] {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n.StripeElement--invalid[data-v-49c9d25b] {\n border-color: #fa755a;\n}\n.StripeElement--webkit-autofill[data-v-49c9d25b] {\n background-color: #fefde5 !important;\n}\n.hide[data-v-49c9d25b] {\n visibility: hidden;\n}\n",map:{version:3,sources:["/home/runner/work/vue-stripe/vue-stripe/src/elements/Card.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiPA;;;EAGA;AACA;EACA,sBAAA;;EAEA,YAAA;;EAEA,kBAAA;;EAEA,6BAAA;EACA,kBAAA;EACA,uBAAA;;EAEA,+BAAA;EACA,yCAAA;EACA,iCAAA;AACA;AAEA;EACA,+BAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,oCAAA;AACA;AAEA;EACA,kBAAA;AACA",file:"Card.vue",sourcesContent:["<template>\n <div>\n <form id=\"stripe-element-form\">\n <div id=\"stripe-element-mount-point\" />\n <slot name=\"stripe-element-errors\">\n <div\n id=\"stripe-element-errors\"\n role=\"alert\"\n />\n </slot>\n <button\n ref=\"submitButtonRef\"\n type=\"submit\"\n class=\"hide\"\n />\n </form>\n </div>\n</template>\n\n<script>\nimport { loadStripe } from '@stripe/stripe-js/dist/pure.esm.js';\nimport { isSecureHost } from '../utils';\nimport {\n DEFAULT_ELEMENT_STYLE,\n STRIPE_PARTNER_DETAILS,\n INSECURE_HOST_ERROR_MESSAGE,\n} from '../constants';\nconst ELEMENT_TYPE = 'card';\nexport default {\n props: {\n pk: {\n type: String,\n required: true,\n },\n stripeAccount: {\n type: String,\n default: undefined,\n },\n apiVersion: {\n type: String,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'auto',\n },\n elementsOptions: {\n type: Object,\n default: () => ({}),\n },\n tokenData: {\n type: Object,\n default: () => ({}),\n },\n disableAdvancedFraudDetection: {\n type: Boolean,\n },\n // element specific options\n classes: {\n type: Object,\n default: () => ({}),\n },\n elementStyle: {\n type: Object,\n default: () => (DEFAULT_ELEMENT_STYLE),\n },\n value: {\n type: String,\n default: undefined,\n },\n hidePostalCode: Boolean,\n iconStyle: {\n type: String,\n default: 'default',\n validator: value => ['solid', 'default'].includes(value),\n },\n hideIcon: Boolean,\n disabled: Boolean,\n },\n data () {\n return {\n loading: false,\n stripe: null,\n elements: null,\n element: null,\n card: null,\n };\n },\n computed: {\n form () {\n return document.getElementById('stripe-element-form');\n },\n },\n async mounted () {\n if (!isSecureHost()) {\n document.getElementById('stripe-element-mount-point').innerHTML = `<p style=\"color: red\">${INSECURE_HOST_ERROR_MESSAGE}</p>`;\n return;\n }\n\n if (this.disableAdvancedFraudDetection) loadStripe.setLoadParameters({ advancedFraudSignals: false });\n\n const stripeOptions = {\n stripeAccount: this.stripeAccount,\n apiVersion: this.apiVersion,\n locale: this.locale,\n };\n const createOptions = {\n classes: this.classes,\n style: this.elementStyle,\n value: this.value,\n hidePostalCode: this.hidePostalCode,\n iconStyle: this.iconStyle,\n hideIcon: this.hideIcon,\n disabled: this.disabled,\n };\n\n this.stripe = await loadStripe(this.pk, stripeOptions);\n this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS);\n this.elements = this.stripe.elements(this.elementsOptions);\n this.element = this.elements.create(ELEMENT_TYPE, createOptions);\n this.element.mount('#stripe-element-mount-point');\n\n this.element.on('change', (event) => {\n var displayError = document.getElementById('stripe-element-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n this.onChange(event);\n });\n\n this.element.on('blur', this.onBlur);\n this.element.on('click', this.onClick);\n this.element.on('escape', this.onEscape);\n this.element.on('focus', this.onFocus);\n this.element.on('ready', this.onReady);\n\n this.form.addEventListener('submit', async (event) => {\n try {\n this.$emit('loading', true);\n event.preventDefault();\n const data = {\n ...this.element,\n };\n if (this.amount) data.amount = this.amount;\n const { token, error } = await this.stripe.createToken(data, this.tokenData);\n if (error) {\n const errorElement = document.getElementById('stripe-element-errors');\n errorElement.textContent = error.message;\n this.$emit('error', error);\n return;\n }\n this.$emit('token', token);\n } catch (error) {\n console.error(error);\n this.$emit('error', error);\n } finally {\n this.$emit('loading', false);\n }\n });\n },\n methods: {\n /**\n * Triggers the submission of the form\n * @return {void}\n */\n submit () {\n this.$refs.submitButtonRef.click();\n },\n /**\n * Clears the element\n * @return {void}\n */\n clear () {\n this.element.clear();\n },\n /**\n * Destroys the element\n * @return {void}\n */\n destroy () {\n this.element.destroy();\n },\n /**\n * Focuses on the element\n * @return {void}\n */\n focus () {\n console.warn('This method will currently not work on iOS 13+ due to a system limitation.');\n this.element.focus();\n },\n /**\n * Unmounts the element\n * @return {void}\n */\n unmount () {\n this.element.unmount();\n },\n /**\n * Updates the element\n * @param {string} opts.classes.base The base class applied to the container. Defaults to StripeElement.\n * @param {string} opts.classes.complete The class name to apply when the Element is complete. Defaults to StripeElement--complete.\n * @param {string} opts.classes.empty The class name to apply when the Element is empty. Defaults to StripeElement--empty.\n * @param {string} opts.classes.focus The class name to apply when the Element is focused. Defaults to StripeElement--focus.\n * @param {string} opts.classes.invalid The class name to apply when the Element is invalid. Defaults to StripeElement--invalid.\n * @param {string} opts.classes.webkitAutoFill The class name to apply when the Element has its value autofilled by the browser (only on Chrome and Safari). Defaults to StripeElement--webkit-autofill.\n * @param {Object} opts.style Customize the appearance of this element using CSS properties passed in a Style object.\n * @param {string} opts.value A pre-filled set of values to include in the input (e.g., {postalCode: '94110'}). Note that sensitive card information (card number, CVC, and expiration date) cannot be pre-filled\n * @param {boolean} opts.hidePostalCode Hide the postal code field. Default is false. If you are already collecting a full billing address or postal code elsewhere, set this to true.\n * @param {string} opts.iconStyle Appearance of the icon in the Element. Either solid or default.\n * @param {boolean} opts.hideIcon Hides the icon in the Element. Default is false.\n * @param {boolean} opts.disabled Applies a disabled state to the Element such that user input is not accepted. Default is false.\n */\n update (opts) {\n this.element.update(opts);\n },\n // events\n onChange (e) {\n this.$emit('element-change', e);\n },\n onReady (e) {\n this.$emit('element-ready', e);\n },\n onFocus (e) {\n this.$emit('element-focus', e);\n },\n onBlur (e) {\n this.$emit('element-blur', e);\n },\n onEscape (e) {\n this.$emit('element-escape', e);\n },\n onClick (e) {\n this.$emit('element-click', e);\n },\n },\n};\n<\/script>\n\n<style scoped>\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n\n.StripeElement--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n.StripeElement--invalid {\n border-color: #fa755a;\n}\n\n.StripeElement--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n.hide {\n visibility: hidden;\n}\n</style>\n"]},media:void 0})},__vue_scope_id__="data-v-49c9d25b",__vue_module_identifier__=void 0,__vue_is_functional_template__=!1,__vue_component__=normalizeComponent({render:__vue_render__,staticRenderFns:__vue_staticRenderFns__},__vue_inject_styles__,__vue_script__,__vue_scope_id__,!1,void 0,!1,createInjector,void 0,void 0);var index$3={install:function(e,t){var n,r,o,i,s,a,l;return regenerator.async((function(c){for(;;)switch(c.prev=c.next){case 0:n=t.pk,r=t.stripeAccount,o=t.apiVersion,i=t.locale,s=t.elementsOptions,(a=window.Stripe(n,{stripeAccount:r,apiVersion:o,locale:i})).registerAppInfo(STRIPE_PARTNER_DETAILS),l=a.elements(s),e.prototype.$stripe=a,e.prototype.$stripeElements=l;case 6:case"end":return c.stop()}}))}};exports.StripeCheckout=index$2,exports.StripeElementCard=__vue_component__,exports.StripeElementsPlugin=index$3,exports.StripePlugin=index;
7
+ var index$1={beforeCreate:function(){var e=this.$options.props;e&&(this._$coertions=Object.keys(e).filter((function(t){return e[t].coerce})).map((function(t){return[t,e[t].coerce]})))},computed:{$coerced:function(){var e=this;return this._$coertions.reduce((function(t,n){var r=n[0],o=n[1];return t[r]=o.call(e,e.$props[r]),t}),{})}}},props={pk:{type:String,required:!0},mode:{type:String,validator:function(e){return["payment","subscription"].includes(e)}},lineItems:{type:Array,default:void 0},items:{type:Array},successUrl:{type:String,default:window.location.href},cancelUrl:{type:String,default:window.location.href},submitType:{type:String,validator:function(e){return SUPPORTED_SUBMIT_TYPES.includes(e)}},billingAddressCollection:{type:String,default:"auto",validator:function(e){return BILLING_ADDRESS_COLLECTION_TYPES.includes(e)}},clientReferenceId:{type:String},customerEmail:{type:String},sessionId:{type:String},locale:{type:String,default:DEFAULT_LOCALE,coerce:function(e){return SUPPORTED_LOCALES.includes(e)?e:(console.warn("VueStripe Warning: '".concat(e,"' is not supported by Stripe yet. Falling back to default '").concat(DEFAULT_LOCALE,"'.")),DEFAULT_LOCALE)}},shippingAddressCollection:{type:Object,validator:function(e){return Object.prototype.hasOwnProperty.call(e,"allowedCountries")}},disableAdvancedFraudDetection:{type:Boolean}},index$2={props:props,mixins:[index$1],render:function(e){return e},mounted:function(){isSecureHost()||console.warn(INSECURE_HOST_ERROR_MESSAGE)},methods:{redirectToCheckout:function(){var e,t;return regenerator.async((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,isSecureHost()){n.next=3;break}throw Error(INSECURE_HOST_ERROR_MESSAGE);case 3:return this.$emit("loading",!0),this.disableAdvancedFraudDetection&&loadStripe.setLoadParameters({advancedFraudSignals:!1}),n.next=7,regenerator.awrap(loadStripe(this.pk));case 7:if((e=n.sent).registerAppInfo(STRIPE_PARTNER_DETAILS),!this.sessionId){n.next=12;break}return e.redirectToCheckout({sessionId:this.sessionId}),n.abrupt("return");case 12:if(!this.lineItems||!this.lineItems.length||this.mode){n.next=15;break}return console.error("Error: Property 'mode' is required when using 'lineItems'. See https://stripe.com/docs/js/checkout/redirect_to_checkout#stripe_checkout_redirect_to_checkout-options-mode"),n.abrupt("return");case 15:t={billingAddressCollection:this.billingAddressCollection,cancelUrl:this.cancelUrl,clientReferenceId:this.clientReferenceId,customerEmail:this.customerEmail,items:this.items,lineItems:this.lineItems,locale:this.$coerced.locale,mode:this.mode,shippingAddressCollection:this.shippingAddressCollection,submitType:this.submitType,successUrl:this.successUrl},e.redirectToCheckout(t),n.next=23;break;case 19:n.prev=19,n.t0=n.catch(0),console.error(n.t0),this.$emit("error",n.t0);case 23:case"end":return n.stop()}}),null,this,[[0,19]])}}};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var defineProperty=_defineProperty;function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ELEMENT_TYPE="card",script={props:{pk:{type:String,required:!0},stripeAccount:{type:String,default:void 0},apiVersion:{type:String,default:void 0},locale:{type:String,default:"auto"},elementsOptions:{type:Object,default:function(){return{}}},tokenData:{type:Object,default:function(){return{}}},disableAdvancedFraudDetection:{type:Boolean},classes:{type:Object,default:function(){return{}}},elementStyle:{type:Object,default:function(){return DEFAULT_ELEMENT_STYLE}},value:{type:String,default:void 0},hidePostalCode:Boolean,iconStyle:{type:String,default:"default",validator:function(e){return["solid","default"].includes(e)}},hideIcon:Boolean,disabled:Boolean},data:function(){return{loading:!1,stripe:null,elements:null,element:null,card:null}},computed:{form:function(){return document.getElementById("stripe-element-form")}},mounted:function(){var e,t,n=this;return regenerator.async((function(r){for(;;)switch(r.prev=r.next){case 0:if(isSecureHost()){r.next=3;break}return document.getElementById("stripe-element-mount-point").innerHTML='<p style="color: red">'.concat(INSECURE_HOST_ERROR_MESSAGE,"</p>"),r.abrupt("return");case 3:return this.disableAdvancedFraudDetection&&loadStripe.setLoadParameters({advancedFraudSignals:!1}),e={stripeAccount:this.stripeAccount,apiVersion:this.apiVersion,locale:this.locale},t={classes:this.classes,style:this.elementStyle,value:this.value,hidePostalCode:this.hidePostalCode,iconStyle:this.iconStyle,hideIcon:this.hideIcon,disabled:this.disabled},r.next=8,regenerator.awrap(loadStripe(this.pk,e));case 8:this.stripe=r.sent,this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS),this.elements=this.stripe.elements(this.elementsOptions),this.element=this.elements.create(ELEMENT_TYPE,t),this.element.mount("#stripe-element-mount-point"),this.element.on("change",(function(e){var t=document.getElementById("stripe-element-errors");e.error?t.textContent=e.error.message:t.textContent="",n.onChange(e)})),this.element.on("blur",this.onBlur),this.element.on("click",this.onClick),this.element.on("escape",this.onEscape),this.element.on("focus",this.onFocus),this.element.on("ready",this.onReady),this.form.addEventListener("submit",(function(e){var t,r,o,i;return regenerator.async((function(s){for(;;)switch(s.prev=s.next){case 0:return s.prev=0,n.$emit("loading",!0),e.preventDefault(),t=_objectSpread({},n.element),n.amount&&(t.amount=n.amount),s.next=7,regenerator.awrap(n.stripe.createToken(t,n.tokenData));case 7:if(r=s.sent,o=r.token,!(i=r.error)){s.next=15;break}return document.getElementById("stripe-element-errors").textContent=i.message,n.$emit("error",i),s.abrupt("return");case 15:n.$emit("token",o),s.next=22;break;case 18:s.prev=18,s.t0=s.catch(0),console.error(s.t0),n.$emit("error",s.t0);case 22:return s.prev=22,n.$emit("loading",!1),s.finish(22);case 25:case"end":return s.stop()}}),null,null,[[0,18,22,25]])}));case 20:case"end":return r.stop()}}),null,this)},methods:{submit:function(){this.$refs.submitButtonRef.click()},clear:function(){this.element.clear()},destroy:function(){this.element.destroy()},focus:function(){console.warn("This method will currently not work on iOS 13+ due to a system limitation."),this.element.focus()},unmount:function(){this.element.unmount()},update:function(e){this.element.update(e)},onChange:function(e){this.$emit("element-change",e)},onReady:function(e){this.$emit("element-ready",e)},onFocus:function(e){this.$emit("element-focus",e)},onBlur:function(e){this.$emit("element-blur",e)},onEscape:function(e){this.$emit("element-escape",e)},onClick:function(e){this.$emit("element-click",e)}}};function normalizeComponent(e,t,n,r,o,i,s,a,l,c){"boolean"!=typeof s&&(l=a,a=s,s=!1);const u="function"==typeof n?n.options:n;let d;if(e&&e.render&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0,o&&(u.functional=!0)),r&&(u._scopeId=r),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=d):t&&(d=s?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(u.functional){const e=u.render;u.render=function(t,n){return d.call(n),e(t,n)}}else{const e=u.beforeCreate;u.beforeCreate=e?[].concat(e,d):[d]}return n}const isOldIE="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function createInjector(e){return(e,t)=>addStyle(e,t)}let HEAD;const styles={};function addStyle(e,t){const n=isOldIE?t.media||"default":e,r=styles[n]||(styles[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);let n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),void 0===HEAD&&(HEAD=document.head||document.getElementsByTagName("head")[0]),HEAD.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(n),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{const e=r.ids.size-1,t=document.createTextNode(n),o=r.element.childNodes;o[e]&&r.element.removeChild(o[e]),o.length?r.element.insertBefore(t,o[e]):r.element.appendChild(t)}}}const __vue_script__=script;var __vue_render__=function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("form",{attrs:{id:"stripe-element-form"}},[t("div",{attrs:{id:"stripe-element-mount-point"}}),this._v(" "),this._t("stripe-element-errors",[t("div",{attrs:{id:"stripe-element-errors",role:"alert"}})]),this._v(" "),t("button",{ref:"submitButtonRef",staticClass:"hide",attrs:{type:"submit"}})],2)])},__vue_staticRenderFns__=[];__vue_render__._withStripped=!0;const __vue_inject_styles__=function(e){e&&e("data-v-e001dcc2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement[data-v-e001dcc2] {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n.StripeElement--focus[data-v-e001dcc2] {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n.StripeElement--invalid[data-v-e001dcc2] {\n border-color: #fa755a;\n}\n.StripeElement--webkit-autofill[data-v-e001dcc2] {\n background-color: #fefde5 !important;\n}\n.hide[data-v-e001dcc2] {\n display: none;\n}\n",map:{version:3,sources:["/home/runner/work/vue-stripe/vue-stripe/src/elements/Card.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiPA;;;EAGA;AACA;EACA,sBAAA;;EAEA,YAAA;;EAEA,kBAAA;;EAEA,6BAAA;EACA,kBAAA;EACA,uBAAA;;EAEA,+BAAA;EACA,yCAAA;EACA,iCAAA;AACA;AAEA;EACA,+BAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,oCAAA;AACA;AAEA;EACA,aAAA;AACA",file:"Card.vue",sourcesContent:["<template>\n <div>\n <form id=\"stripe-element-form\">\n <div id=\"stripe-element-mount-point\" />\n <slot name=\"stripe-element-errors\">\n <div\n id=\"stripe-element-errors\"\n role=\"alert\"\n />\n </slot>\n <button\n ref=\"submitButtonRef\"\n type=\"submit\"\n class=\"hide\"\n />\n </form>\n </div>\n</template>\n\n<script>\nimport { loadStripe } from '@stripe/stripe-js/dist/pure.esm.js';\nimport { isSecureHost } from '../utils';\nimport {\n DEFAULT_ELEMENT_STYLE,\n STRIPE_PARTNER_DETAILS,\n INSECURE_HOST_ERROR_MESSAGE,\n} from '../constants';\nconst ELEMENT_TYPE = 'card';\nexport default {\n props: {\n pk: {\n type: String,\n required: true,\n },\n stripeAccount: {\n type: String,\n default: undefined,\n },\n apiVersion: {\n type: String,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'auto',\n },\n elementsOptions: {\n type: Object,\n default: () => ({}),\n },\n tokenData: {\n type: Object,\n default: () => ({}),\n },\n disableAdvancedFraudDetection: {\n type: Boolean,\n },\n // element specific options\n classes: {\n type: Object,\n default: () => ({}),\n },\n elementStyle: {\n type: Object,\n default: () => (DEFAULT_ELEMENT_STYLE),\n },\n value: {\n type: String,\n default: undefined,\n },\n hidePostalCode: Boolean,\n iconStyle: {\n type: String,\n default: 'default',\n validator: value => ['solid', 'default'].includes(value),\n },\n hideIcon: Boolean,\n disabled: Boolean,\n },\n data () {\n return {\n loading: false,\n stripe: null,\n elements: null,\n element: null,\n card: null,\n };\n },\n computed: {\n form () {\n return document.getElementById('stripe-element-form');\n },\n },\n async mounted () {\n if (!isSecureHost()) {\n document.getElementById('stripe-element-mount-point').innerHTML = `<p style=\"color: red\">${INSECURE_HOST_ERROR_MESSAGE}</p>`;\n return;\n }\n\n if (this.disableAdvancedFraudDetection) loadStripe.setLoadParameters({ advancedFraudSignals: false });\n\n const stripeOptions = {\n stripeAccount: this.stripeAccount,\n apiVersion: this.apiVersion,\n locale: this.locale,\n };\n const createOptions = {\n classes: this.classes,\n style: this.elementStyle,\n value: this.value,\n hidePostalCode: this.hidePostalCode,\n iconStyle: this.iconStyle,\n hideIcon: this.hideIcon,\n disabled: this.disabled,\n };\n\n this.stripe = await loadStripe(this.pk, stripeOptions);\n this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS);\n this.elements = this.stripe.elements(this.elementsOptions);\n this.element = this.elements.create(ELEMENT_TYPE, createOptions);\n this.element.mount('#stripe-element-mount-point');\n\n this.element.on('change', (event) => {\n var displayError = document.getElementById('stripe-element-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n this.onChange(event);\n });\n\n this.element.on('blur', this.onBlur);\n this.element.on('click', this.onClick);\n this.element.on('escape', this.onEscape);\n this.element.on('focus', this.onFocus);\n this.element.on('ready', this.onReady);\n\n this.form.addEventListener('submit', async (event) => {\n try {\n this.$emit('loading', true);\n event.preventDefault();\n const data = {\n ...this.element,\n };\n if (this.amount) data.amount = this.amount;\n const { token, error } = await this.stripe.createToken(data, this.tokenData);\n if (error) {\n const errorElement = document.getElementById('stripe-element-errors');\n errorElement.textContent = error.message;\n this.$emit('error', error);\n return;\n }\n this.$emit('token', token);\n } catch (error) {\n console.error(error);\n this.$emit('error', error);\n } finally {\n this.$emit('loading', false);\n }\n });\n },\n methods: {\n /**\n * Triggers the submission of the form\n * @return {void}\n */\n submit () {\n this.$refs.submitButtonRef.click();\n },\n /**\n * Clears the element\n * @return {void}\n */\n clear () {\n this.element.clear();\n },\n /**\n * Destroys the element\n * @return {void}\n */\n destroy () {\n this.element.destroy();\n },\n /**\n * Focuses on the element\n * @return {void}\n */\n focus () {\n console.warn('This method will currently not work on iOS 13+ due to a system limitation.');\n this.element.focus();\n },\n /**\n * Unmounts the element\n * @return {void}\n */\n unmount () {\n this.element.unmount();\n },\n /**\n * Updates the element\n * @param {string} opts.classes.base The base class applied to the container. Defaults to StripeElement.\n * @param {string} opts.classes.complete The class name to apply when the Element is complete. Defaults to StripeElement--complete.\n * @param {string} opts.classes.empty The class name to apply when the Element is empty. Defaults to StripeElement--empty.\n * @param {string} opts.classes.focus The class name to apply when the Element is focused. Defaults to StripeElement--focus.\n * @param {string} opts.classes.invalid The class name to apply when the Element is invalid. Defaults to StripeElement--invalid.\n * @param {string} opts.classes.webkitAutoFill The class name to apply when the Element has its value autofilled by the browser (only on Chrome and Safari). Defaults to StripeElement--webkit-autofill.\n * @param {Object} opts.style Customize the appearance of this element using CSS properties passed in a Style object.\n * @param {string} opts.value A pre-filled set of values to include in the input (e.g., {postalCode: '94110'}). Note that sensitive card information (card number, CVC, and expiration date) cannot be pre-filled\n * @param {boolean} opts.hidePostalCode Hide the postal code field. Default is false. If you are already collecting a full billing address or postal code elsewhere, set this to true.\n * @param {string} opts.iconStyle Appearance of the icon in the Element. Either solid or default.\n * @param {boolean} opts.hideIcon Hides the icon in the Element. Default is false.\n * @param {boolean} opts.disabled Applies a disabled state to the Element such that user input is not accepted. Default is false.\n */\n update (opts) {\n this.element.update(opts);\n },\n // events\n onChange (e) {\n this.$emit('element-change', e);\n },\n onReady (e) {\n this.$emit('element-ready', e);\n },\n onFocus (e) {\n this.$emit('element-focus', e);\n },\n onBlur (e) {\n this.$emit('element-blur', e);\n },\n onEscape (e) {\n this.$emit('element-escape', e);\n },\n onClick (e) {\n this.$emit('element-click', e);\n },\n },\n};\n<\/script>\n\n<style scoped>\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n\n.StripeElement--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n.StripeElement--invalid {\n border-color: #fa755a;\n}\n\n.StripeElement--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n.hide {\n display: none;\n}\n</style>\n"]},media:void 0})},__vue_scope_id__="data-v-e001dcc2",__vue_module_identifier__=void 0,__vue_is_functional_template__=!1,__vue_component__=normalizeComponent({render:__vue_render__,staticRenderFns:__vue_staticRenderFns__},__vue_inject_styles__,__vue_script__,__vue_scope_id__,!1,void 0,!1,createInjector,void 0,void 0);var index$3={install:function(e,t){var n,r,o,i,s,a,l;return regenerator.async((function(c){for(;;)switch(c.prev=c.next){case 0:n=t.pk,r=t.stripeAccount,o=t.apiVersion,i=t.locale,s=t.elementsOptions,(a=window.Stripe(n,{stripeAccount:r,apiVersion:o,locale:i})).registerAppInfo(STRIPE_PARTNER_DETAILS),l=a.elements(s),e.prototype.$stripe=a,e.prototype.$stripeElements=l;case 6:case"end":return c.stop()}}))}};exports.StripeCheckout=index$2,exports.StripeElementCard=__vue_component__,exports.StripeElementsPlugin=index$3,exports.StripePlugin=index;
@@ -4,4 +4,4 @@
4
4
  * (c) 2018 Eduardo San Martin Morote <posva13@gmail.com>
5
5
  * @license MIT
6
6
  */
7
- var E={beforeCreate:function(){var e=this.$options.props;e&&(this._$coertions=Object.keys(e).filter((function(n){return e[n].coerce})).map((function(n){return[n,e[n].coerce]})))},computed:{$coerced:function(){var e=this;return this._$coertions.reduce((function(n,t){var r=t[0],o=t[1];return n[r]=o.call(e,e.$props[r]),n}),{})}}},w={props:{pk:{type:String,required:!0},mode:{type:String,validator:function(e){return["payment","subscription"].includes(e)}},lineItems:{type:Array,default:void 0},items:{type:Array},successUrl:{type:String,default:window.location.href},cancelUrl:{type:String,default:window.location.href},submitType:{type:String,validator:function(e){return t.includes(e)}},billingAddressCollection:{type:String,default:"auto",validator:function(e){return r.includes(e)}},clientReferenceId:{type:String},customerEmail:{type:String},sessionId:{type:String},locale:{type:String,default:"auto",coerce:function(e){return n.includes(e)?e:(console.warn("VueStripe Warning: '".concat(e,"' is not supported by Stripe yet. Falling back to default '").concat("auto","'.")),"auto")}},shippingAddressCollection:{type:Object,validator:function(e){return Object.prototype.hasOwnProperty.call(e,"allowedCountries")}},disableAdvancedFraudDetection:{type:Boolean}},mixins:[E],render:function(e){return e},mounted:function(){a()||console.warn(s)},methods:{redirectToCheckout:function(){var e,n;return c.async((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,a()){t.next=3;break}throw Error(s);case 3:return this.$emit("loading",!0),this.disableAdvancedFraudDetection&&b.setLoadParameters({advancedFraudSignals:!1}),t.next=7,c.awrap(b(this.pk));case 7:if((e=t.sent).registerAppInfo(i),!this.sessionId){t.next=12;break}return e.redirectToCheckout({sessionId:this.sessionId}),t.abrupt("return");case 12:if(!this.lineItems||!this.lineItems.length||this.mode){t.next=15;break}return console.error("Error: Property 'mode' is required when using 'lineItems'. See https://stripe.com/docs/js/checkout/redirect_to_checkout#stripe_checkout_redirect_to_checkout-options-mode"),t.abrupt("return");case 15:n={billingAddressCollection:this.billingAddressCollection,cancelUrl:this.cancelUrl,clientReferenceId:this.clientReferenceId,customerEmail:this.customerEmail,items:this.items,lineItems:this.lineItems,locale:this.$coerced.locale,mode:this.mode,shippingAddressCollection:this.shippingAddressCollection,submitType:this.submitType,successUrl:this.successUrl},e.redirectToCheckout(n),t.next=23;break;case 19:t.prev=19,t.t0=t.catch(0),console.error(t.t0),this.$emit("error",t.t0);case 23:case"end":return t.stop()}}),null,this,[[0,19]])}}};var A=function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e};function S(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?S(Object(t),!0).forEach((function(n){A(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var C={props:{pk:{type:String,required:!0},stripeAccount:{type:String,default:void 0},apiVersion:{type:String,default:void 0},locale:{type:String,default:"auto"},elementsOptions:{type:Object,default:function(){return{}}},tokenData:{type:Object,default:function(){return{}}},disableAdvancedFraudDetection:{type:Boolean},classes:{type:Object,default:function(){return{}}},elementStyle:{type:Object,default:function(){return o}},value:{type:String,default:void 0},hidePostalCode:Boolean,iconStyle:{type:String,default:"default",validator:function(e){return["solid","default"].includes(e)}},hideIcon:Boolean,disabled:Boolean},data:function(){return{loading:!1,stripe:null,elements:null,element:null,card:null}},computed:{form:function(){return document.getElementById("stripe-element-form")}},mounted:function(){var e,n,t=this;return c.async((function(r){for(;;)switch(r.prev=r.next){case 0:if(a()){r.next=3;break}return document.getElementById("stripe-element-mount-point").innerHTML='<p style="color: red">'.concat(s,"</p>"),r.abrupt("return");case 3:return this.disableAdvancedFraudDetection&&b.setLoadParameters({advancedFraudSignals:!1}),e={stripeAccount:this.stripeAccount,apiVersion:this.apiVersion,locale:this.locale},n={classes:this.classes,style:this.elementStyle,value:this.value,hidePostalCode:this.hidePostalCode,iconStyle:this.iconStyle,hideIcon:this.hideIcon,disabled:this.disabled},r.next=8,c.awrap(b(this.pk,e));case 8:this.stripe=r.sent,this.stripe.registerAppInfo(i),this.elements=this.stripe.elements(this.elementsOptions),this.element=this.elements.create("card",n),this.element.mount("#stripe-element-mount-point"),this.element.on("change",(function(e){var n=document.getElementById("stripe-element-errors");e.error?n.textContent=e.error.message:n.textContent="",t.onChange(e)})),this.element.on("blur",this.onBlur),this.element.on("click",this.onClick),this.element.on("escape",this.onEscape),this.element.on("focus",this.onFocus),this.element.on("ready",this.onReady),this.form.addEventListener("submit",(function(e){var n,r,o,i;return c.async((function(s){for(;;)switch(s.prev=s.next){case 0:return s.prev=0,t.$emit("loading",!0),e.preventDefault(),n=x({},t.element),t.amount&&(n.amount=t.amount),s.next=7,c.awrap(t.stripe.createToken(n,t.tokenData));case 7:if(r=s.sent,o=r.token,!(i=r.error)){s.next=15;break}return document.getElementById("stripe-element-errors").textContent=i.message,t.$emit("error",i),s.abrupt("return");case 15:t.$emit("token",o),s.next=22;break;case 18:s.prev=18,s.t0=s.catch(0),console.error(s.t0),t.$emit("error",s.t0);case 22:return s.prev=22,t.$emit("loading",!1),s.finish(22);case 25:case"end":return s.stop()}}),null,null,[[0,18,22,25]])}));case 20:case"end":return r.stop()}}),null,this)},methods:{submit:function(){this.$refs.submitButtonRef.click()},clear:function(){this.element.clear()},destroy:function(){this.element.destroy()},focus:function(){console.warn("This method will currently not work on iOS 13+ due to a system limitation."),this.element.focus()},unmount:function(){this.element.unmount()},update:function(e){this.element.update(e)},onChange:function(e){this.$emit("element-change",e)},onReady:function(e){this.$emit("element-ready",e)},onFocus:function(e){this.$emit("element-focus",e)},onBlur:function(e){this.$emit("element-blur",e)},onEscape:function(e){this.$emit("element-escape",e)},onClick:function(e){this.$emit("element-click",e)}}};const k="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());let _;const O={};const T=C;var j=function(){var e=this.$createElement,n=this._self._c||e;return n("div",[n("form",{attrs:{id:"stripe-element-form"}},[n("div",{attrs:{id:"stripe-element-mount-point"}}),this._v(" "),this._t("stripe-element-errors",[n("div",{attrs:{id:"stripe-element-errors",role:"alert"}})]),this._v(" "),n("button",{ref:"submitButtonRef",staticClass:"hide",attrs:{type:"submit"}})],2)])};j._withStripped=!0;const L=function(e,n,t,r,o,i,s,a,l,c){"boolean"!=typeof s&&(l=a,a=s,s=!1);const u="function"==typeof t?t.options:t;let d;if(e&&e.render&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0,o&&(u.functional=!0)),r&&(u._scopeId=r),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=d):n&&(d=s?function(e){n.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){n.call(this,a(e))}),d)if(u.functional){const e=u.render;u.render=function(n,t){return d.call(t),e(n,t)}}else{const e=u.beforeCreate;u.beforeCreate=e?[].concat(e,d):[d]}return t}({render:j,staticRenderFns:[]},(function(e){e&&e("data-v-49c9d25b_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement[data-v-49c9d25b] {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n.StripeElement--focus[data-v-49c9d25b] {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n.StripeElement--invalid[data-v-49c9d25b] {\n border-color: #fa755a;\n}\n.StripeElement--webkit-autofill[data-v-49c9d25b] {\n background-color: #fefde5 !important;\n}\n.hide[data-v-49c9d25b] {\n visibility: hidden;\n}\n",map:{version:3,sources:["/home/runner/work/vue-stripe/vue-stripe/src/elements/Card.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiPA;;;EAGA;AACA;EACA,sBAAA;;EAEA,YAAA;;EAEA,kBAAA;;EAEA,6BAAA;EACA,kBAAA;EACA,uBAAA;;EAEA,+BAAA;EACA,yCAAA;EACA,iCAAA;AACA;AAEA;EACA,+BAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,oCAAA;AACA;AAEA;EACA,kBAAA;AACA",file:"Card.vue",sourcesContent:["<template>\n <div>\n <form id=\"stripe-element-form\">\n <div id=\"stripe-element-mount-point\" />\n <slot name=\"stripe-element-errors\">\n <div\n id=\"stripe-element-errors\"\n role=\"alert\"\n />\n </slot>\n <button\n ref=\"submitButtonRef\"\n type=\"submit\"\n class=\"hide\"\n />\n </form>\n </div>\n</template>\n\n<script>\nimport { loadStripe } from '@stripe/stripe-js/dist/pure.esm.js';\nimport { isSecureHost } from '../utils';\nimport {\n DEFAULT_ELEMENT_STYLE,\n STRIPE_PARTNER_DETAILS,\n INSECURE_HOST_ERROR_MESSAGE,\n} from '../constants';\nconst ELEMENT_TYPE = 'card';\nexport default {\n props: {\n pk: {\n type: String,\n required: true,\n },\n stripeAccount: {\n type: String,\n default: undefined,\n },\n apiVersion: {\n type: String,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'auto',\n },\n elementsOptions: {\n type: Object,\n default: () => ({}),\n },\n tokenData: {\n type: Object,\n default: () => ({}),\n },\n disableAdvancedFraudDetection: {\n type: Boolean,\n },\n // element specific options\n classes: {\n type: Object,\n default: () => ({}),\n },\n elementStyle: {\n type: Object,\n default: () => (DEFAULT_ELEMENT_STYLE),\n },\n value: {\n type: String,\n default: undefined,\n },\n hidePostalCode: Boolean,\n iconStyle: {\n type: String,\n default: 'default',\n validator: value => ['solid', 'default'].includes(value),\n },\n hideIcon: Boolean,\n disabled: Boolean,\n },\n data () {\n return {\n loading: false,\n stripe: null,\n elements: null,\n element: null,\n card: null,\n };\n },\n computed: {\n form () {\n return document.getElementById('stripe-element-form');\n },\n },\n async mounted () {\n if (!isSecureHost()) {\n document.getElementById('stripe-element-mount-point').innerHTML = `<p style=\"color: red\">${INSECURE_HOST_ERROR_MESSAGE}</p>`;\n return;\n }\n\n if (this.disableAdvancedFraudDetection) loadStripe.setLoadParameters({ advancedFraudSignals: false });\n\n const stripeOptions = {\n stripeAccount: this.stripeAccount,\n apiVersion: this.apiVersion,\n locale: this.locale,\n };\n const createOptions = {\n classes: this.classes,\n style: this.elementStyle,\n value: this.value,\n hidePostalCode: this.hidePostalCode,\n iconStyle: this.iconStyle,\n hideIcon: this.hideIcon,\n disabled: this.disabled,\n };\n\n this.stripe = await loadStripe(this.pk, stripeOptions);\n this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS);\n this.elements = this.stripe.elements(this.elementsOptions);\n this.element = this.elements.create(ELEMENT_TYPE, createOptions);\n this.element.mount('#stripe-element-mount-point');\n\n this.element.on('change', (event) => {\n var displayError = document.getElementById('stripe-element-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n this.onChange(event);\n });\n\n this.element.on('blur', this.onBlur);\n this.element.on('click', this.onClick);\n this.element.on('escape', this.onEscape);\n this.element.on('focus', this.onFocus);\n this.element.on('ready', this.onReady);\n\n this.form.addEventListener('submit', async (event) => {\n try {\n this.$emit('loading', true);\n event.preventDefault();\n const data = {\n ...this.element,\n };\n if (this.amount) data.amount = this.amount;\n const { token, error } = await this.stripe.createToken(data, this.tokenData);\n if (error) {\n const errorElement = document.getElementById('stripe-element-errors');\n errorElement.textContent = error.message;\n this.$emit('error', error);\n return;\n }\n this.$emit('token', token);\n } catch (error) {\n console.error(error);\n this.$emit('error', error);\n } finally {\n this.$emit('loading', false);\n }\n });\n },\n methods: {\n /**\n * Triggers the submission of the form\n * @return {void}\n */\n submit () {\n this.$refs.submitButtonRef.click();\n },\n /**\n * Clears the element\n * @return {void}\n */\n clear () {\n this.element.clear();\n },\n /**\n * Destroys the element\n * @return {void}\n */\n destroy () {\n this.element.destroy();\n },\n /**\n * Focuses on the element\n * @return {void}\n */\n focus () {\n console.warn('This method will currently not work on iOS 13+ due to a system limitation.');\n this.element.focus();\n },\n /**\n * Unmounts the element\n * @return {void}\n */\n unmount () {\n this.element.unmount();\n },\n /**\n * Updates the element\n * @param {string} opts.classes.base The base class applied to the container. Defaults to StripeElement.\n * @param {string} opts.classes.complete The class name to apply when the Element is complete. Defaults to StripeElement--complete.\n * @param {string} opts.classes.empty The class name to apply when the Element is empty. Defaults to StripeElement--empty.\n * @param {string} opts.classes.focus The class name to apply when the Element is focused. Defaults to StripeElement--focus.\n * @param {string} opts.classes.invalid The class name to apply when the Element is invalid. Defaults to StripeElement--invalid.\n * @param {string} opts.classes.webkitAutoFill The class name to apply when the Element has its value autofilled by the browser (only on Chrome and Safari). Defaults to StripeElement--webkit-autofill.\n * @param {Object} opts.style Customize the appearance of this element using CSS properties passed in a Style object.\n * @param {string} opts.value A pre-filled set of values to include in the input (e.g., {postalCode: '94110'}). Note that sensitive card information (card number, CVC, and expiration date) cannot be pre-filled\n * @param {boolean} opts.hidePostalCode Hide the postal code field. Default is false. If you are already collecting a full billing address or postal code elsewhere, set this to true.\n * @param {string} opts.iconStyle Appearance of the icon in the Element. Either solid or default.\n * @param {boolean} opts.hideIcon Hides the icon in the Element. Default is false.\n * @param {boolean} opts.disabled Applies a disabled state to the Element such that user input is not accepted. Default is false.\n */\n update (opts) {\n this.element.update(opts);\n },\n // events\n onChange (e) {\n this.$emit('element-change', e);\n },\n onReady (e) {\n this.$emit('element-ready', e);\n },\n onFocus (e) {\n this.$emit('element-focus', e);\n },\n onBlur (e) {\n this.$emit('element-blur', e);\n },\n onEscape (e) {\n this.$emit('element-escape', e);\n },\n onClick (e) {\n this.$emit('element-click', e);\n },\n },\n};\n<\/script>\n\n<style scoped>\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n\n.StripeElement--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n.StripeElement--invalid {\n border-color: #fa755a;\n}\n\n.StripeElement--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n.hide {\n visibility: hidden;\n}\n</style>\n"]},media:void 0})}),T,"data-v-49c9d25b",!1,void 0,!1,(function(e){return(e,n)=>(function(e,n){const t=k?n.media||"default":e,r=O[t]||(O[t]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);let t=n.source;if(n.map&&(t+="\n/*# sourceURL="+n.map.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",n.media&&r.element.setAttribute("media",n.media),void 0===_&&(_=document.head||document.getElementsByTagName("head")[0]),_.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(t),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{const e=r.ids.size-1,n=document.createTextNode(t),o=r.element.childNodes;o[e]&&r.element.removeChild(o[e]),o.length?r.element.insertBefore(n,o[e]):r.element.appendChild(n)}}})(e,n)}),void 0,void 0);var I={install:function(e,n){var t,r,o,s,a,l,u;return c.async((function(c){for(;;)switch(c.prev=c.next){case 0:t=n.pk,r=n.stripeAccount,o=n.apiVersion,s=n.locale,a=n.elementsOptions,(l=window.Stripe(t,{stripeAccount:r,apiVersion:o,locale:s})).registerAppInfo(i),u=l.elements(a),e.prototype.$stripe=l,e.prototype.$stripeElements=u;case 6:case"end":return c.stop()}}))}};e.StripeCheckout=w,e.StripeElementCard=L,e.StripeElementsPlugin=I,e.StripePlugin=l,Object.defineProperty(e,"__esModule",{value:!0})}));
7
+ var E={beforeCreate:function(){var e=this.$options.props;e&&(this._$coertions=Object.keys(e).filter((function(n){return e[n].coerce})).map((function(n){return[n,e[n].coerce]})))},computed:{$coerced:function(){var e=this;return this._$coertions.reduce((function(n,t){var r=t[0],o=t[1];return n[r]=o.call(e,e.$props[r]),n}),{})}}},w={props:{pk:{type:String,required:!0},mode:{type:String,validator:function(e){return["payment","subscription"].includes(e)}},lineItems:{type:Array,default:void 0},items:{type:Array},successUrl:{type:String,default:window.location.href},cancelUrl:{type:String,default:window.location.href},submitType:{type:String,validator:function(e){return t.includes(e)}},billingAddressCollection:{type:String,default:"auto",validator:function(e){return r.includes(e)}},clientReferenceId:{type:String},customerEmail:{type:String},sessionId:{type:String},locale:{type:String,default:"auto",coerce:function(e){return n.includes(e)?e:(console.warn("VueStripe Warning: '".concat(e,"' is not supported by Stripe yet. Falling back to default '").concat("auto","'.")),"auto")}},shippingAddressCollection:{type:Object,validator:function(e){return Object.prototype.hasOwnProperty.call(e,"allowedCountries")}},disableAdvancedFraudDetection:{type:Boolean}},mixins:[E],render:function(e){return e},mounted:function(){a()||console.warn(s)},methods:{redirectToCheckout:function(){var e,n;return c.async((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,a()){t.next=3;break}throw Error(s);case 3:return this.$emit("loading",!0),this.disableAdvancedFraudDetection&&b.setLoadParameters({advancedFraudSignals:!1}),t.next=7,c.awrap(b(this.pk));case 7:if((e=t.sent).registerAppInfo(i),!this.sessionId){t.next=12;break}return e.redirectToCheckout({sessionId:this.sessionId}),t.abrupt("return");case 12:if(!this.lineItems||!this.lineItems.length||this.mode){t.next=15;break}return console.error("Error: Property 'mode' is required when using 'lineItems'. See https://stripe.com/docs/js/checkout/redirect_to_checkout#stripe_checkout_redirect_to_checkout-options-mode"),t.abrupt("return");case 15:n={billingAddressCollection:this.billingAddressCollection,cancelUrl:this.cancelUrl,clientReferenceId:this.clientReferenceId,customerEmail:this.customerEmail,items:this.items,lineItems:this.lineItems,locale:this.$coerced.locale,mode:this.mode,shippingAddressCollection:this.shippingAddressCollection,submitType:this.submitType,successUrl:this.successUrl},e.redirectToCheckout(n),t.next=23;break;case 19:t.prev=19,t.t0=t.catch(0),console.error(t.t0),this.$emit("error",t.t0);case 23:case"end":return t.stop()}}),null,this,[[0,19]])}}};var A=function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e};function S(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?S(Object(t),!0).forEach((function(n){A(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var C={props:{pk:{type:String,required:!0},stripeAccount:{type:String,default:void 0},apiVersion:{type:String,default:void 0},locale:{type:String,default:"auto"},elementsOptions:{type:Object,default:function(){return{}}},tokenData:{type:Object,default:function(){return{}}},disableAdvancedFraudDetection:{type:Boolean},classes:{type:Object,default:function(){return{}}},elementStyle:{type:Object,default:function(){return o}},value:{type:String,default:void 0},hidePostalCode:Boolean,iconStyle:{type:String,default:"default",validator:function(e){return["solid","default"].includes(e)}},hideIcon:Boolean,disabled:Boolean},data:function(){return{loading:!1,stripe:null,elements:null,element:null,card:null}},computed:{form:function(){return document.getElementById("stripe-element-form")}},mounted:function(){var e,n,t=this;return c.async((function(r){for(;;)switch(r.prev=r.next){case 0:if(a()){r.next=3;break}return document.getElementById("stripe-element-mount-point").innerHTML='<p style="color: red">'.concat(s,"</p>"),r.abrupt("return");case 3:return this.disableAdvancedFraudDetection&&b.setLoadParameters({advancedFraudSignals:!1}),e={stripeAccount:this.stripeAccount,apiVersion:this.apiVersion,locale:this.locale},n={classes:this.classes,style:this.elementStyle,value:this.value,hidePostalCode:this.hidePostalCode,iconStyle:this.iconStyle,hideIcon:this.hideIcon,disabled:this.disabled},r.next=8,c.awrap(b(this.pk,e));case 8:this.stripe=r.sent,this.stripe.registerAppInfo(i),this.elements=this.stripe.elements(this.elementsOptions),this.element=this.elements.create("card",n),this.element.mount("#stripe-element-mount-point"),this.element.on("change",(function(e){var n=document.getElementById("stripe-element-errors");e.error?n.textContent=e.error.message:n.textContent="",t.onChange(e)})),this.element.on("blur",this.onBlur),this.element.on("click",this.onClick),this.element.on("escape",this.onEscape),this.element.on("focus",this.onFocus),this.element.on("ready",this.onReady),this.form.addEventListener("submit",(function(e){var n,r,o,i;return c.async((function(s){for(;;)switch(s.prev=s.next){case 0:return s.prev=0,t.$emit("loading",!0),e.preventDefault(),n=x({},t.element),t.amount&&(n.amount=t.amount),s.next=7,c.awrap(t.stripe.createToken(n,t.tokenData));case 7:if(r=s.sent,o=r.token,!(i=r.error)){s.next=15;break}return document.getElementById("stripe-element-errors").textContent=i.message,t.$emit("error",i),s.abrupt("return");case 15:t.$emit("token",o),s.next=22;break;case 18:s.prev=18,s.t0=s.catch(0),console.error(s.t0),t.$emit("error",s.t0);case 22:return s.prev=22,t.$emit("loading",!1),s.finish(22);case 25:case"end":return s.stop()}}),null,null,[[0,18,22,25]])}));case 20:case"end":return r.stop()}}),null,this)},methods:{submit:function(){this.$refs.submitButtonRef.click()},clear:function(){this.element.clear()},destroy:function(){this.element.destroy()},focus:function(){console.warn("This method will currently not work on iOS 13+ due to a system limitation."),this.element.focus()},unmount:function(){this.element.unmount()},update:function(e){this.element.update(e)},onChange:function(e){this.$emit("element-change",e)},onReady:function(e){this.$emit("element-ready",e)},onFocus:function(e){this.$emit("element-focus",e)},onBlur:function(e){this.$emit("element-blur",e)},onEscape:function(e){this.$emit("element-escape",e)},onClick:function(e){this.$emit("element-click",e)}}};const k="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());let _;const O={};const T=C;var j=function(){var e=this.$createElement,n=this._self._c||e;return n("div",[n("form",{attrs:{id:"stripe-element-form"}},[n("div",{attrs:{id:"stripe-element-mount-point"}}),this._v(" "),this._t("stripe-element-errors",[n("div",{attrs:{id:"stripe-element-errors",role:"alert"}})]),this._v(" "),n("button",{ref:"submitButtonRef",staticClass:"hide",attrs:{type:"submit"}})],2)])};j._withStripped=!0;const L=function(e,n,t,r,o,i,s,a,l,c){"boolean"!=typeof s&&(l=a,a=s,s=!1);const u="function"==typeof t?t.options:t;let d;if(e&&e.render&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0,o&&(u.functional=!0)),r&&(u._scopeId=r),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=d):n&&(d=s?function(e){n.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){n.call(this,a(e))}),d)if(u.functional){const e=u.render;u.render=function(n,t){return d.call(t),e(n,t)}}else{const e=u.beforeCreate;u.beforeCreate=e?[].concat(e,d):[d]}return t}({render:j,staticRenderFns:[]},(function(e){e&&e("data-v-e001dcc2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement[data-v-e001dcc2] {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n.StripeElement--focus[data-v-e001dcc2] {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n.StripeElement--invalid[data-v-e001dcc2] {\n border-color: #fa755a;\n}\n.StripeElement--webkit-autofill[data-v-e001dcc2] {\n background-color: #fefde5 !important;\n}\n.hide[data-v-e001dcc2] {\n display: none;\n}\n",map:{version:3,sources:["/home/runner/work/vue-stripe/vue-stripe/src/elements/Card.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiPA;;;EAGA;AACA;EACA,sBAAA;;EAEA,YAAA;;EAEA,kBAAA;;EAEA,6BAAA;EACA,kBAAA;EACA,uBAAA;;EAEA,+BAAA;EACA,yCAAA;EACA,iCAAA;AACA;AAEA;EACA,+BAAA;AACA;AAEA;EACA,qBAAA;AACA;AAEA;EACA,oCAAA;AACA;AAEA;EACA,aAAA;AACA",file:"Card.vue",sourcesContent:["<template>\n <div>\n <form id=\"stripe-element-form\">\n <div id=\"stripe-element-mount-point\" />\n <slot name=\"stripe-element-errors\">\n <div\n id=\"stripe-element-errors\"\n role=\"alert\"\n />\n </slot>\n <button\n ref=\"submitButtonRef\"\n type=\"submit\"\n class=\"hide\"\n />\n </form>\n </div>\n</template>\n\n<script>\nimport { loadStripe } from '@stripe/stripe-js/dist/pure.esm.js';\nimport { isSecureHost } from '../utils';\nimport {\n DEFAULT_ELEMENT_STYLE,\n STRIPE_PARTNER_DETAILS,\n INSECURE_HOST_ERROR_MESSAGE,\n} from '../constants';\nconst ELEMENT_TYPE = 'card';\nexport default {\n props: {\n pk: {\n type: String,\n required: true,\n },\n stripeAccount: {\n type: String,\n default: undefined,\n },\n apiVersion: {\n type: String,\n default: undefined,\n },\n locale: {\n type: String,\n default: 'auto',\n },\n elementsOptions: {\n type: Object,\n default: () => ({}),\n },\n tokenData: {\n type: Object,\n default: () => ({}),\n },\n disableAdvancedFraudDetection: {\n type: Boolean,\n },\n // element specific options\n classes: {\n type: Object,\n default: () => ({}),\n },\n elementStyle: {\n type: Object,\n default: () => (DEFAULT_ELEMENT_STYLE),\n },\n value: {\n type: String,\n default: undefined,\n },\n hidePostalCode: Boolean,\n iconStyle: {\n type: String,\n default: 'default',\n validator: value => ['solid', 'default'].includes(value),\n },\n hideIcon: Boolean,\n disabled: Boolean,\n },\n data () {\n return {\n loading: false,\n stripe: null,\n elements: null,\n element: null,\n card: null,\n };\n },\n computed: {\n form () {\n return document.getElementById('stripe-element-form');\n },\n },\n async mounted () {\n if (!isSecureHost()) {\n document.getElementById('stripe-element-mount-point').innerHTML = `<p style=\"color: red\">${INSECURE_HOST_ERROR_MESSAGE}</p>`;\n return;\n }\n\n if (this.disableAdvancedFraudDetection) loadStripe.setLoadParameters({ advancedFraudSignals: false });\n\n const stripeOptions = {\n stripeAccount: this.stripeAccount,\n apiVersion: this.apiVersion,\n locale: this.locale,\n };\n const createOptions = {\n classes: this.classes,\n style: this.elementStyle,\n value: this.value,\n hidePostalCode: this.hidePostalCode,\n iconStyle: this.iconStyle,\n hideIcon: this.hideIcon,\n disabled: this.disabled,\n };\n\n this.stripe = await loadStripe(this.pk, stripeOptions);\n this.stripe.registerAppInfo(STRIPE_PARTNER_DETAILS);\n this.elements = this.stripe.elements(this.elementsOptions);\n this.element = this.elements.create(ELEMENT_TYPE, createOptions);\n this.element.mount('#stripe-element-mount-point');\n\n this.element.on('change', (event) => {\n var displayError = document.getElementById('stripe-element-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n this.onChange(event);\n });\n\n this.element.on('blur', this.onBlur);\n this.element.on('click', this.onClick);\n this.element.on('escape', this.onEscape);\n this.element.on('focus', this.onFocus);\n this.element.on('ready', this.onReady);\n\n this.form.addEventListener('submit', async (event) => {\n try {\n this.$emit('loading', true);\n event.preventDefault();\n const data = {\n ...this.element,\n };\n if (this.amount) data.amount = this.amount;\n const { token, error } = await this.stripe.createToken(data, this.tokenData);\n if (error) {\n const errorElement = document.getElementById('stripe-element-errors');\n errorElement.textContent = error.message;\n this.$emit('error', error);\n return;\n }\n this.$emit('token', token);\n } catch (error) {\n console.error(error);\n this.$emit('error', error);\n } finally {\n this.$emit('loading', false);\n }\n });\n },\n methods: {\n /**\n * Triggers the submission of the form\n * @return {void}\n */\n submit () {\n this.$refs.submitButtonRef.click();\n },\n /**\n * Clears the element\n * @return {void}\n */\n clear () {\n this.element.clear();\n },\n /**\n * Destroys the element\n * @return {void}\n */\n destroy () {\n this.element.destroy();\n },\n /**\n * Focuses on the element\n * @return {void}\n */\n focus () {\n console.warn('This method will currently not work on iOS 13+ due to a system limitation.');\n this.element.focus();\n },\n /**\n * Unmounts the element\n * @return {void}\n */\n unmount () {\n this.element.unmount();\n },\n /**\n * Updates the element\n * @param {string} opts.classes.base The base class applied to the container. Defaults to StripeElement.\n * @param {string} opts.classes.complete The class name to apply when the Element is complete. Defaults to StripeElement--complete.\n * @param {string} opts.classes.empty The class name to apply when the Element is empty. Defaults to StripeElement--empty.\n * @param {string} opts.classes.focus The class name to apply when the Element is focused. Defaults to StripeElement--focus.\n * @param {string} opts.classes.invalid The class name to apply when the Element is invalid. Defaults to StripeElement--invalid.\n * @param {string} opts.classes.webkitAutoFill The class name to apply when the Element has its value autofilled by the browser (only on Chrome and Safari). Defaults to StripeElement--webkit-autofill.\n * @param {Object} opts.style Customize the appearance of this element using CSS properties passed in a Style object.\n * @param {string} opts.value A pre-filled set of values to include in the input (e.g., {postalCode: '94110'}). Note that sensitive card information (card number, CVC, and expiration date) cannot be pre-filled\n * @param {boolean} opts.hidePostalCode Hide the postal code field. Default is false. If you are already collecting a full billing address or postal code elsewhere, set this to true.\n * @param {string} opts.iconStyle Appearance of the icon in the Element. Either solid or default.\n * @param {boolean} opts.hideIcon Hides the icon in the Element. Default is false.\n * @param {boolean} opts.disabled Applies a disabled state to the Element such that user input is not accepted. Default is false.\n */\n update (opts) {\n this.element.update(opts);\n },\n // events\n onChange (e) {\n this.$emit('element-change', e);\n },\n onReady (e) {\n this.$emit('element-ready', e);\n },\n onFocus (e) {\n this.$emit('element-focus', e);\n },\n onBlur (e) {\n this.$emit('element-blur', e);\n },\n onEscape (e) {\n this.$emit('element-escape', e);\n },\n onClick (e) {\n this.$emit('element-click', e);\n },\n },\n};\n<\/script>\n\n<style scoped>\n/**\n * The CSS shown here will not be introduced in the Quickstart guide, but shows\n * how you can use CSS to style your Element's container.\n */\n.StripeElement {\n box-sizing: border-box;\n\n height: 40px;\n\n padding: 10px 12px;\n\n border: 1px solid transparent;\n border-radius: 4px;\n background-color: white;\n\n box-shadow: 0 1px 3px 0 #e6ebf1;\n -webkit-transition: box-shadow 150ms ease;\n transition: box-shadow 150ms ease;\n}\n\n.StripeElement--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n.StripeElement--invalid {\n border-color: #fa755a;\n}\n\n.StripeElement--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n.hide {\n display: none;\n}\n</style>\n"]},media:void 0})}),T,"data-v-e001dcc2",!1,void 0,!1,(function(e){return(e,n)=>(function(e,n){const t=k?n.media||"default":e,r=O[t]||(O[t]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);let t=n.source;if(n.map&&(t+="\n/*# sourceURL="+n.map.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",n.media&&r.element.setAttribute("media",n.media),void 0===_&&(_=document.head||document.getElementsByTagName("head")[0]),_.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(t),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{const e=r.ids.size-1,n=document.createTextNode(t),o=r.element.childNodes;o[e]&&r.element.removeChild(o[e]),o.length?r.element.insertBefore(n,o[e]):r.element.appendChild(n)}}})(e,n)}),void 0,void 0);var I={install:function(e,n){var t,r,o,s,a,l,u;return c.async((function(c){for(;;)switch(c.prev=c.next){case 0:t=n.pk,r=n.stripeAccount,o=n.apiVersion,s=n.locale,a=n.elementsOptions,(l=window.Stripe(t,{stripeAccount:r,apiVersion:o,locale:s})).registerAppInfo(i),u=l.elements(a),e.prototype.$stripe=l,e.prototype.$stripeElements=u;case 6:case"end":return c.stop()}}))}};e.StripeCheckout=w,e.StripeElementCard=L,e.StripeElementsPlugin=I,e.StripePlugin=l,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-stripe/vue-stripe",
3
- "version": "4.2.7",
3
+ "version": "4.2.8",
4
4
  "description": "Stripe Checkout & Elements for Vue.js",
5
5
  "author": "jofftiquez@gmail.com",
6
6
  "scripts": {