{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./app/javascript/packs/src/error_handling/error_types.js","webpack:///./app/javascript/packs/src/error_handling/log_error.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/packs/src/helpers/prevent_double_submit.js","webpack:///./app/javascript/packs/src/helpers/string_helpers.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_create_stripe_customer.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_create_stripe_payment_method.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_handle_stripe_payment_requires_customer_action.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_handle_stripe_requires_payment_method.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_complete_payment.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_hide_non_field_specific_error.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_handle_stripe_processing_errors.js","webpack:///./app/javascript/packs/src/helpers/country_code.js","webpack:///./app/javascript/packs/src/utilities/viewport.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_retry_invoice_with_new_payment_method.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_create_stripe_subscription.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_set_billing_name.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_validate_human.js","webpack:///./app/javascript/packs/src/stripe/stripe_card_element.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/donations/can_set_payment_intent_params_from_donation_form.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_create_payment_intent.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/can_update_payment_intent.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/capabilities/donations/can_create_custom_product_and_price.js","webpack:///./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack:///./app/javascript/packs/src/entities/user_creators.js","webpack:///./app/javascript/packs/src/payments/payment_types/donation_payment.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/stripe_one_time_donation.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/stripe_recurring_donation.js","webpack:///./app/javascript/packs/src/stripe/processor_creators/stripe_one_time_donation_processor.js","webpack:///./app/javascript/packs/src/stripe/processor_creators/stripe_recurring_donation_processor.js","webpack:///./app/javascript/packs/src/donations/donation_amount_buttons.js","webpack:///./app/javascript/packs/src/donations/tip_percent.js","webpack:///./app/javascript/packs/src/donations/load_update_confirmation_amounts.js","webpack:///./app/javascript/packs/src/payments/payment_types/cause_subscription_payment.js","webpack:///./app/javascript/packs/src/stripe/payment_creators/stripe_recurring_payment.js","webpack:///./app/javascript/packs/src/stripe/processor_creators/stripe_cause_subscription_processor.js","webpack:///./app/javascript/packs/src/payments/donation.js","webpack:///./app/javascript/packs/src/donations/donation_form.js","webpack:///./app/javascript/packs/src/payments/cause_subscription.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","RootFundingError","message","display_message","Error","FailedToFetchError","FailedToValidateHumanError","StripeRequiresPaymentMethod","StripeError","stripe_error","error","log_error","type","response","campaign_id","cause_id","csrfToken","document","querySelector","content","post_params","headerContent","fetch","headers","method","body","JSON","stringify","then","ok","json","status","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","obj","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","preventDoubleSubmit","form_button","classList","add","setAttribute","enableSubmit","remove","removeAttribute","isBlank","str","test","isEmpty","notBlank","notEmpty","canCreateStripeCustomer","user","donation","causeSubscription","paymentType","createStripeCustomer","a","stripeCustomerParams","payment_type","email","password","firstname","firstName","lastname","lastName","country","zip","campaignId","causeId","customerId","customer_id_stripe","canCreateStripePaymentMethod","billingName","stripe","card","createStripePaymentMethod","paymentMethodParams","billing_details","address","postal_code","countryThreeLetterCodeToTwo","createPaymentMethod","paymentMethod","canHandleStripePaymentRequiresCustomerAction","handleStripePaymentRequiresCustomerAction","initialPaymentIntent","paymentMethodId","isRetry","confirmCardPayment","client_secret","payment_method","paymentIntent","canHandleStripeRequiresPaymentMethod","handleStripeRequiresPaymentMethod","customerIdStripe","subscription","sessionStorage","setItem","latest_invoice","id","payment_intent","canCompletePayment","form","completePayment","paymentIntentId","hiddenInput","createElement","appendChild","appendPaymentIntentIdToForm","clear","submit","canHideNonFieldSpecificError","hideNonFieldSpecificError","getElementById","canHandleStripeProcessingErrors","handleStripeProcessingError","e","errorLogDetail","ValidationUtils","setStripeInvalid","displayMessage","displayNonFieldSpecificError","code","genericDisplayMessage","display_error","location","reload","alertRow","alertDiv","originalContent","firstChild","createTextNode","replaceChild","scrollElementToTop","Spinner","threeLetterCode","USA","AUS","GBR","NZL","CAN","FRA","ZAF","AFG","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COK","CRI","CIV","HRV","CUB","CYP","CZE","DNK","DJI","DMA","DOM","TMP","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FXX","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GIN","GNB","GUY","HTI","HMD","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","ISR","ITA","JAM","JPN","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","ANT","NCL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROM","RUS","RWA","KNA","LCA","VCT","WSM","SMR","STP","SAU","SEN","SYC","SLE","SGP","SVK","SVN","SLB","SOM","SGS","ESP","LKA","SHN","SPM","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","UMI","URY","UZB","VUT","VAT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","YUG","ZAR","ZMB","ZWE","isInViewport","elem","bounding","getBoundingClientRect","top","left","bottom","window","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","spacerPixels","elemBox","desktopNavbar","getElementsByClassName","mobileNavbar","navbarBox","getComputedStyle","display","scroll","pageYOffset","height","behavior","canRetryInvoiceWithNewPaymentMethod","retryInvoiceWithNewPaymentMethod","invoiceId","retryStripeInvoiceParams","invoice","canCreateStripeSubscription","createStripeSubscription","priceId","amountCents","amount","tipPercent","setBillingName","current_user_name","canValidateHuman","validateHuman","postParams","gon","current_user_email","validationResponse","human","loadStripeCardElement","elements","hidePostalCode","style","invalid","color","iconColor","mount","addEventListener","event","displayError","empty","$","removeClass","ajax","url","data","displayed","form_data","formData","addClass","setStripeValid","find","textContent","hide","hasClass","text","show","canSetPaymentIntentParamsFromDonationForm","setPaymentIntentParamsFromDonationForm","intentParams","currency_code","currencyCode","tip_percent","canCreatePaymentIntent","createPaymentIntent","paymentMethodIdStripe","stripePaymentIntentParams","paymentIntentResponse","paymentIntentStripe","stripe_payment_intent_id","payment_intent_stripe","canUpdatePaymentIntent","updatePaymentIntent","paymentIntentIdStripe","stripePaymentIntentId","canCreateCustomProductAndPrice","createCustomProductAndPrice","stripe_products_params","frequency","price_id_stripe","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","loadScript","params","Stripe","console","warn","script","scripts","querySelectorAll","concat","src","findScript","queryString","advancedFraudSignals","headOrBody","head","injectScript","initStripe","maybeStripe","args","startTime","apply","_registerWrapper","version","registerWrapper","stripePromise$1","loadCalled","loadStripe","_len","arguments","Array","_key","Date","now","userCreator","userProperties","fullName","userBasedOnDonationForm","trim","donationPayment","donationProperties","parseFloat","stripeOneTimeDonationCreator","assign","stripeRecurringDonationCreator","stripeOneTimeDonationProcessor","stripeDonation","processPayment","sessionCampaignId","getItem","latestPaymentIntentStatus","stripeRecurringDonationProcessor","priceIdStripe","latestInvoicePaymentIntentStatus","donationAmountButtons","on","donationAmt","val","change","validateField","tooltip","css","loadUpdateConfirmationAmounts","updateConfirmationAmounts","total","formatCurrency","Number","Math","round","toFixed","replace","isNumeric","html","amountPlusTip","causeSubscriptionPayment","cardholderName","cardholderCountry","cardholderZip","stripeRecurringPaymentCreator","stripeCauseSubscriptionProcessor","stripeCauseSubscription","causePlan","cause_plan","sessionCauseId","stripe_publishable_key","stripeAccount","connected_account_id","preventDefault","contains","start","validateForm","stripePaymentProcessor","errors","prepErrors","dataType","scrollToFirstError","formId","donationForm"],"mappings":"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LC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACL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","file":"js/application-32371b87dc0a1baa49b8.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 40);\n","module.exports = require(\"regenerator-runtime\");\n","export class RootFundingError extends Error {\n constructor(message, { display_message = null }) {\n super(message)\n this.name = \"RootFundingError\"\n this.display_message = display_message\n }\n}\n\nclass UnableToCreatePaymentIntentError extends RootFundingError {\n constructor(message, { display_message = null }) {\n super(message, {display_message: display_message})\n this.name = \"UnableToCreatePaymentIntentError\"\n }\n}\n\nexport class FailedToFetchError extends RootFundingError {\n constructor(message, { display_message } = {}) {\n super(message, {display_message: display_message})\n this.name = \"FailedToFetchError\"\n }\n}\n\nexport class FailedToValidateHumanError extends RootFundingError {\n constructor(message, { display_message } = {}) {\n super(message, {display_message: display_message})\n this.name = \"FailedToValidateHumanError\"\n }\n}\n\nexport class StripeRequiresPaymentMethod extends RootFundingError {\n constructor(message, { display_message } = {}) {\n super(message, { display_message: display_message })\n this.name = \"StripeRequiresPaymentMethod\"\n }\n}\n\nexport class StripeError extends RootFundingError {\n constructor({ stripe_error, display_message = null }) {\n super(stripe_error.message, {display_message: display_message})\n this.name = \"StripeError\"\n this.error = stripe_error\n }\n}","export default function log_error({ type, response, message, display_message,\n campaign_id, cause_id, }) {\n\n let csrfToken = null\n\n if (document.querySelector(\"[name='csrf-token']\") != null) {\n // Grab the CSRF token from the meta tag\n csrfToken = document.querySelector(\"[name='csrf-token']\").content\n }\n\n let post_params = { type: type }\n\n if (type == \"stripe\") {\n post_params[\"response\"] = response\n } else {\n post_params[\"error\"] = message\n }\n\n if (typeof(display_message) !== \"undefined\") {\n post_params[\"display_message\"] = display_message\n }\n\n if (typeof(campaign_id) !== \"undefined\") {\n post_params[\"campaign_id\"] = campaign_id\n }\n\n if (typeof(cause_id) !== \"undefined\") {\n post_params[\"cause_id\"] = cause_id\n }\n\n let headerContent = {\n \"Content-Type\": \"application/json\"\n }\n\n if (csrfToken != null) {\n headerContent[\"X-CSRF-Token\"] = csrfToken\n }\n\n fetch(\"/log_error\", {\n headers: headerContent,\n method: \"POST\",\n body: JSON.stringify(post_params)\n }).then(response => {\n if(response.ok) {\n return response.json();\n } else {\n throw Error(`Request rejected with status ${response.status}`);\n }\n })\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","export const preventDoubleSubmit = (form_button) => {\n form_button.classList.add(\"disabled\")\n\n form_button.setAttribute(\"aria-disabled\", \"true\")\n}\n\nexport const enableSubmit = (form_button) => {\n form_button.classList.remove(\"disabled\")\n\n form_button.removeAttribute(\"aria-disabled\")\n}","// For checking if a string is blank, null or undefined\nexport function isBlank(str) {\n return (!str || (/^\\s*$/).test(str))\n}\n\n// For checking if a string is empty, null or undefined\nexport function isEmpty(str) {\n return (!str || str.length === 0)\n}\n\nexport function notBlank(str) {\n return !isBlank(str)\n}\n\n// For checking if a string is empty, null or undefined\nexport function notEmpty(str) {\n return !isEmpty(str)\n}","import {FailedToFetchError} from \"../../../error_handling/error_types.js\"\n\nexport const canCreateStripeCustomer = ({ user, donation, causeSubscription, paymentType = \"donation\" }) => ({\n createStripeCustomer: async () => {\n\n let csrfToken = null\n\n if (document.querySelector(\"[name='csrf-token']\") != null) {\n // Grab the CSRF token from the meta tag\n csrfToken = document.querySelector(\"[name='csrf-token']\").content\n }\n\n const stripeCustomerParams = { payment_type: paymentType }\n\n // user is only passed in for donation by user that is not logged in\n if (typeof(user) != \"undefined\") {\n stripeCustomerParams.email = user.email\n stripeCustomerParams.password = user.password\n stripeCustomerParams.firstname = user.firstName\n stripeCustomerParams.lastname = user.lastName\n stripeCustomerParams.country = user.country\n stripeCustomerParams.zip = user.zip\n }\n\n if (typeof(donation) != \"undefined\") {\n stripeCustomerParams.campaign_id = donation.campaignId\n } else if (typeof(causeSubscription) !== \"undefined\") {\n stripeCustomerParams.cause_id = causeSubscription.causeId\n } else {\n throw new FailedToFetchError(\n \"Failed to fetch `/stripe_users`: Neither `donation` nor \" +\n \"`causeSubscription` was set\"\n )\n }\n\n let headerContent = {\n \"Content-Type\": \"application/json\"\n }\n\n if (csrfToken != null) {\n headerContent[\"X-CSRF-Token\"] = csrfToken\n }\n\n const response = await fetch(\"/stripe_users\", {\n headers: headerContent,\n method: \"POST\",\n body: JSON.stringify(stripeCustomerParams)\n })\n\n if (!response.ok) {\n // Network error\n throw new FailedToFetchError(\"Failed to fetch '/stripe_users'\")\n }\n\n const customerId = await response.json()\n\n if (customerId.error) {\n throw customerId\n }\n\n if (!customerId.customer_id_stripe) {\n throw new FailedToFetchError(\n \"Failed to fetch `/stripe_users`: `customer_id_stripe` not set\"\n )\n }\n\n return customerId.customer_id_stripe\n }\n})","import {StripeError} from \"../../../error_handling/error_types.js\"\nimport countryThreeLetterCodeToTwo from \"../../../helpers/country_code.js\"\n\nexport const canCreateStripePaymentMethod = ({ billingName, stripe, card,\n email, country, zip}) => ({\n createStripePaymentMethod: async () => {\n let paymentMethodParams = {\n type: \"card\",\n card: card,\n billing_details: {\n name: billingName,\n email: email,\n address: {\n postal_code: zip,\n country: countryThreeLetterCodeToTwo(country),\n }\n },\n }\n\n const { paymentMethod, error } = await stripe.createPaymentMethod(\n paymentMethodParams\n )\n\n if (error) {\n throw new StripeError({ stripe_error: error })\n }\n\n return paymentMethod\n }\n})","import {StripeError} from \"../../../error_handling/error_types.js\"\n\nexport const canHandleStripePaymentRequiresCustomerAction = ({ stripe, }) => ({\n handleStripePaymentRequiresCustomerAction: async ({\n initialPaymentIntent, paymentMethodId, isRetry, }) => {\n if (initialPaymentIntent.status === \"requires_action\" ||\n (isRetry === true && initialPaymentIntent.status === \"requires_payment_method\")){\n const { paymentIntent, error } = await stripe.confirmCardPayment(\n initialPaymentIntent.client_secret,\n { payment_method: paymentMethodId, }\n )\n\n if (error) {\n throw new StripeError({ stripe_error: error })\n }\n\n return paymentIntent\n }\n\n return initialPaymentIntent\n }\n})","import {StripeRequiresPaymentMethod} from \"../../../error_handling/error_types.js\"\n\nexport const canHandleStripeRequiresPaymentMethod = () => ({\n handleStripeRequiresPaymentMethod: ({ campaignId, causeId, customerIdStripe,\n paymentIntent, subscription, }) => {\n\n // Store the latest invoice ID and status.\n if (typeof(campaignId) != \"undefined\") {\n sessionStorage.setItem(\"campaignId\", campaignId)\n }\n\n if (typeof(causeId) != \"undefined\") {\n sessionStorage.setItem(\"causeId\", causeId)\n }\n\n sessionStorage.setItem(\"customerIdStripe\", customerIdStripe)\n\n if (typeof(subscription) != \"undefined\") {\n sessionStorage.setItem(\"latestInvoiceId\", subscription.latest_invoice.id)\n sessionStorage.setItem(\n \"latestInvoicePaymentIntentStatus\",\n subscription.latest_invoice.payment_intent.status\n )\n } else if (typeof(paymentIntent) != \"undefined\") {\n sessionStorage.setItem(\"paymentIntentId\", paymentIntent.id)\n sessionStorage.setItem(\n \"latestPaymentIntentStatus\",\n paymentIntent.status\n )\n }\n\n throw new StripeRequiresPaymentMethod(\n \"Card declined - Stripe Payment Intent status: `requires_payment_method`\",\n { display_message: \"Your card was declined.\" }\n )\n }\n})","export const canCompletePayment = ({ form, }) => ({\n completePayment: (paymentIntentId) => {\n appendPaymentIntentIdToForm(paymentIntentId)\n\n sessionStorage.clear()\n\n form.submit()\n\n function appendPaymentIntentIdToForm(paymentIntentId) {\n const hiddenInput = document.createElement(\"input\")\n hiddenInput.setAttribute(\"type\", \"hidden\")\n\n switch (form.id) {\n case \"new_donate_now_form\":\n hiddenInput.setAttribute(\"name\", \"donate_now_form[payment_intent_id_stripe]\")\n break;\n case \"new_complete_your_membership_form\":\n hiddenInput.setAttribute(\"name\", \"complete_your_membership_form[payment_intent_id_stripe]\")\n break;\n default:\n break;\n }\n\n hiddenInput.setAttribute(\"value\", paymentIntentId)\n form.appendChild(hiddenInput)\n }\n }\n})","export const canHideNonFieldSpecificError = () => ({\n hideNonFieldSpecificError: () => {\n const alertRow = document.getElementById(\"generic-form-error-row\")\n alertRow.classList.add(\"hidden\")\n }\n})","import log_error from \"../../../error_handling/log_error.js\"\nimport {StripeError} from \"../../../error_handling/error_types.js\"\nimport {scrollElementToTop} from \"../../../utilities/viewport.js\"\nimport {enableSubmit} from \"../../../helpers/prevent_double_submit.js\"\n\nexport const canHandleStripeProcessingErrors = ({ form_button, }) => ({\n handleStripeProcessingError: ({ e, campaignId, causeId, paymentType, }) => {\n if (e instanceof StripeError) {\n // Stripe javascript error (e.g., createPaymentMethod)\n\n let errorLogDetail = {\n type: \"stripe\",\n response: e,\n campaign_id: campaignId,\n cause_id: causeId,\n }\n\n switch (e.error.type) {\n case \"card_error\":\n ValidationUtils.setStripeInvalid(e.error.message, true)\n\n errorLogDetail.display_message = e.error.message\n break;\n case \"invalid_request_error\": {\n let displayMessage = \"\"\n if (e.error.code == \"payment_intent_authentication_failure\") {\n displayMessage = e.error.message\n } else {\n displayMessage = genericDisplayMessage({ paymentType: paymentType })\n }\n\n displayNonFieldSpecificError(displayMessage)\n\n errorLogDetail.display_message = displayMessage\n break;\n }\n case \"rate_limit_error\":\n case \"authentication_error\":\n case \"api_connection_error\":\n case \"api_error\":\n case \"stripe_error\":\n case \"validation_error\":\n case \"idempotency_error\":\n default: {\n const displayMessage =\n genericDisplayMessage({ paymentType: paymentType, })\n\n displayNonFieldSpecificError(displayMessage)\n\n errorLogDetail.display_message = displayMessage\n break;\n }\n }\n\n log_error(errorLogDetail)\n } else if (e.type == \"Stripe::CardError\") {\n // Stripe server side card error (Stripe error which\n // was forwarded for front end interaction)\n // Note: These errors are logged server side\n\n ValidationUtils.setStripeInvalid(e.error.message, true)\n } else if (e.type == \"Stripe::RateLimitError\" ||\n e.type == \"Stripe::InvalidRequestError\" ||\n e.type == \"Stripe::AuthenticationError\" ||\n e.type == \"Stripe::APIConnectionError\" ||\n e.type == \"Stripe::StripeError\" ||\n e.type == \"generic_server_side_error\") {\n // Error originated from RF server side (Stripe error which\n // was forwarded for front end interaction)\n // Note: These errors are logged server side\n\n let displayMessage = \"\"\n if (typeof(e.display_error) !== \"undefined\") {\n displayMessage = e.display_error\n } else {\n displayMessage = genericDisplayMessage({ paymentType: paymentType, })\n }\n displayNonFieldSpecificError(displayMessage)\n } else if (e.name == \"FailedToFetchError\") {\n // Error fetching from RF server side\n let displayMessage = e.display_message ? e.display_message :\n genericDisplayMessage({ paymentType: paymentType, })\n\n displayNonFieldSpecificError(displayMessage)\n\n log_error(\n {\n type: \"failed_to_fetch_error\",\n message: e.message,\n display_message: displayMessage,\n campaign_id: campaignId,\n cause_id: causeId,\n }\n )\n } else if (e.name == \"StripeRequiresPaymentMethod\") {\n // Card was declined / needs new payment method\n\n let displayMessage = e.display_message ? e.display_message :\n genericDisplayMessage({ paymentType: paymentType, })\n\n ValidationUtils.setStripeInvalid(displayMessage, true)\n\n log_error({\n type: \"stripe_requires_payment_method\",\n message: e.message,\n display_message: displayMessage,\n campaign_id: campaignId,\n cause_id: causeId,\n })\n } else if (e.name == \"FailedToValidateHumanError\") {\n // Do not log error\n location.reload()\n } else {\n // Generic handling for all other error types\n\n let displayMessage =\n genericDisplayMessage({ paymentType: paymentType, })\n\n displayNonFieldSpecificError(displayMessage)\n\n log_error(\n {\n type: \"generic\",\n message: e.message,\n display_message: displayMessage,\n campaign_id: campaignId,\n cause_id: causeId,\n }\n )\n }\n\n if (typeof(form_button) !== \"undefined\") {\n enableSubmit(form_button)\n }\n\n Spinner.stop()\n\n // Returns generic message of the specified paymentType\n function genericDisplayMessage({ paymentType, } = { paymentType: \"payment\", }) {\n return `We could not process your ${paymentType}, please try again`\n }\n\n // Displays non-field specific errors (i.e, errors not displayed on a\n // specific input field)\n function displayNonFieldSpecificError(message) {\n const alertRow = document.getElementById(\"generic-form-error-row\")\n const alertDiv = document.getElementById(\"generic-form-error\")\n\n const originalContent = alertDiv.firstChild\n\n const content = document.createTextNode(message)\n\n alertDiv.replaceChild(content, originalContent)\n\n alertRow.classList.remove(\"hidden\")\n\n scrollElementToTop(alertRow)\n }\n }\n})","export default function countryThreeLetterCodeToTwo(threeLetterCode) {\n const codes = {\n USA: 'us',\n AUS: 'au',\n GBR: 'gb',\n NZL: 'nz',\n CAN: 'ca',\n FRA: 'fr',\n ZAF: 'za',\n AFG: 'af',\n ALB: 'al',\n DZA: 'dz',\n ASM: 'as',\n AND: 'ad',\n AGO: 'ao',\n AIA: 'ai',\n ATA: 'aq',\n ATG: 'ag',\n ARG: 'ar',\n ARM: 'am',\n ABW: 'aw',\n AUT: 'at',\n AZE: 'az',\n BHS: 'bs',\n BHR: 'bh',\n BGD: 'bd',\n BRB: 'bb',\n BLR: 'by',\n BEL: 'be',\n BLZ: 'bz',\n BEN: 'bj',\n BMU: 'bm',\n BTN: 'bt',\n BOL: 'bo',\n BIH: 'ba',\n BWA: 'bw',\n BVT: 'bv',\n BRA: 'br',\n IOT: 'io',\n BRN: 'bn',\n BGR: 'bg',\n BFA: 'bf',\n BDI: 'bi',\n KHM: 'kh',\n CMR: 'kh',\n CPV: 'cv',\n CYM: 'ky',\n CAF: 'cf',\n TCD: 'td',\n CHL: 'cl',\n CHN: 'cn',\n CXR: 'cx',\n CCK: 'cc',\n COL: 'co',\n COM: 'km',\n COG: 'cg',\n COK: 'ck',\n CRI: 'cr',\n CIV: 'ci',\n HRV: 'hr',\n CUB: 'cu',\n CYP: 'cy',\n CZE: 'cz',\n DNK: 'dk',\n DJI: 'dj',\n DMA: 'dm',\n DOM: 'do',\n TMP: 'tp',\n ECU: 'ec',\n EGY: 'eg',\n SLV: 'sv',\n GNQ: 'gq',\n ERI: 'er',\n EST: 'ee',\n ETH: 'et',\n FLK: 'fk',\n FRO: 'fo',\n FJI: 'fj',\n FIN: 'fi',\n FXX: 'fx',\n GUF: 'gf',\n PYF: 'pf',\n ATF: 'tf',\n GAB: 'ga',\n GMB: 'gm',\n GEO: 'ge',\n DEU: 'de',\n GHA: 'gh',\n GIB: 'gi',\n GRC: 'gr',\n GRL: 'gl',\n GRD: 'gd',\n GLP: 'gp',\n GUM: 'gu',\n GTM: 'gt',\n GIN: 'gn',\n GNB: 'gw',\n GUY: 'gy',\n HTI: 'ht',\n HMD: 'hm',\n HND: 'hn',\n HKG: 'hk',\n HUN: 'hu',\n ISL: 'is',\n IND: 'in',\n IDN: 'id',\n IRN: 'ir',\n IRQ: 'iq',\n IRL: 'ie',\n ISR: 'il',\n ITA: 'it',\n JAM: 'jm',\n JPN: 'jp',\n JOR: 'jo',\n KAZ: 'kz',\n KEN: 'ke',\n KIR: 'ki',\n PRK: 'kp',\n KOR: 'kr',\n KWT: 'kw',\n KGZ: 'kg',\n LAO: 'la',\n LVA: 'lv',\n LBN: 'lb',\n LSO: 'ls',\n LBR: 'lr',\n LBY: 'ly',\n LIE: 'li',\n LTU: 'lt',\n LUX: 'lu',\n MAC: 'mo',\n MKD: 'ks',\n MDG: 'mg',\n MWI: 'mw',\n MYS: 'my',\n MDV: 'mv',\n MLI: 'ml',\n MLT: 'mt',\n MHL: 'mh',\n MTQ: 'mq',\n MRT: 'mr',\n MUS: 'mu',\n MYT: 'yt',\n MEX: 'mx',\n FSM: 'fm',\n MDA: 'md',\n MCO: 'mc',\n MNG: 'mn',\n MSR: 'ms',\n MAR: 'ma',\n MOZ: 'mz',\n MMR: 'mm',\n NAM: 'na',\n NRU: 'nr',\n NPL: 'np',\n NLD: 'nl',\n ANT: 'an',\n NCL: 'nc',\n NIC: 'ni',\n NER: 'ne',\n NGA: 'ng',\n NIU: 'nu',\n NFK: 'nf',\n MNP: 'mp',\n NOR: 'no',\n OMN: 'om',\n PAK: 'pk',\n PLW: 'pw',\n PAN: 'pa',\n PNG: 'pg',\n PRY: 'py',\n PER: 'pe',\n PHL: 'ph',\n PCN: 'pn',\n POL: 'pl',\n PRT: 'pt',\n PRI: 'pr',\n QAT: 'qa',\n REU: 're',\n ROM: 'ro',\n RUS: 'ru',\n RWA: 'rw',\n KNA: 'kn',\n LCA: 'lc',\n VCT: 'vc',\n WSM: 'ws',\n SMR: 'sm',\n STP: 'st',\n SAU: 'sa',\n SEN: 'sn',\n SYC: 'SC',\n SLE: 'sl',\n SGP: 'sg',\n SVK: 'sk',\n SVN: 'si',\n SLB: 'sb',\n SOM: 'so',\n SGS: 'gs',\n ESP: 'es',\n LKA: 'lk',\n SHN: 'sh',\n SPM: 'pm',\n SDN: 'sd',\n SUR: 'sr',\n SJM: 'sj',\n SWZ: 'sz',\n SWE: 'se',\n CHE: 'sh',\n SYR: 'sy',\n TWN: 'tw',\n TJK: 'tj',\n TZA: 'tz',\n THA: 'th',\n TGO: 'tg',\n TKL: 'tk',\n TON: 'to',\n TTO: 'tt',\n TUN: 'tn',\n TUR: 'tr',\n TKM: 'tm',\n TCA: 'tc',\n TUV: 'tv',\n UGA: 'ug',\n UKR: 'ua',\n ARE: 'ae',\n UMI: 'um',\n URY: 'uy',\n UZB: 'uz',\n VUT: 'zu',\n VAT: 'va',\n VEN: 've',\n VNM: 'vn',\n VGB: 'vg',\n VIR: 'vi',\n WLF: 'wf',\n ESH: 'eh',\n YEM: 'ye',\n YUG: 'yu',\n ZAR: 'zr',\n ZMB: 'zm',\n ZWE: 'zw'\n }\n\n return codes[threeLetterCode]\n}","// Source: https://gomakethings.com/how-to-test-if-an-element-is-in-the-viewport-with-vanilla-javascript/\nexport const isInViewport = function (elem) {\n var bounding = elem.getBoundingClientRect()\n return (\n bounding.top >= 0 &&\n bounding.left >= 0 &&\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\n )\n}\n\nexport const scrollElementToTop = (elem, { spacerPixels = 10 } = { spacerPixels: 10 }) => {\n const elemBox = elem.getBoundingClientRect()\n\n const desktopNavbar = document.getElementsByClassName(\"rf-desktop-navbar\")[0]\n const mobileNavbar = document.getElementsByClassName(\"rf-mobile-navbar\")[0]\n\n let navbarBox = 0\n if (window.getComputedStyle(desktopNavbar).display !== \"none\") {\n navbarBox = desktopNavbar.getBoundingClientRect()\n } else if (window.getComputedStyle(mobileNavbar).display !== \"none\") {\n navbarBox = mobileNavbar.getBoundingClientRect()\n }\n\n window.scroll(\n {\n top: elemBox.top + window.pageYOffset - (navbarBox.height + spacerPixels),\n behavior: \"smooth\"\n }\n )\n}","import {FailedToFetchError} from \"../../../error_handling/error_types.js\"\n\nexport const canRetryInvoiceWithNewPaymentMethod = ({ donation, causeSubscription, paymentType = \"donation\" }) => ({\n retryInvoiceWithNewPaymentMethod: async ({ invoiceId, customerId,\n paymentMethodId, }) => {\n\n let csrfToken = null\n\n if (document.querySelector(\"[name='csrf-token']\") != null) {\n // Grab the CSRF token from the meta tag\n csrfToken = document.querySelector(\"[name='csrf-token']\").content\n }\n const retryStripeInvoiceParams = {\n payment_type: paymentType,\n invoiceId: invoiceId,\n customerId: customerId,\n paymentMethodId: paymentMethodId,\n }\n\n if (typeof(donation) != \"undefined\") {\n retryStripeInvoiceParams.campaign_id = donation.campaignId\n } else if (typeof(causeSubscription) !== \"undefined\") {\n retryStripeInvoiceParams.cause_id = causeSubscription.causeId\n } else {\n throw new FailedToFetchError(\n \"Failed to fetch `/retry-stripe-invoice-with-new-payment-method`: \" +\n \"Neither `donation` nor `causeSubscription` was set\"\n )\n }\n\n let headerContent = {\n \"Content-Type\": \"application/json\"\n }\n\n if (csrfToken != null) {\n headerContent[\"X-CSRF-Token\"] = csrfToken\n }\n\n const response =\n await fetch(\"/retry-stripe-invoice-with-new-payment-method\", {\n headers: headerContent,\n method: \"POST\",\n body: JSON.stringify(retryStripeInvoiceParams)\n })\n\n if (!response.ok) {\n // Network error\n throw new FailedToFetchError(\"Failed to fetch 'retry-stripe-invoice-with-new-payment-method'\")\n }\n\n const invoice = await response.json()\n\n if (invoice.error) {\n throw invoice\n }\n\n return invoice\n }\n})","import {FailedToFetchError} from \"../../../error_handling/error_types.js\"\n\nexport const canCreateStripeSubscription = ({ donation, causeSubscription, paymentType = \"donation\" }) => ({\n createStripeSubscription: async ({ customerId, paymentMethodId, priceId, }) => {\n\n let csrfToken = null\n\n if (document.querySelector(\"[name='csrf-token']\") != null) {\n // Grab the CSRF token from the meta tag\n csrfToken = document.querySelector(\"[name='csrf-token']\").content\n }\n\n const stripeCustomerParams = {\n payment_type: paymentType,\n customerId: customerId,\n paymentMethodId: paymentMethodId,\n priceId: priceId,\n }\n\n if (typeof(donation) != \"undefined\") {\n stripeCustomerParams.campaign_id = donation.campaignId\n stripeCustomerParams.amountCents = donation.amount * 100\n stripeCustomerParams.tipPercent = donation.tipPercent\n } else if (typeof(causeSubscription) !== \"undefined\") {\n stripeCustomerParams.cause_id = causeSubscription.causeId\n } else {\n throw new FailedToFetchError(\n \"Failed to fetch `/stripe_subscriptions`: Neither `donation` nor \" +\n \"`causeSubscription` was set\"\n )\n }\n\n let headerContent = {\n \"Content-Type\": \"application/json\"\n }\n\n if (csrfToken != null) {\n headerContent[\"X-CSRF-Token\"] = csrfToken\n }\n\n const response = await fetch(\"/stripe_subscriptions\", {\n headers: headerContent,\n method: \"POST\",\n body: JSON.stringify(stripeCustomerParams)\n })\n\n if (!response.ok) {\n // Network error\n throw new FailedToFetchError(\"Failed to fetch '/stripe_subscriptions'\")\n }\n\n const subscription = await response.json()\n\n if (subscription.error) {\n throw subscription\n }\n\n return subscription\n }\n})","import {notBlank} from \"../../../helpers/string_helpers.js\"\n\nexport function setBillingName({ user, current_user_name }) {\n if (notBlank(user.firstName) && notBlank(user.lastName)){\n return `${user.firstName} ${user.lastName}`\n } else {\n return current_user_name\n }\n}","import {FailedToValidateHumanError} from \"../../../error_handling/error_types.js\"\n\nexport const canValidateHuman = ({ user, donation, causeSubscription, paymentType = \"donation\" }) => ({\n validateHuman: async () => {\n\n let csrfToken = null\n\n if (document.querySelector(\"[name='csrf-token']\") != null) {\n // Grab the CSRF token from the meta tag\n csrfToken = document.querySelector(\"[name='csrf-token']\").content\n }\n\n let postParams = {}\n\n // user is only passed in for donation by user that is not logged in\n if (typeof(user) != \"undefined\") {\n postParams.email = user.email\n postParams.password = user.password\n postParams.firstname = user.firstName\n postParams.lastname = user.lastName\n postParams.country = user.country\n postParams.zip = user.zip\n }\n\n if (typeof(gon.current_user_name) != \"undefined\") {\n postParams.current_user_name = gon.current_user_name\n }\n\n if (typeof(gon.current_user_email) != \"undefined\") {\n postParams.current_user_email = gon.current_user_email\n }\n\n if (typeof(donation) != \"undefined\") {\n postParams.campaign_id = donation.campaignId\n } else if (typeof(causeSubscription) !== \"undefined\") {\n postParams.cause_id = causeSubscription.causeId\n } else {\n throw new FailedToFetchError(\n \"Failed to fetch `/stripe_users`: Neither `donation` nor \" +\n \"`causeSubscription` was set\"\n )\n }\n\n let headerContent = {\n \"Content-Type\": \"application/json\"\n }\n\n if (csrfToken != null) {\n headerContent[\"X-CSRF-Token\"] = csrfToken\n }\n\n const response = await fetch(\"/humans\", {\n headers: headerContent,\n method: \"POST\",\n body: JSON.stringify(postParams)\n })\n\n if (!response.ok) {\n // Network error\n throw new FailedToValidateHumanError(\"Failed to validate human'\")\n }\n\n try {\n const validationResponse = await response.json()\n\n if (validationResponse.error) {\n throw validationResponse\n }\n\n if (!validationResponse.human) {\n throw new FailedToValidateHumanError(\n \"Failed to fetch `/humans`: `human` not set\"\n )\n }\n\n return validationResponse.human\n } catch(e) {\n throw new FailedToValidateHumanError(\"Failed to validate human'\")\n }\n }\n})","// Setup the Stripe card element on the form\nexport default function loadStripeCardElement(stripe) {\n var elements = stripe.elements();\n var style = {\n invalid: {\n color: '#a94442',\n iconColor: '#a94442'\n }\n };\n\n var card = elements.create('card', {\n hidePostalCode: true,\n style: style\n });\n\n // Add an instance of the card UI component into the `card-element`