vue-culqi-checkout
Version:
<p align="center"> <h1 align="center">Vue Culqi Checkout 💳</h1> </p>
98 lines (79 loc) • 2.69 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
var plugin = {
install: function install(Vue, options) {
var vue = Vue;
this.loadScript('culqi-lib').then(function (win) {
if (win.Culqi && options) {
win.Culqi.publicKey = options.publicKey;
var qResolve;
var qReject;
win.culqi = function () {
var _win$Culqi;
if ((_win$Culqi = win.Culqi) != null && _win$Culqi.token) {
var _win$Culqi2;
qResolve((_win$Culqi2 = win.Culqi) == null ? void 0 : _win$Culqi2.token);
} else {
var _win$Culqi3, _win$Culqi3$error;
qReject(new Error((_win$Culqi3 = win.Culqi) == null ? void 0 : (_win$Culqi3$error = _win$Culqi3.error) == null ? void 0 : _win$Culqi3$error.user_message));
}
};
vue.prototype.$culqi = {
openCheckout: function openCheckout(subOptions) {
var _win$Culqi4, _win$Culqi5;
if (subOptions === void 0) {
subOptions = {};
}
(_win$Culqi4 = win.Culqi) == null ? void 0 : _win$Culqi4.settings(_extends({}, options, subOptions));
(_win$Culqi5 = win.Culqi) == null ? void 0 : _win$Culqi5.open();
return new Promise(function (resolve, reject) {
qResolve = resolve;
qReject = reject;
});
}
};
}
})["catch"](window.alert);
},
loadScript: function loadScript(id) {
return new Promise(function (resolve, reject) {
var c = 0;
var win = window;
if (!document.getElementById(id)) {
var doc = document;
var script = doc.createElement('script');
script.async = true;
script.src = 'https://checkout.culqi.com/js/v3';
script.id = id;
doc.body.appendChild(script);
}
var checkCulqi = setInterval(function () {
c += 1;
if (c > 10) {
clearInterval(checkCulqi);
reject(new Error('The Culqi plugin could not be loaded.'));
}
if (win.Culqi) {
clearInterval(checkCulqi);
resolve(win);
}
}, 1000);
});
}
};
exports.default = plugin;
//# sourceMappingURL=vue-culqi-checkout.cjs.development.js.map