@cloudpayments/checkout
Version:
152 lines (121 loc) • 5.15 kB
JavaScript
(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