@whop/checkout
Version:
Embed Whop checkout on any website
1 lines • 16 kB
JavaScript
;function e(e,r){if(r==null||r>e.length)r=e.length;for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function r(e){if(Array.isArray(e))return e}function t(r){if(Array.isArray(r))return e(r)}function n(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function o(e,r,t,n,o,i,u){try{var a=e[i](u);var c=a.value}catch(e){t(e);return}if(a.done){r(c)}else{Promise.resolve(c).then(n,o)}}function i(e){return function(){var r=this,t=arguments;return new Promise(function(n,i){var u=e.apply(r,t);function a(e){o(u,n,i,a,c,"next",e)}function c(e){o(u,n,i,a,c,"throw",e)}a(undefined)})}}function u(e,r,t){r=f(r);return P(e,R()?Reflect.construct(r,t||[],f(e).constructor):r.apply(e,t))}function a(e,r){if(!(e instanceof r)){throw new TypeError("Cannot call a class as a function")}}function c(e,r,t){if(R()){c=Reflect.construct}else{c=function e(e,r,t){var n=[null];n.push.apply(n,r);var o=Function.bind.apply(e,n);var i=new o;if(t)j(i,t.prototype);return i}}return c.apply(null,arguments)}function l(e,r,t){if(r in e){Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true})}else{e[r]=t}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function s(e,r){if(typeof r!=="function"&&r!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:true,configurable:true}});if(r)j(e,r)}function d(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function p(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function v(e,r){var t=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(t==null)return;var n=[];var o=true;var i=false;var u,a;try{for(t=t.call(e);!(o=(u=t.next()).done);o=true){n.push(u.value);if(r&&n.length===r)break}}catch(e){i=true;a=e}finally{try{if(!o&&t["return"]!=null)t["return"]()}finally{if(i)throw a}}return n}function y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};var n=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}n.forEach(function(r){l(e,r,t[r])})}return e}function b(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(r){n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})}t.push.apply(t,n)}return t}function w(e,r){r=r!=null?r:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(r))}else{b(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function g(e,r){if(e==null)return{};var t=O(e,r);var n,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++){n=i[o];if(r.indexOf(n)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;t[n]=e[n]}}return t}function O(e,r){if(e==null)return{};var t={};var n=Object.keys(e);var o,i;for(i=0;i<n.length;i++){o=n[i];if(r.indexOf(o)>=0)continue;t[o]=e[o]}return t}function P(e,r){if(r&&(S(r)==="object"||typeof r==="function")){return r}return n(e)}function j(e,r){j=Object.setPrototypeOf||function e(e,r){e.__proto__=r;return e};return j(e,r)}function E(e,t){return r(e)||v(e,t)||_(e,t)||y()}function k(e){return t(e)||p(e)||_(e)||m()}function S(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function _(r,t){if(!r)return;if(typeof r==="string")return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);if(n==="Object"&&r.constructor)n=r.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}function x(e){var r=typeof Map==="function"?new Map:undefined;x=function e(e){if(e===null||!d(e))return e;if(typeof e!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof r!=="undefined"){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return c(e,arguments,f(this).constructor)}t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:false,writable:true,configurable:true}});return j(t,e)};return x(e)}function R(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(R=function(){return!!e})()}function C(e,r){var t,n,o,i={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},u=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return u.next=a(0),u["throw"]=a(1),u["return"]=a(2),typeof Symbol==="function"&&(u[Symbol.iterator]=function(){return this}),u;function a(e){return function(r){return c([e,r])}}function c(a){if(t)throw new TypeError("Generator is already executing.");while(u&&(u=0,a[0]&&(i=0)),i)try{if(t=1,n&&(o=a[0]&2?n["return"]:a[0]?n["throw"]||((o=n["return"])&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;if(n=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){i=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(a[0]===6&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}if(o[2])i.ops.pop();i.trys.pop();continue}a=r.call(e,i)}catch(e){a=[6,e];n=0}finally{t=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}(function(){var e=function e(e){return S(e.data)=="object"&&e.data!==null&&"event"in e.data&&F.includes(e.data.event)};var r=function r(r,t){return e(r)&&r.data.event===t};var t=function e(e){return G[e]||(G[e]=(e+256).toString(16).slice(1))};var n=function e(){var e=new Uint8Array(16);if((typeof crypto==="undefined"?"undefined":S(crypto))<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(e);else for(var r=0;r<16;r++)e[r]=Math.random()*256|0;return e[6]=e[6]&15|64,e[8]=e[8]&63|128,t(e[0])+t(e[1])+t(e[2])+t(e[3])+"-"+t(e[4])+t(e[5])+"-"+t(e[6])+t(e[7])+"-"+t(e[8])+t(e[9])+"-"+t(e[10])+t(e[11])+t(e[12])+t(e[13])+t(e[14])+t(e[15])};var o=function e(e,t,o,i){var u=arguments.length>4&&arguments[4]!==void 0?arguments[4]:2e3;var a;var c=new URL(e.src).origin,l=n();return(a=e.contentWindow)===null||a===void 0?void 0:a.postMessage(w(h({},t),{__scope:"whop-embedded-checkout",event_id:l}),c),new Promise(function(t,n){var a=setTimeout(function(){n(new z),window.removeEventListener("message",c)},u),c=function(u){if(u.source===e.contentWindow&&r(u,o)&&u.data.event===o&&u.data.event_id===l){clearTimeout(a),window.removeEventListener("message",c);try{t(i(u.data))}catch(e){n(e)}}};window.addEventListener("message",c)})};var c=function r(r,t){function n(n){n.source===r.contentWindow&&e(n)&&t(n.data)}return window.addEventListener("message",n),function(){window.removeEventListener("message",n)}};var l=function e(e,r){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:2e3;return i(function(){return C(this,function(n){return[2,o(e,{event:"set-email",email:r},"set-email-result",function(e){if(!e.ok)throw new B(e.error)},t)]})})()};var f=function e(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2e3;return i(function(){return C(this,function(t){return[2,o(e,{event:"get-email"},"get-email-result",function(e){return e.email},r)]})})()};var d=function e(e,r){var t;var n=new URL(e.src).origin;(t=e.contentWindow)===null||t===void 0?void 0:t.postMessage({__scope:"whop-embedded-checkout",event:"submit"},n)};var p=function e(e,r,t,n,o,i,u,a,c,l,f,s,d,p){var v=new URL("/embedded/checkout/".concat(e,"/"),n!==null&&n!==void 0?n:"https://whop.com/");if(v.searchParams.set("h",window.location.origin),r&&v.searchParams.set("theme",r),t&&v.searchParams.set("session",t),o&&v.searchParams.set("hide_price","true"),i&&v.searchParams.set("skip_redirect","true"),f&&v.searchParams.set("hide_submit_button","true"),s&&v.searchParams.set("hide_tos","true"),d&&v.searchParams.set("email.hidden","1"),p&&v.searchParams.set("email.disabled","1"),u){var y=true,m=false,h=undefined,b=true,w=false,g=undefined;try{for(var O=Object.entries(u).sort(function(e,r){return e[0].localeCompare(r[0])})[Symbol.iterator](),P;!(b=(P=O.next()).done);b=true){var j=E(P.value,2),k=j[0],S=j[1];if(k.startsWith("utm_"))if(Array.isArray(S))try{for(var _=S[Symbol.iterator](),x;!(y=(x=_.next()).done);y=true){var R=x.value;v.searchParams.append(k,R)}}catch(e){m=true;h=e}finally{try{if(!y&&_.return!=null){_.return()}}finally{if(m){throw h}}}else v.searchParams.set(k,S)}}catch(e){w=true;g=e}finally{try{if(!b&&O.return!=null){O.return()}}finally{if(w){throw g}}}}if(a){var C=true,W=false,A=undefined,I=true,q=false,T=undefined;try{for(var U=Object.entries(a)[Symbol.iterator](),M;!(I=(M=U.next()).done);I=true){var D=E(M.value,2),L=D[0],N=D[1];if(N)try{for(var V=Object.entries(N)[Symbol.iterator](),z;!(C=(z=V.next()).done);C=true){var B=E(z.value,2),F=B[0],G=B[1];v.searchParams.set("style.".concat(L,".").concat(F),G.toString())}}catch(e){W=true;A=e}finally{try{if(!C&&V.return!=null){V.return()}}finally{if(W){throw A}}}}}catch(e){q=true;T=e}finally{try{if(!I&&U.return!=null){U.return()}}finally{if(q){throw T}}}}var $=true,H=false,J=undefined;if((c===null||c===void 0?void 0:c.email)&&v.searchParams.set("email",c.email),l)try{for(var K=Object.entries(l)[Symbol.iterator](),Q;!($=(Q=K.next()).done);$=true){var X=E(Q.value,2),Y=X[0],Z=X[1];Z&&v.searchParams.set("theme.".concat(Y),Z)}}catch(e){H=true;J=e}finally{try{if(!$&&K.return!=null){K.return()}}finally{if(H){throw J}}}return v.toString()};var v=function e(){return function(){}};var y=function e(){return(0,J.useSyncExternalStore)(v,function(){return!0},function(){return!1})};var m=function e(e){return e?K.includes(e):!1};var b=function e(e){var r=(0,X.useRef)(Y);return r.current===Y&&(r.current=e()),r};var O=function e(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++){r[t]=arguments[t]}var n=b(function(){return p.apply(void 0,k(r))}),o=n.current;return o&&P.apply(void 0,[o].concat(k(r))),o};var P=function e(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++){t[n-1]=arguments[n]}var o=E(t,12),i=o[0],u=o[1],a=o[2],c=o[3],l=o[4],f=o[5],s=o[6],d=o[7],v=o[8],y=o[9],m=o[10],h=o[11];var b=(0,Q.useMemo)(function(){return p(i,u,a,void 0,l,f,s,d,v,y,m,h)},[i,u,a,l,f,s,d,v,y,m,h]);(0,Q.useEffect)(function(){e!==b&&process.env.NODE_ENV==="development"&&console.warn("[WhopCheckoutEmbed] iframeUrl changed from ".concat(e," to ").concat(b,". Updating props on the checkout embed is not supported. Please rerender the component."))},[e,b])};var j=function e(){return(0,et.useRef)(null)};var _=Object.create;var R=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var T=function(e,r,t){return r in e?R(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t};var U=function(e){return(typeof require==="undefined"?"undefined":S(require))<"u"?require:(typeof Proxy==="undefined"?"undefined":S(Proxy))<"u"?new Proxy(e,{get:function(e,r){return((typeof require==="undefined"?"undefined":S(require))<"u"?require:e)[r]}}):e}(function(e){if((typeof require==="undefined"?"undefined":S(require))<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var M=function(e,r,t,n){var o=true,i=false,u=undefined;if(r&&(typeof r==="undefined"?"undefined":S(r))=="object"||typeof r=="function")try{var a=function(){var o=l.value;!q.call(e,o)&&o!==t&&R(e,o,{get:function(){return r[o]},enumerable:!(n=W(r,o))||n.enumerable})};for(var c=A(r)[Symbol.iterator](),l;!(o=(l=c.next()).done);o=true)a()}catch(e){i=true;u=e}finally{try{if(!o&&c.return!=null){c.return()}}finally{if(i){throw u}}}return e};var D=function(e,r,t){return t=e!=null?_(I(e)):{},M(r||!e||!e.__esModule?R(t,"default",{value:e,enumerable:!0}):t,e)};var L=function(e,r,t){return T(e,(typeof r==="undefined"?"undefined":S(r))!="symbol"?r+"":r,t)};var N=D(U("react"));var V=/*#__PURE__*/function(e){s(r,e);function r(){a(this,r);var e;e=u(this,r,arguments);L(e,"type","WhopCheckoutError");return e}return r}(x(Error));var z=/*#__PURE__*/function(e){s(r,e);function r(e){a(this,r);var t;t=u(this,r,[e!==null&&e!==void 0?e:"Timeout waiting for embed response"]);L(t,"name","WhopCheckoutRpcTimeoutError");return t}return r}(V);var B=/*#__PURE__*/function(e){s(r,e);function r(){a(this,r);var e;e=u(this,r,arguments);L(e,"name","WhopCheckoutSetEmailError");return e}return r}(V);var F=["resize","center","complete","state","get-email-result","set-email-result"];var G=[];var $=["allow-forms","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-popups","allow-presentation","allow-same-origin","allow-scripts","allow-top-navigation","allow-top-navigation-by-user-activation","allow-downloads"],H="document-domain; execution-while-not-rendered; execution-while-out-of-viewport; payment; paymentRequest; sync-script;";var J=U("react");var K=["tomato","red","ruby","crimson","pink","plum","purple","violet","iris","cyan","teal","jade","green","grass","brown","blue","orange","indigo","sky","mint","yellow","amber","lime","lemon","magenta","gold","bronze","gray"];var Q=U("react");var X=U("react"),Y=Symbol("none");var Z=$.join(" ");var ee=(0,N.forwardRef)(function(e,r){var t=e.planId,n=e.theme,o=e.sessionId,i=e.hidePrice,u=i===void 0?!1:i,a=e.skipRedirect,s=a===void 0?!1:a,p=e.onComplete,v=e.onStateChange,y=e.utm,h=e.styles,b=e.prefill,w=e.themeOptions,g=e.hideSubmitButton,P=g===void 0?!1:g,j=e.hideTermsAndConditions,k=j===void 0?!1:j,S=e.hideEmail,_=S===void 0?!1:S,x=e.disableEmail,R=x===void 0?!1:x;var C=(0,N.useMemo)(function(){return{accentColor:m(w===null||w===void 0?void 0:w.accentColor)?w.accentColor:void 0}},[w===null||w===void 0?void 0:w.accentColor]),W=O(t,n,o,void 0,u,s||!!p,y,h,b,C,P,k,_,R),A=(0,N.useRef)(null),I=E((0,N.useState)(480),2),q=I[0],T=I[1];return(0,N.useEffect)(function(){var e=A.current;if(e)return c(e,function(r){switch(r.event){case"resize":{T(r.height);break}case"center":{e.scrollIntoView({block:"center",inline:"center"});break}case"complete":{p&&p(r.plan_id,r.receipt_id);break}case"state":{v&&v(r.state);break}}})},[p,v]),r&&(typeof r=="function"?r({submit:function(e){A.current&&d(A.current,e)},getEmail:function(e){if(!A.current)throw new Error("Whop embedded checkout frame not found");return f(A.current,e)},setEmail:function(e,r){if(!A.current)throw new Error("Whop embedded checkout frame not found");return l(A.current,e,r)}}):r.current={submit:function(e){A.current&&d(A.current,e)},getEmail:function(e){if(!A.current)throw new Error("Whop embedded checkout frame not found");return f(A.current,e)},setEmail:function(e,r){if(!A.current)throw new Error("Whop embedded checkout frame not found");return l(A.current,e,r)}}),N.default.createElement("iframe",{ref:A,allow:H,sandbox:Z,title:"Whop Embedded Checkout",src:W!==null&&W!==void 0?W:void 0,style:{border:"none",height:"".concat(q,"px"),width:"100%",overflow:"hidden"}})});ee.displayName="WhopCheckoutEmbedInner";var er=(0,N.forwardRef)(function(e,r){var t=e.fallback,n=g(e,["fallback"]);return y()?N.default.createElement(ee,w(h({},n),{ref:r})):t!==null&&t!==void 0?t:null});er.displayName="WhopCheckoutEmbed";var et=U("react")})();