openstack-uicore-foundation
Version:
ui reactjs components for openstack marketing site
2 lines • 5.29 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={3209:(e,t,r)=>{r.d(t,{OP:()=>o,fJ:()=>i,q9:()=>n});const n=100n,o=2,i=0},9558:(e,t,r)=>{r.d(t,{isSentryInitialized:()=>n});r(5812),r(8041);const n=()=>"undefined"!=typeof window&&!!window.SENTRY_DSN},8400:(e,t,r)=>{r.d(t,{currencyAmountFromCents:()=>i});var n=r(3209);const o={USD:"$",EUR:"€",GBP:"£",CAD:"C$",AUD:"A$",NZD:"NZ$",CHF:"CHF",ARS:"AR$",BRL:"R$",MXN:"MX$"};function i(e,t="USD"){if("number"!=typeof e||!Number.isInteger(e))throw new Error("cents must be an integer number");const r=function(e){let t;if("bigint"==typeof e)t=e;else if("number"==typeof e){if(!Number.isSafeInteger(e))throw new Error("cents must be a safe integer Number (or pass BigInt/string).");t=BigInt(e)}else{if("string"!=typeof e)throw new Error("cents must be a bigint, number, or numeric string.");{const r=e.trim();if(!/^\d+$/.test(r))throw new Error("cents string must contain digits only (e.g., '1234').");t=BigInt(r)}}if(t<n.fJ)throw new Error("cents must be non-negative.");const r=t/n.q9,o=t%n.q9;return`${r.toString()}.${o.toString().padStart(n.OP,"0")}`}(e);return`${o[t]??"$"}${r}`}},5812:e=>{e.exports=require("moment-timezone")},8041:e=>{e.exports=require("urijs")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};r.r(n),r.d(n,{default:()=>h});const o=require("react");var i=r.n(o);const s=require("@stripe/stripe-js"),a=require("@stripe/react-stripe-js"),c=require("@babel/runtime/helpers/defineProperty");var u=r.n(c);const l=require("@mui/material"),p=require("i18n-react");var m=r.n(p),d=r(8400);const f=require("@sentry/react");var y=r(9558);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){u()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const _=(e={})=>{const t={};return e.locality&&(t.city=e.locality),e.country&&(t.country=e.country),e.address1&&(t.line1=e.address1),e.address2&&(t.line2=e.address2),e.postal_code&&(t.postal_code=e.postal_code),e.region&&(t.state=e.region),Object.keys(t).length>0?{address:t}:{}},v=({title:e,amount:t=0,client:r,redirectUrl:n,onSuccess:s,onError:c,onPaymentMethodChange:u})=>{const p=(0,a.useStripe)(),b=(0,a.useElements)(),[v,h]=(0,o.useState)(!1);(0,o.useEffect)((()=>{if(b){const e=b.getElement("payment"),t=e=>{e.value.type&&u(e.value.type)};return e.on("change",t),()=>{e.off("change",t)}}}),[b]);return i().createElement(l.Box,{component:"form",onSubmit:async e=>{if(e.preventDefault(),!p||!b||v)return;h(!0);const{error:t,paymentIntent:o}=await p.confirmPayment({elements:b,confirmParams:{return_url:`${window.location.origin}${n}`,payment_method_data:{billing_details:g({name:`${r.first_name} ${r.last_name}`,email:r.email},_(r.address))}},redirect:"if_required"});if(t)null==c||c(t.message),h(!1);else if("succeeded"===(null==o?void 0:o.status))try{await(null==s?void 0:s(o))}catch(e){(e=>{(0,y.isSentryInitialized)()?f.captureException(e):console.log("Error on registration: ",e)})(e),null==c||c(m().translate("stripe_form.payment_confirmation_error"))}else"processing"===(null==o?void 0:o.status)||h(!1)},sx:{p:3}},e&&i().createElement(l.Typography,{sx:{mb:2}},e||m().translate("stripe_form.title")),i().createElement(a.PaymentElement,{options:{layout:"tabs"}}),i().createElement(l.Button,{fullWidth:!0,type:"submit",variant:"contained",disabled:!p||v,sx:{mt:2}},v?m().translate("stripe_form.processing"):m().translate("stripe_form.button_cta",{amount:(0,d.currencyAmountFromCents)(t)})))},h=({paymentIntent:e,paymentProfile:t,client:r,redirectUrl:n,stripeFormTitle:c,onPaymentSuccess:u,onPaymentError:l,updatePaymentIntent:p})=>{const{test_mode_enabled:m,test_publishable_key:d,live_publishable_key:f}=t||{},y=m?d:f,b=(0,o.useMemo)((()=>y?(0,s.loadStripe)(y):null),[y]);if(!t||null==e||!e.client_secret||!y)return null;const g={clientSecret:e.client_secret,appearance:{theme:"stripe"}};return i().createElement(a.Elements,{stripe:b,options:g},i().createElement(v,{title:c,client:r,amount:e.total_amount,redirectUrl:n,onSuccess:u,onError:l,onPaymentMethodChange:p}))};return n})()));
//# sourceMappingURL=stripe-payment.js.map