UNPKG

@cloudpayments/checkout

Version:
152 lines (121 loc) 5.15 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.cp = {})); })(this, (function (exports) { 'use strict'; var checkoutPromise$1 = null; var URL = 'https://checkout.cloudpayments.ru/checkout.js'; var URL_REGEX = /^https:\/\/checkout\.cloudpayments\.ru\/checkout\.js\/?(\?.*)?$/; function findScript() { var scripts = document.querySelectorAll("script[src^=\"".concat(URL, "\"]")); for (var i = 0; i < scripts.length; i++) { var script = scripts[i]; if (URL_REGEX.test(script.src)) { return script; } } return null; } function injectScript(url) { var script = document.createElement('script'); script.src = url !== null && url !== void 0 ? url : "".concat(URL); var headOrBody = document.head || document.body; if (!headOrBody) { throw new Error('body not to be null'); } headOrBody.appendChild(script); return script; } function loadScript(url) { if (checkoutPromise$1 !== null) { return checkoutPromise$1; } checkoutPromise$1 = new Promise(function (resolve, reject) { var _window$cp; if (typeof window === 'undefined') { reject('allow to call only in browser'); return; } if ((_window$cp = window.cp) !== null && _window$cp !== void 0 && _window$cp.Checkout) { var _window$cp2; resolve((_window$cp2 = window.cp) === null || _window$cp2 === void 0 ? void 0 : _window$cp2.Checkout); } try { var script = findScript(); if (!script) { script = injectScript(url); } script.addEventListener('load', function () { var _window$cp3; if ((_window$cp3 = window.cp) !== null && _window$cp3 !== void 0 && _window$cp3.Checkout) { var _window$cp4; resolve((_window$cp4 = window.cp) === null || _window$cp4 === void 0 ? void 0 : _window$cp4.Checkout); } else { reject(new Error('window.cp.Checkout not found after loading')); } }); script.addEventListener('error', function (err) { reject(new Error("Failed to load checkout: ".concat(err.message))); }); } catch (error) { reject(error); return; } }); return checkoutPromise$1; } var checkoutPromise; function loadCheckout(checkoutSettings, checkoutFullUrl) { checkoutPromise = loadScript(checkoutFullUrl); return new Promise(function (resolve, reject) { checkoutPromise["catch"](function (err) { reject(err); }); checkoutPromise.then(function (checkout) { if (checkout === null) { reject("Failed to load checkout"); } else { resolve(new checkout(checkoutSettings)); } }); }); } exports.CardFields = void 0; (function (CardFields) { CardFields["cardNumber"] = "cardNumber"; CardFields["expDateMonthYear"] = "expDateMonthYear"; CardFields["expDateMonth"] = "expDateMonth"; CardFields["expDateYear"] = "expDateYear"; CardFields["cvv"] = "cvv"; })(exports.CardFields || (exports.CardFields = {})); exports.CardType = void 0; (function (CardType) { CardType[CardType["Unknown"] = 0] = "Unknown"; CardType[CardType["Amex"] = 1] = "Amex"; })(exports.CardType || (exports.CardType = {})); exports.CheckoutMode = void 0; (function (CheckoutMode) { CheckoutMode["Default"] = "default"; CheckoutMode["Cvv"] = "cvv"; })(exports.CheckoutMode || (exports.CheckoutMode = {})); exports.ValidationError = void 0; (function (ValidationError) { ValidationError["Name_Empty"] = "Name_Empty"; ValidationError["Name_Invalid"] = "Name_Invalid"; ValidationError["Name_TooLong"] = "Name_TooLong"; ValidationError["Name_TooShort"] = "Name_TooShort"; ValidationError["CardNumber_Empty"] = "CardNumber_Empty"; ValidationError["CardNumber_Invalid"] = "CardNumber_Invalid"; ValidationError["ExpDateMonth_Empty"] = "ExpDateMonth_Empty"; ValidationError["ExpDateMonth_Invalid"] = "ExpDateMonth_Invalid"; ValidationError["ExpDateYear_Empty"] = "ExpDateYear_Empty"; ValidationError["ExpDateYear_Invalid"] = "ExpDateYear_Invalid"; ValidationError["ExpDateMonthYear_Empty"] = "ExpDateMonthYear_Empty"; ValidationError["ExpDateMonthYear_Invalid"] = "ExpDateMonthYear_Invalid"; ValidationError["Cvv_Empty"] = "Cvv_Empty"; ValidationError["Cvv_Invalid"] = "Cvv_Invalid"; })(exports.ValidationError || (exports.ValidationError = {})); exports.loadCheckout = loadCheckout; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=bundle.umd.js.map