{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://@vpay/verified-pay/webpack/runtime/load script","webpack://@vpay/verified-pay/./node_modules/debug/src/browser.js","webpack://@vpay/verified-pay/./node_modules/debug/src/common.js","webpack://@vpay/verified-pay/./node_modules/ms/index.js","webpack://@vpay/verified-pay/./node_modules/process/browser.js","webpack://@vpay/verified-pay/./src/AbstractPage.ts","webpack://@vpay/verified-pay/webpack/bootstrap","webpack://@vpay/verified-pay/webpack/runtime/define property getters","webpack://@vpay/verified-pay/webpack/runtime/ensure chunk","webpack://@vpay/verified-pay/webpack/runtime/get javascript chunk filename","webpack://@vpay/verified-pay/webpack/runtime/global","webpack://@vpay/verified-pay/webpack/runtime/hasOwnProperty shorthand","webpack://@vpay/verified-pay/webpack/runtime/make namespace object","webpack://@vpay/verified-pay/webpack/runtime/publicPath","webpack://@vpay/verified-pay/webpack/runtime/jsonp chunk loading","webpack://@vpay/verified-pay/./src/utils/WebHelpers.ts","webpack://@vpay/verified-pay/./src/ui/AppMessage.ts","webpack://@vpay/verified-pay/./src/utils/misc.ts","webpack://@vpay/verified-pay/./src/utils/Log.ts","webpack://@vpay/verified-pay/./src/components/MultiDropdown.ts","webpack://@vpay/verified-pay/./src/Merchant.ts","webpack://@vpay/verified-pay/./src/structs/CardEvent.ts","webpack://@vpay/verified-pay/./src/CreditCard.ts","webpack://@vpay/verified-pay/./node_modules/@paystack/inline-js/es/inline.js","webpack://@vpay/verified-pay/./src/gateway/AbstractGateway.ts","webpack://@vpay/verified-pay/./src/gateway/GatewaySa.ts","webpack://@vpay/verified-pay/./src/structs/Payment.ts","webpack://@vpay/verified-pay/./src/utils/Store.ts","webpack://@vpay/verified-pay/./src/gateway/GatewayUs.ts","webpack://@vpay/verified-pay/./src/Pay.ts","webpack://@vpay/verified-pay/./src/Localizer.ts","webpack://@vpay/verified-pay/./src/Landing.ts","webpack://@vpay/verified-pay/./src/Timestamps.ts","webpack://@vpay/verified-pay/./src/JqueryApp.ts","webpack://@vpay/verified-pay/./index.ts"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"@vpay/verified-pay:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import {JqueryApp} from \"./JqueryApp\";\nimport {WebHelpers} from \"./utils/WebHelpers\";\n\n\nexport class AbstractPage {\n protected app: JqueryApp;\n protected webHelpers: WebHelpers;\n\n constructor(app: JqueryApp) {\n this.app = app;\n this.webHelpers = this.app.getWebHelpers();\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".bundle.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t57: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_vpay_verified_pay\"] = self[\"webpackChunk_vpay_verified_pay\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import {BrowserWindow} from \"../types\";\n\nexport interface WebHelpersConfig {\n cookieLifeDays: number;\n cookiePath: string;\n cookieHost: string;\n siteUrl: string;\n}\n\nexport class WebHelpers {\n public readonly window: BrowserWindow;\n public readonly $: JQueryStatic;\n\n protected config: WebHelpersConfig;\n protected cssSelectors: string[] = [];\n\n constructor(window: BrowserWindow, $: JQueryStatic, config: WebHelpersConfig) {\n this.window = window;\n this.$ = $;\n this.config = config;\n }\n\n public setConfig(config: WebHelpersConfig) {\n this.config = config;\n }\n\n public getConfig(): WebHelpersConfig {\n return this.config;\n }\n\n public getBrowserLang() {\n return this.window.navigator.language.substr(0, 2).toLowerCase();\n }\n\n public getCookie(c_name: string) {\n let i, x, y;\n let ARRcookies = this.window.document.cookie.split(\";\");\n for (i = 0; i < ARRcookies.length; i++)\n {\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf(\"=\"));\n y = ARRcookies[i].substr(ARRcookies[i].indexOf(\"=\") + 1);\n x = x.replace(/^\\s+|\\s+$/g,\"\");\n if (x == c_name)\n return decodeURI(y);\n }\n return null;\n }\n\n public setCookie(name: string, value: any, expireDays: number) {\n let date = new Date();\n date = new Date(date.getTime()+1000*60*60*24* (expireDays ? expireDays : this.config.cookieLifeDays));\n //document.cookie = name + \"=\" + value + \"; expires=\" + date.toGMTString() + \"; path=\" + pageData.cookiePath + \"; domain=.\" + location.host;\n // we must add \"domain\" key if server adds it or else there will be 2 different cookies\n this.window.document.cookie = name + \"=\" + value + \"; expires=\" + date.toUTCString() + \"; path=\" + this.config.cookiePath + \"; domain=\" + this.config.cookieHost;\n }\n\n public removeCookie(name: string) {\n //document.cookie = name + \"=; expires=Thu, 02 Jan 1970 00:00:00 UTC; path=\" + pageData.cookiePath + \"; domain=.\" + location.host;\n this.window.document.cookie = name + \"=; expires=Thu, 02 Jan 1970 00:00:00 UTC; path=\" + this.config.cookiePath;\n }\n\n public fromBase64(data: string) {\n if (typeof this.window.atob !== \"function\") {\n this.window.console.error(\"Base64 decoding is not supported in your browser\");\n return \"\";\n }\n return this.window.atob(data);\n }\n\n public toBase64(data: string) {\n if (typeof this.window.btoa !== \"function\") {\n this.window.console.error(\"Base64 encoding is not supported in your browser\");\n return \"\";\n }\n return this.window.btoa(data);\n }\n\n /**\n * Populate a html template\n * @param text {String}: The html template (or just normal text with variables)\n * @param variables {Object}: the key-value pairs with variables names and their content to be set in text\n * @param safeHtml {boolean, default false}: don't escape html characters if set to true\n * @returns {String} the translated html\n */\n public translate(text: string, variables: any, safeHtml: boolean = false) {\n if (typeof text !== \"string\") {\n try {\n // @ts-ignore\n text = text.toString();\n }\n catch (e) {\n this.log(\"Text to translate is not a string\");\n return text;\n }\n }\n let start = 0, end = 0;\n while ((start = text.indexOf(\"{\", start)) !== -1)\n {\n if (start > 0 && text.charAt(start-1) === \"\\\\\") { // escaped javascript code beginning\n start++;\n continue;\n }\n end = text.indexOf(\"}\", start);\n if (end === -1) {\n this.log(\"Can not find end position while translating HTML\");\n break;\n }\n let placeHolder = text.substring(start+1, end);\n let translation = null;\n if (placeHolder.substring(0, 3) === \"tr:\") {\n let key = placeHolder.substring(3);\n //translation = this.tr(key.toUpperCase());\n translation = this.tr(key);\n }\n else if (typeof variables === \"object\") {\n let textPiece = variables[placeHolder];\n if (typeof textPiece !== \"undefined\") {\n if (typeof safeHtml === \"boolean\" && safeHtml)\n translation = textPiece;\n else\n translation = this.escapeOutput(textPiece);\n }\n }\n if (translation !== null) {\n let reg = new RegExp(\"\\\\{\" + placeHolder + \"\\\\}\", \"g\");\n text = text.replace(reg, translation);\n }\n else if (placeHolder.match(\"^[A-Za-z0-9_]+$\") !== null) {\n this.log(\"No translation found for place holder: \" + placeHolder);\n let reg = new RegExp(\"\\\\{\" + placeHolder + \"\\\\}\", \"g\");\n text = text.replace(reg, \"MISSING: \" + this.escapeOutput(placeHolder));\n }\n else\n start += placeHolder.length;\n }\n text = text.replace(/\\\\\\\\\\\\{/, \"{\");\n return text;\n }\n\n public escapeOutput(text: string, convertNewlines: boolean = true) {\n if (typeof text !== \"string\")\n return text;\n text = text.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n if (typeof convertNewlines === \"undefined\" || convertNewlines === true)\n text = text.replace(/\\r?\\n/g, \"
\");\n return text;\n }\n\n public escapeRegex(str: string) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n }\n\n public tr(key: string) {\n //if (typeof language[key] === \"undefined\")\n //return \"MISSING: \" + key;\n //return language[key];\n //return i18next.t(key) // will just print the key if it doesn't exist and debug is disabled\n return key; // we don't have client-side translation support on this WP plugin yet. just return the key // TODO do we need this if we make our plugin use more ajax?\n }\n\n public log(args) {\n if (//typeof pageData.debugLog !== \"boolean\" || pageData.debugLog === false || // TODO add in CashTipprConfig\n typeof this.window.console !== \"object\" || typeof this.window.console.log !== \"function\")\n return;\n this.window.console.log(arguments);\n }\n\n public isAppleIOS() {\n // https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\n return /iPad|iPhone|iPod/.test(this.window.navigator.userAgent) && !(this.window as any).MSStream;\n }\n\n public getAllCssSelectors(cached = true): string[] {\n if (cached === true && this.cssSelectors.length !== 0)\n return this.cssSelectors;\n\n this.cssSelectors = [];\n try {\n const originRegex = new RegExp(\"^\" + this.escapeRegex(this.window.document.location.origin), \"i\");\n for (let i = 0; i < this.window.document.styleSheets.length; i++)\n {\n const sheet: any = this.window.document.styleSheets[i];\n if (sheet.href && originRegex.test(sheet.href) === false)\n continue; // can't access it\n if (sheet.rules) {\n for (let u = 0; u < sheet.rules.length; u++)\n {\n if (sheet.rules[u].selectorText)\n this.cssSelectors.push(sheet.rules[u].selectorText);\n }\n }\n if (sheet.imports) {\n for (let x = 0; x < sheet.imports.length; x++)\n {\n for (let u = 0; u < sheet.imports[x].rules.length; u++)\n {\n if (sheet.imports[x].rules[u].selectorText)\n this.cssSelectors.push(sheet.imports[x].rules[u].selectorText);\n }\n }\n }\n }\n }\n catch (err) {\n this.window.console.error(\"Error getting CSS selectors\", err);\n }\n return this.cssSelectors;\n }\n\n public isExistingCssSelector(selector: string): boolean {\n const selectors = this.getAllCssSelectors();\n for (let i = 0; i < selectors.length; i++)\n {\n if (selectors[i] === selector) // css props case insensitive, class names in HTML case sensitive\n return true;\n }\n return false;\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n public addParamToUrl(urlStr: string, key: string, value: string = \"\", overwrite: boolean = false) {\n if (!value)\n value = \"1\";\n let start = urlStr.indexOf('?');\n if (start !== -1 && urlStr.indexOf(key + '=') !== -1) {\n if (!overwrite)\n return urlStr // param already exists\n let search = this.escapeRegex(key + '=');\n urlStr = urlStr.replace(new RegExp(search + '[^&]*(&|$)'), ''); // remove it and add it to the end of the url\n urlStr = urlStr.replace(/(\\?|&)$/, '');\n }\n let queryParam = urlStr.indexOf('?') !== -1 ? '&' : '?';\n return urlStr + queryParam + key + '=' + value;\n }\n\n public getApi(path: string, data?: any, callback?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any, dataType?: string) {\n if (typeof data === \"function\") {\n callback = data;\n data = null;\n }\n else if (data === undefined)\n data = null;\n let url = this.fixRelativeUrl(path);\n return this.$.get(url, data, (data, textStatus, jqXHR) => {\n callback(data, textStatus, jqXHR);\n }, dataType);\n }\n\n public postApi(path: string, data?: any, callback?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any, dataType?: string) {\n let url = this.fixRelativeUrl(path);\n return this.$.post(url, data, (data, textStatus, jqXHR) => {\n callback(data, textStatus, jqXHR);\n }, dataType);\n }\n\n public postJson(path: string, data?: any, callback?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any, dataType?: string) {\n let url = this.fixRelativeUrl(path);\n const that = this;\n return this.$.ajax(url, {\n url: url,\n //data: JSON.stringify(data),\n contentType: \"application/json\",\n accepts: {\n json: \"application/json\",\n },\n method: \"POST\",\n dataType: \"json\",\n //xhrFields: {\n //withCredentials: true\n //},\n success(data: any, textStatus: string, jqXHR: JQueryXHR): any {\n callback(data, textStatus, jqXHR);\n },\n error(jqXHR: JQueryXHR, textStatus: string, errorThrown: string): any {\n that.log([\"Error posting JSON \" + textStatus, errorThrown]);\n callback(null, textStatus, jqXHR);\n },\n });\n }\n\n public preloadImages(...urls: string[]) {\n // jQuery version: https://css-tricks.com/snippets/jquery/image-preloader/\n // CSS version: https://web.dev/preload-responsive-images/#preload-overview\n for (let i = 0; i < urls.length; i++)\n {\n let image = window.document.createElement(\"img\"); // or new Image()\n image.alt = \"preload-\" + i;\n image.src = urls[i];\n }\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected fixRelativeUrl(url: string): string {\n if (url.toLowerCase().indexOf(\"http\") === 0)\n return url; // already a full url\n let fullUrl = this.config.siteUrl;\n if (url.length !== 0 && url[0] === \"/\" && fullUrl[fullUrl.length-1] === \"/\")\n fullUrl = fullUrl.substr(0, fullUrl.length-1); // avoid duplicate //\n fullUrl += url;\n return fullUrl;\n }\n}\n","\n// modelled after Bootstrap alerts\n\nexport type AppMessageType = \"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"info\" | \"light\" | \"dark\";\n\nexport interface AppMsgLocales {\n close: string;\n}\n\nexport class AppMessage {\n protected static $: JQueryStatic = (window as any).$;\n protected static locales: AppMsgLocales = {close: \"Close\"};\n\n public readonly text: string;\n public readonly type: AppMessageType;\n public readonly canDismiss: boolean;\n public readonly id: number;\n\n protected static counter = 0;\n\n constructor(text: string, type: AppMessageType, canDismiss: boolean = true) {\n this.text = text;\n this.type = type;\n this.canDismiss = canDismiss;\n this.id = ++AppMessage.counter;\n }\n\n public display(): void {\n AppMessage.$(\"#app-messages\").append(this.toHtml());\n AppMessage.$('html, body').animate({scrollTop: 0}, 260);\n }\n\n public toHtml(): string {\n if (this.canDismiss === false) {\n return `
${this.text}
`;\n }\n return `
${this.text}\n \n
`;\n }\n\n public static setJquery($: JQueryStatic): void {\n AppMessage.$ = $;\n }\n\n public static setLocales(locales: AppMsgLocales) {\n AppMessage.locales = locales;\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n}\n","export type DateInterval = \"year\" | \"quarter\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\n\nexport function fixUrlTrailingSlash(url: string): string {\n url = url.trim();\n if (url.length === 0 || url[url.length-1] === \"/\")\n return url;\n return url + \"/\";\n}\n\n/**\n * Adds the given units of interval to the date.\n * It returns a copy of the date, so the given date is not modified.\n * @param date\n * @param interval\n * @param units\n */\nexport function dateAdd(date: Date, interval: DateInterval, units: number): Date {\n let ret = new Date(date); //don't change original date\n switch (interval.toLowerCase()) {\n case 'year' : ret.setFullYear(ret.getFullYear() + units); \tbreak;\n case 'quarter': ret.setMonth(ret.getMonth() + 3*units); \t\tbreak;\n case 'month' : ret.setMonth(ret.getMonth() + units); \t\t break;\n case 'week' : ret.setDate(ret.getDate() + 7*units); \t\t break;\n case 'day' : ret.setDate(ret.getDate() + units); \t\t\t break;\n case 'hour' : ret.setTime(ret.getTime() + units*3600000); \t break;\n case 'minute' : ret.setTime(ret.getTime() + units*60000); \t break;\n case 'second' : ret.setTime(ret.getTime() + units*1000); \t\t break;\n default : ret = undefined; break;\n }\n return ret;\n}\n\nexport function assertUnreachableCode(x: never): never {\n throw new Error(\"Unexpected object: \" + x);\n}\n\nexport function toDisplayTimeHHMMSS(secondsTotal: number, forceHours: boolean = false): string {\n const hours = Math.floor(secondsTotal / 3600);\n const minutes = Math.floor((secondsTotal - (hours * 3600)) / 60);\n const seconds = secondsTotal - (hours * 3600) - (minutes * 60);\n\n let timeStr = \"\";\n if (hours !== 0 || forceHours === true) {\n if (hours < 10)\n timeStr += \"0\";\n timeStr += hours + \":\";\n }\n if (minutes < 10)\n timeStr += \"0\";\n timeStr += minutes + \":\";\n if (seconds < 10)\n timeStr += \"0\";\n timeStr += seconds;\n return timeStr;\n}\n\nexport interface GetBetweenOptions {\n startPos?: number;\n prestartTxt?: string;\n caseInsensitive?: boolean;\n}\n\nexport function getBetween(text: string, startTxt: string, endTxt: string, options: GetBetweenOptions = {}): string | false {\n options.startPos = typeof options.startPos === 'number' ? options.startPos : 0\n let preStart = typeof options.prestartTxt === 'string' && options.prestartTxt !== ''\n let searchText = options.caseInsensitive === true ? text.toLocaleLowerCase() : text\n if (options.caseInsensitive === true) {\n if (preStart)\n options.prestartTxt = options.prestartTxt.toLocaleLowerCase()\n startTxt = startTxt.toLocaleLowerCase()\n endTxt = endTxt.toLocaleLowerCase()\n }\n if (preStart) {\n options.startPos = searchText.indexOf(options.prestartTxt, options.startPos)\n if (options.startPos === -1)\n return false\n options.startPos += options.prestartTxt.length\n }\n options.startPos = searchText.indexOf(startTxt, options.startPos)\n if (options.startPos === -1)\n return false\n options.startPos += startTxt.length\n let endPos = searchText.indexOf(endTxt, options.startPos)\n if (endPos === -1)\n return false\n return text.substr(options.startPos, endPos-options.startPos)\n}\n\nexport function format(string: string, ...args: string[]): string {\n let start = 0;\n for (let i = 1; i < arguments.length; i++)\n {\n let search = \"%\" + i;\n start = string.indexOf(search, start);\n if (start === -1)\n break;\n start += 2;\n string = string.replace(search, arguments[i]);\n }\n return string;\n}\n","import * as debug from \"debug\";\n//import * as supportsColor from \"supports-color\"; // only for NodeJS to enable more colors\n\n// to enable write on console: localStorage.debug = 'vpay:*'\nconst NS_BASE = 'vpay';\n// TODO create namespaces per app name? we can't read app dir on filesystem and we want to avoid missing logs due to include order (from another lib using this class)\n\n/*\nconst COLORS = {\n trace: 'lightblue',\n info: 'blue',\n warn: 'pink',\n error: 'red'\n};\n*/\n\nclass Log {\n // https://www.npmjs.com/package/debug#formatters\n constructor() {\n }\n\n public trace(formatter: any, ...args: any[]): void {\n }\n\n public verbose(formatter: any, ...args: any[]): void {\n }\n\n public info(formatter: any, ...args: any[]): void {\n }\n\n public warn(formatter: any, ...args: any[]): void {\n }\n\n public error(formatter: any, ...args: any[]): void {\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n}\n\nconst logger = new Log();\n/*\nObject.keys(COLORS).forEach((logLevel) => {\n console.log(logLevel, COLORS[logLevel])\n //debug.colors = COLORS[logLevel];\n});\ndebug.colors = COLORS;\n*/\nlogger.trace = debug(NS_BASE + \":trace\" );\nlogger.verbose = debug(NS_BASE + \":verbose\" );\nlogger.info = debug(NS_BASE + \":info\" );\nlogger.warn = debug(NS_BASE + \":warn\" );\nlogger.error = debug(NS_BASE + \":error\" );\n\nexport {logger}\n","import {AbstractPage} from \"../AbstractPage\";\nimport {JqueryApp} from \"../JqueryApp\";\n\nexport class MultiDropdown extends AbstractPage{\n protected selectorPrefix = \"\";\n\n constructor(app: JqueryApp, selectorPrefix: string = \"\") {\n super(app);\n this.selectorPrefix = selectorPrefix;\n\n this.app.$(() => { // jQuery 3.0 \"document.ready\"\n this.handleDropdownTitle();\n this.app.$(`${this.selectorPrefix} .multi-dropdown input[type='checkbox']`).on(\"change\", (event) => {\n this.handleCheckboxChange(event.target);\n });\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected handleDropdownTitle() {\n\n }\n\n protected handleCheckboxChange(el: HTMLElement) {\n const boxes = this.app.$(`${this.selectorPrefix} .multi-dropdown input[type='checkbox']`);\n const tr = this.app.getTr();\n\n // check if first selected\n if (boxes.eq(0).is(\":checked\")) {\n boxes.each((i, el) => {\n if (i === 0)\n return;\n this.app.$(el).prop(\"checked\", false);\n });\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-title`).text(boxes.eq(0).text());\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-value`).text(boxes.eq(0).attr(\"data-val\"));\n return;\n }\n\n const checkedValues = boxes.filter(\":checked\").map((i, el) => this.app.$(el).attr(\"data-val\")).get();\n if (checkedValues.length > 1) {\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-title`).text(checkedValues.length + \" \" + tr.get(\"selected\"));\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-value`).text(checkedValues.join(\",\"));\n }\n else if (checkedValues.length === 1) {\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-title`).text(boxes.filter(\":checked\").eq(0).text());\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-value`).text(checkedValues[0]);\n }\n else {\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-title`).text(tr.get(\"select\"));\n this.app.$(`${this.selectorPrefix} .multi-dropdown .dropdown-value`).text(\"\");\n }\n }\n}\n","import {AbstractPage} from \"./AbstractPage\";\nimport {JqueryApp} from \"./JqueryApp\";\nimport {AppMessage} from \"./ui/AppMessage\";\nimport {logger} from \"./utils/Log\";\nimport {MultiDropdown} from \"./components/MultiDropdown\";\n\nexport class Merchant extends AbstractPage {\n protected multiDropdown: MultiDropdown;\n\n constructor(app: JqueryApp) {\n super(app);\n this.multiDropdown = new MultiDropdown(app);\n\n this.app.$(() => { // jQuery 3.0 \"document.ready\"\n this.initPage();\n this.addEventListeners();\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected initPage() {\n this.togglePayoutMethodInputs(this.app.$(\"#payoutMethodVal\").val() as string);\n }\n\n protected addEventListeners() {\n if (this.app.$(\"#refundAmountGateway\").length !== 0) {\n this.onRefundAmountChange(this.app.$(this.app.$(\"#refundAmount\")).val() as number);\n this.app.$(\"#refundAmount\").on(\"change\", (event) => {\n this.onRefundAmountChange(this.app.$(event.target).val() as number);\n });\n this.app.$(\"#refundAmount\").on(\"keyup\", (event) => {\n this.onRefundAmountChange(this.app.$(event.target).val() as number);\n });\n }\n\n this.app.$(\"#chargeback-tx\").on(\"click\", (event) => {\n if (!this.app.getWebHelpers().window.confirm(this.app.getTr().get(\"chargebackConfirm\"))) {\n event.preventDefault();\n }\n });\n\n this.app.$(\"#payoutMethods a\").on(\"click\", (event) => {\n const method = this.app.$(event.target).attr(\"data-val\");\n this.togglePayoutMethodInputs(method);\n //const tr = this.app.getTr();\n this.app.$(\"#payoutMethodVal\").attr(\"value\", method);\n this.app.$(\"#payoutMethod\").text(this.app.$(event.target).text());\n });\n\n this.app.$(\"#paymentGateways a\").on(\"click\", (event) => {\n const method = this.app.$(event.target).attr(\"data-val\");\n this.app.$(\"#gatewayVal\").attr(\"value\", method);\n this.app.$(\"#gateway\").text(this.app.$(event.target).text());\n });\n // this.app.$(\"#gateway-form\").on(\"submit\", (event) => {\n // event.preventDefault();\n // });\n }\n\n protected onRefundAmountChange(amount: number) {\n let gatewayAmount = amount * this.app.getConfig().exchangeRate;\n this.app.$(\"#refundAmountGateway\").val(gatewayAmount.toFixed(2));\n }\n\n protected togglePayoutMethodInputs(method: string) {\n switch (method) {\n //case \"paypal\":\n case \"usdt_eth\":\n this.app.$(\".method-swift\").fadeOut(\"slow\");\n this.app.$(\".method-usdteth\").fadeIn(\"slow\");\n break;\n case \"swift\":\n this.app.$(\".method-usdteth\").fadeOut(\"slow\");\n this.app.$(\".method-swift\").fadeIn(\"slow\");\n break;\n default:\n logger.error(\"Unknown payout method: \" + method);\n }\n }\n}\n","import {WebHelpers} from \"../utils/WebHelpers\";\nimport {AppConfig} from \"../JqueryApp\";\n\nexport const enum PaymentTrackingAction {\n PaymentTrackingActionUnknown = 0,\n PaymentTrackingActionAttempt = 1,\n PaymentTrackingActionError = 2,\n PaymentTrackingActionSuccess = 3,\n PaymentTrackingActionCancel = 4,\n PaymentTrackingActionInput = 5,\n PaymentTrackingActionUserAction = 6,\n PaymentTrackingActionAuth = 7,\n}\n\nexport class CardEvent {\n protected static webHelpers: WebHelpers;\n protected static config: AppConfig;\n protected static autoSend: boolean = true;\n\n public readonly action: PaymentTrackingAction;\n public readonly time: Date;\n protected message: string = \"\";\n\n constructor(action: PaymentTrackingAction, message: string = \"\") {\n this.action = action;\n this.message = message;\n this.time = new Date();\n if (CardEvent.autoSend === true)\n this.send();\n }\n\n public static setWebHelpers(webHelpers: WebHelpers, config: AppConfig): void {\n CardEvent.webHelpers = webHelpers;\n CardEvent.config = config;\n }\n\n public static setAutoSend(autoSend: boolean): void {\n CardEvent.autoSend = autoSend;\n }\n\n public setMessage(message: string): CardEvent {\n this.message = message;\n return this;\n }\n\n public send(): void {\n try {\n const config = CardEvent.config;\n const url = config.apiBase + config.pathCardEvent;\n const fullToken = config.payment.token + \"-\" + config.payment.merchantId;\n const data = {\n tx_id: fullToken,\n action: this.action,\n message: this.message,\n time: this.time,\n }\n CardEvent.webHelpers.postApi(url, data, (data) => {\n if (!data || data.error) {\n console.error(\"Error sending card event\", data);\n return;\n }\n });\n }\n catch (err) {\n console.error(\"Exception on card event\", err);\n }\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n}\n","import {AbstractPage} from \"./AbstractPage\";\nimport {JqueryApp} from \"./JqueryApp\";\nimport {CardEvent, PaymentTrackingAction} from \"./structs/CardEvent\";\n\n\nexport class CreditCard extends AbstractPage {\n protected validated: boolean = false;\n\n protected expiryMonth: JQuery = null;\n protected expiryYear: JQuery = null;\n protected expiryField: JQuery = null;\n protected changedMonth: boolean = false;\n protected changedYear: boolean = false;\n\n constructor(app: JqueryApp) {\n super(app);\n CardEvent.setWebHelpers(this.webHelpers, this.app.getConfig());\n\n this.app.$(() => { // jQuery 3.0 \"document.ready\"\n this.app.$('#confirm-purchase').removeAttr('disabled');\n });\n }\n\n public styleCards() {\n const $ = this.app.$;\n const form = $('#payauth-form');\n if (form.length === 0)\n return;\n\n $('#screen-width').val($(this.webHelpers.window).width());\n $('#screen-height').val($(this.webHelpers.window).height());\n\n //const owner = this.app.$('#owner');\n const cardNumber = $('#cardNumber');\n const cardNumberField = $('#card-number-field');\n const cvvNumberField = $('#cvv-number-field');\n const CVV = $(\"#cvv\");\n const mastercard = $(\"#mastercard\");\n\n this.expiryField = $('#expiration-date');\n this.expiryMonth = $(\"#credit_expiry_month\");\n this.expiryYear = $(\"#credit_expiry_year\");\n const visa = $(\"#visa\");\n const amex = $(\"#amex\");\n\n // Use the payform library to format and validate\n // the payment fields.\n\n // TODO add timer event with ping?\n\n cardNumber.payform('formatCardNumber');\n CVV.payform('formatCardCVC');\n\n cardNumber.on(\"change\", () => {\n amex.removeClass('transparent').removeClass('active');\n visa.removeClass('transparent').removeClass('active');\n mastercard.removeClass('transparent').removeClass('active');\n\n if ($.payform.validateCardNumber(cardNumber.val() as string) == false) {\n cardNumberField.addClass('has-error');\n this.showCardError(\"invalidCc\");\n }\n else {\n cardNumberField.removeClass('has-error');\n cardNumberField.addClass('has-success');\n this.removeCardError(\"invalidCc\");\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionInput, \"User entered card number\");\n }\n\n if ($.payform.parseCardType(cardNumber.val() as string) == 'visa') {\n visa.addClass('active');\n mastercard.addClass('transparent');\n amex.addClass('transparent');\n }\n else if ($.payform.parseCardType(cardNumber.val() as string) == 'amex') {\n amex.addClass('active');\n mastercard.addClass('transparent');\n visa.addClass('transparent');\n }\n else if ($.payform.parseCardType(cardNumber.val() as string) == 'mastercard') {\n mastercard.addClass('active');\n amex.addClass('transparent');\n visa.addClass('transparent');\n }\n });\n\n CVV.on(\"change\", () => {\n //if (CVV.is(\":focus\"))\n //return;\n if ($.payform.validateCardCVC(CVV.val() as string) == false) {\n cvvNumberField.addClass('has-error');\n this.showCardError(\"invalidCvv\");\n }\n else {\n cvvNumberField.removeClass('has-error');\n cvvNumberField.addClass('has-success');\n this.removeCardError(\"invalidCvv\");\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionInput, \"User entered CVV\");\n }\n });\n\n this.expiryMonth.on(\"change\", () => {\n this.changedMonth = true;\n if (this.changedYear === true) // validate if both have been changed\n this.validateExpiration();\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionInput, \"User entered expiry month\");\n });\n\n this.expiryYear.on(\"change\", () => {\n this.changedYear = true;\n if (this.changedMonth === true)\n this.validateExpiration();\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionInput, \"User entered expiry year\");\n });\n\n //confirmButton.on(\"click\", (e) => {\n form.on(\"submit\", (e) => {\n if (this.validated === true)\n return;\n e.preventDefault();\n\n const isCardValid = $.payform.validateCardNumber(cardNumber.val() as string);\n const isCvvValid = $.payform.validateCardCVC(CVV.val() as string);\n const isValidExpiry = this.validateExpiration();\n\n //if((owner.val() as string).length < 5){\n if (!isCardValid) {\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionUserAction, \"User clicked pay: invalid Card no\");\n console.warn(\"Invalid card number\");\n this.showCardError(\"invalidCc\");\n }\n else if (!isCvvValid) {\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionUserAction, \"User clicked pay: invalid CVV\");\n console.warn(\"Invalid CVV\"); // also catches date in the past\n this.showCardError(\"invalidCvv\");\n }\n else if (!isValidExpiry) { // check if expiration date in the past\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionUserAction, \"User clicked pay: invalid expiration date\");\n console.warn(\"Invalid expiration date\");\n // card err already shown\n }\n else {\n // Everything is correct. Add your form submission code here.\n const event = new CardEvent(PaymentTrackingAction.PaymentTrackingActionUserAction, \"User clicked pay: validation passed\");\n this.clearCardError();\n this.validated = true;\n this.disablePayButtonTimer();\n //form.submit(); // use submit event to catch enter\n form.trigger(\"submit\");\n }\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected validateExpiration(): boolean {\n const isValidExpiry = $.payform.validateCardExpiry(this.expiryMonth.val() as string, this.expiryYear.val() as string);\n\n if (isValidExpiry == false) {\n this.expiryField.addClass('has-error');\n this.showCardError(\"invalidExp\");\n return false;\n }\n this.removeCardError(\"invalidExp\");\n this.expiryField.removeClass('has-error');\n this.expiryField.addClass('has-success');\n return true;\n }\n\n protected disablePayButtonTimer() {\n const confirmButton = this.app.$('#confirm-purchase');\n confirmButton.attr('disabled', \"true\");\n setTimeout(() => {\n confirmButton.removeAttr('disabled');\n }, 12000);\n }\n\n protected showCardError(errLabel: string): void {\n let err = this.app.getTr().get(errLabel);\n if (!err)\n err = this.app.getTr().get(\"unknownErr\");\n this.app.$(\"#pay-cc-error\").html(err).fadeIn(\"slow\");\n }\n\n protected removeCardError(errLabel: string): void {\n let err = this.app.getTr().get(errLabel);\n if (this.app.$(\"#pay-cc-error\").html() === err)\n this.clearCardError();\n }\n\n protected clearCardError(): void {\n this.app.$(\"#pay-cc-error\").html(\"\").fadeOut(\"slow\");\n }\n}\n","function e(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function n(n){for(var t=1;t=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function s(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null==t)return;var a,o,r=[],i=!0,c=!1;try{for(t=t.call(e);!(i=(a=t.next()).done)&&(r.push(a.value),!n||r.length!==n);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(c)throw o}}return r}(e,n)||p(e,n)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||p(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function p(e,n){if(e){if(\"string\"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t?Array.from(e):\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t-1})).map((function(e){return t[e].nodeName}))}return e}var b='\\n \\n \\n \\n';var k={height:\"50px\",width:\"auto\",borderRadius:\"3px\",padding:\"10px\",locale:\"en\",type:\"pay\"},w=function(e){return e&&\"object\"===t(e)?Object.keys(k).reduce((function(t,a){return n(n({},t),{},i({},a,e[a]||k[a]))}),{}):k},x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return Number(parseFloat(e/100).toFixed(2))},M={headers:{accept:\"application/json, text/plain, */*\",\"accept-language\":\"en-GB,en-US;q=0.9,en;q=0.8\",\"content-type\":\"application/x-www-form-urlencoded\",\"sec-ch-ua-mobile\":\"?0\",\"sec-fetch-dest\":\"empty\",\"sec-fetch-mode\":\"cors\",\"sec-fetch-site\":\"cross-site\"},referrerPolicy:\"no-referrer-when-downgrade\",method:\"POST\",mode:\"cors\",credentials:\"omit\"};function P(e){return Object.keys(e).reduce((function(n,t){var a=encodeURIComponent(t),o=encodeURIComponent(e[t]),r=\"\".concat(a,\"=\").concat(o);return[].concat(l(n),[r])}),[]).join(\"&\")}var V=function(e){return{biannually:\"BIANNUAL PLAN\",annually:\"ANNUAL PLAN\"}[e]||\"\".concat(e.toUpperCase(),\" PLAN\")},L=function(){try{return window.location&&\"https:\"===window.location.protocol&&window.ApplePaySession&&window.ApplePaySession.supportsVersion(m.applePayVersion)}catch(e){return!1}},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return L()&&e.includes(\"apple_pay\")};function E(e){var n=document.createElement(\"iframe\");return n.setAttribute(\"frameBorder\",\"0\"),n.setAttribute(\"allowtransparency\",\"true\"),n.id=e,n.style.display=\"none\",n}function T(e){return e.querySelector(\"apple-pay-button\")||e.querySelector(\"#apple-pay-button\")}function _(e){return document.querySelector(\"#\".concat(e))}function q(e,n){var a=n.channels,o=void 0===a?[]:a,r=n.styles,i=void 0===r?{}:r,c={applePay:!1};return new Promise((function(n,a){if(e)if(S(o)){if(T(e))return c.applePay=!0,void n(c);(function(e,n){return new Promise((function(t,a){e||a(\"No script url\");var o=document.createElement(\"script\");o.src=e,o.addEventListener(\"load\",(function(){t(!0)})),o.addEventListener(\"error\",(function(){o.remove(),a(!1)})),n?n.appendChild(o):document.head.appendChild(o)}))})(\"https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js\",e).then((function(){if(window&&!Array.isArray(window.webpackJsonp))throw new Error(\"Incorrect data type for 'webpackJsonp', expected array, got \".concat(t(window.webpackJsonp),\". Switching to fallback apple pay button\"));!function(e,n){var t=n.styles,a=n.theme,o=document.createElement(\"style\"),r=function(e){var n=e.height,t=e.width,a=e.borderRadius,o=e.padding;return\"\\n apple-pay-button {\\n --apple-pay-button-width: \".concat(t,\";\\n --apple-pay-button-height: \").concat(n,\";\\n --apple-pay-button-border-radius: \").concat(a,\";\\n --apple-pay-button-padding: \").concat(o,\";\\n --apple-pay-button-box-sizing: border-box;\\n width: \").concat(t,\";\\n }\\n\")}(t);o.type=\"text/css\",o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),e.appendChild(o);var i=document.createElement(\"apple-pay-button\");i.setAttribute(\"buttonstyle\",\"light\"===a?\"white\":\"black\"),i.setAttribute(\"type\",t.type),i.setAttribute(\"locale\",t.locale),e.appendChild(i)}(e,{styles:w(i.applePay),theme:i.theme}),c.applePay=!0,n(c)})).catch((function(){!function(e,n){var t=n.styles,a=n.theme,o=document.createElement(\"style\"),r=function(e){var n=e.height,t=e.width,a=e.borderRadius,o=e.padding,r=e.type,i=e.locale;return\"\\n @supports (-webkit-appearance: -apple-pay-button) { \\n .apple-pay-button {\\n display: inline-block;\\n -webkit-appearance: -apple-pay-button;\\n width: \".concat(t,\";\\n height: \").concat(n,\";\\n border-radius: \").concat(a,\";\\n padding: \").concat(o,\";\\n -apple-pay-button-type: \").concat(r,\";\\n -webkit-locale: \").concat(i,\";\\n }\\n .apple-pay-button-black {\\n -apple-pay-button-style: black;\\n }\\n .apple-pay-button-white {\\n -apple-pay-button-style: white;\\n }\\n .apple-pay-button-white-with-line {\\n -apple-pay-button-style: white-outline;\\n }\\n }\\n\\n @supports not (-webkit-appearance: -apple-pay-button) {\\n .apple-pay-button {\\n display: inline-block;\\n background-size: 100% 60%;\\n background-repeat: no-repeat;\\n background-position: 50% 50%;\\n border-radius: 5px;\\n padding: 0px;\\n box-sizing: border-box;\\n min-width: 200px;\\n min-height: 32px;\\n max-height: 64px;\\n }\\n .apple-pay-button-black {\\n background-image: -webkit-named-image(apple-pay-logo-white);\\n background-color: black;\\n }\\n .apple-pay-button-white {\\n background-image: -webkit-named-image(apple-pay-logo-black);\\n background-color: white;\\n }\\n .apple-pay-button-white-with-line {\\n background-image: -webkit-named-image(apple-pay-logo-black);\\n background-color: white;\\n border: .5px solid black;\\n }\\n }\\n\")}(t);o.type=\"text/css\",o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),e.appendChild(o);var i=document.createElement(\"button\");i.classList.add(\"apple-pay-button\",\"light\"===a?\"apple-pay-button-white\":\"apple-pay-button-black\"),i.id=\"apple-pay-button\";var c=document.createElement(\"span\");c.classList.add(\"logo\"),i.appendChild(c),e.appendChild(i)}(e,{styles:w(i.applePay),theme:i.theme}),c.applePay=!0,n(c)}))}else a(\"No wallet payment method is available on this device\");else a(\"Container to mount elements was not provided\")}))}function A(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function I(e){return e.querySelector(\"#paystackpop-button\")}function z(e){return e.querySelector(\"#payment-request-button\")}function O(e,n){var t=document.querySelector(\"#pre-checkout-modal-\".concat(e));if(t){if(I(t)&&z(t))return t;t.remove()}var a=document.createElement(\"div\");a.classList.add(\"pre-checkout-modal\"),a.id=\"pre-checkout-modal-\".concat(e),a.style.zIndex=Array.from(document.querySelectorAll(\"body *\")).map((function(e){return parseFloat(window.getComputedStyle(e).zIndex)})).filter((function(e){return!Number.isNaN(e)})).sort().pop()+1;var o=document.createElement(\"div\");o.classList.add(\"pre-checkout-modal__content\"),a.appendChild(o);var r=n||{},i=r.merchant_logo,c=r.merchant_name,s=r.email,l=r.amount,p=r.currency,u=document.createElement(\"div\");u.classList.add(\"payment-info\"),u.innerHTML='\"').concat(c,'\\n
\\n
').concat(s,'
\\n
Pay ').concat(p,\" \").concat(l/100,\"
\\n
\"),o.appendChild(u),o.innerHTML+='\\n \\n';var d=document.createElement(\"div\");d.classList.add(\"modal-wrapper\"),d.innerHTML='\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n';var h=document.createElement(\"p\");h.innerHTML=\"Pay with Apple Pay to complete your purchase without filling a form\",d.appendChild(h);var C=document.createElement(\"div\");C.id=\"payment-request-button\",d.appendChild(C);var m=document.createElement(\"button\");m.id=\"paystackpop-button\",m.innerText=\"More payment options\",d.appendChild(m),d.innerHTML=d.innerHTML+b+'\\n\\n\\n\\n',o.appendChild(d);var y=document.createElement(\"style\");return y.textContent='\\n .pre-checkout-modal {\\n display: none;\\n position: fixed;\\n z-index: 1;\\n left: 0;\\n top: 0;\\n width: 100vw;\\n height: 100%;\\n overflow: auto;\\n background-color: rgba(0, 0, 0, 0.75);\\n transition: all 0.2s ease;\\n }\\n\\n .pre-checkout-modal.show {\\n display: block;\\n }\\n\\n .pre-checkout-modal__content {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n background-color: #fefefe;\\n padding: 30px 24px;\\n padding-bottom: max(30px, env(safe-area-inset-bottom));\\n width: 100%;\\n border-radius: 6px 6px 0 0;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n max-width: 450px;\\n\\n box-sizing: border-box;\\n transform: translateY(238px);\\n transition: transform 0.3s cubic-bezier(.16,.81,.32,1);\\n }\\n\\n .modal-wrapper {\\n padding: 0 16px;\\n }\\n\\n .payment-info {\\n position: relative;\\n padding-bottom: 15px;\\n border-bottom: solid 1px whitesmoke;\\n display: flex;\\n align-items: flex-start;\\n justify-content: space-between;\\n width: 100%;\\n }\\n\\n .customer-email {\\n color: #737373;\\n font-size: 13px;\\n line-height: 16px;\\n }\\n\\n .customer-info {\\n flex: 1;\\n text-align: right;\\n }\\n\\n .merchant-logo {\\n display: flex;\\n align-items: center;\\n height: 30px;\\n }\\n .transaction-amount {\\n margin-top: 5px;\\n font-size: 13px;\\n line-height: 16px;\\n color: #737373;\\n }\\n\\n .amount {\\n color: #29b263;\\n font-weight: bold;\\n }\\n\\n @media only screen and (min-width: 500px) {\\n .pre-checkout-modal__content {\\n bottom: 0;\\n top: 0;\\n margin: auto;\\n border-radius: 6px;\\n height: fit-content;\\n }\\n }\\n\\n .pre-checkout-modal__content.show {\\n transform: translateY(0);\\n margin: 0 auto;\\n margin-top: 100px;\\n }\\n\\n .pre-checkout-modal__content > * {\\n margin-top: 0;\\n margin-bottom: 40px;\\n }\\n .pre-checkout-modal__content > *:last-child {\\n margin-bottom: 0;\\n }\\n\\n .pre-checkout-modal__content svg {\\n margin: auto;\\n width: 100%;\\n }\\n\\n #inline-button-wordmark--white {\\n position: absolute;\\n bottom: -50px;\\n margin: auto;\\n right: 0;\\n width: fit-content;\\n }\\n\\n #inline-button-wordmark--grey {\\n display: none;\\n }\\n\\n .pre-checkout-modal__content #apple-pay-mark--light {\\n margin-bottom: 16px;\\n }\\n\\n .pre-checkout-modal p {\\n -webkit-text-size-adjust: 100%;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n text-rendering: optimizeLegibility;\\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\",\\n \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\\n color: #4E4E4E;\\n line-height: 28px;\\n font-size: 14px;\\n font-weight: 500;\\n margin: 0;\\n padding: 0 20px;\\n text-align: center;\\n letter-spacing: -0.3px;\\n }\\n\\n .pre-checkout-modal button {\\n height: 42px;\\n width: 100%;\\n background: linear-gradient(180deg, #40ad57 21.43%, #44b669 88.1%), #44b669;\\n border: 1px solid #49a861;\\n box-sizing: border-box;\\n box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1);\\n border-radius: 5px;\\n text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);\\n color: #ffffff;\\n font-weight: 600;\\n font-size: 14px;\\n line-height: 14px;\\n cursor: pointer;\\n\\n -webkit-text-size-adjust: 100%;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n text-rendering: optimizeLegibility;\\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\",\\n \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\\n }\\n\\n #payment-request-button {\\n width: 100%;\\n height: fit-content;\\n margin: 24px 0 16px 0;\\n }\\n\\n #paystackpop-button {\\n padding: 0 16px;\\n }\\n\\n #apple-pay-close-button {\\n position: absolute;\\n text-align: center;\\n top: 0;\\n right: -26px;\\n height: 16px;\\n width: 16px;\\n padding: 0;\\n display: inline-block;\\n z-index: 3;\\n border-radius: 50%;\\n background: transparent;\\n transition: all 300ms;\\n outline: none;\\n cursor: pointer;\\n border: none;\\n }\\n\\n #apple-pay-close-button svg {\\n width: initial;\\n }\\n \\n #apple-pay-close-button:hover {\\n background-color: #e22b28;\\n }\\n\\n @media only screen and (max-width: 500px) {\\n .pre-checkout-modal__content {\\n max-width: 500px;\\n border-radius: 0;\\n padding-bottom: 0;\\n }\\n\\n .modal-wrapper {\\n padding: 0;\\n }\\n\\n #inline-button-wordmark--white {\\n display: none\\n }\\n \\n #inline-button-wordmark--grey {\\n display: block;\\n width: 100%;\\n margin: 16px 0;\\n height: 13px;\\n }\\n\\n #apple-pay-close-button {\\n display: none;\\n }\\n }\\n',document.body.appendChild(y),document.body.appendChild(a),a}var H=[{value:\"key\",required:!0,types:[\"string\"]},{value:\"amount\",required:!0,or:[\"plan\",\"planCode\"],types:[\"string\",\"number\"]},{value:\"currency\",required:!1,types:[\"string\"]},{value:\"email\",required:!0,or:[\"customerCode\"],types:[\"string\"]},{value:\"label\",required:!1,types:[\"string\"]},{value:\"firstName\",required:!1,types:[\"string\"]},{value:\"lastName\",required:!1,types:[\"string\"]},{value:\"reference\",required:!1,types:[\"string\"]},{value:\"phone\",required:!1,types:[\"string\"]},{value:\"customerCode\",required:!1,override:\"email\",types:[\"string\"]},{value:\"channels\",required:!1,types:[\"array\"]},{value:\"paymentRequest\",required:!1,types:[\"string\",\"number\"]},{value:\"paymentPage\",required:!1,types:[\"string\"]},{value:\"hash\",required:!1,types:[\"string\"]},{value:\"container\",required:!1,types:[\"string\"]},{value:\"metadata\",required:!1,types:[\"object\"]},{value:\"subaccountCode\",required:!1,types:[\"string\"]},{value:\"bearer\",required:!1,types:[\"string\"]},{value:\"transactionCharge\",required:!1,types:[\"string\",\"number\"]},{value:\"planCode\",required:!1,override:\"amount\",types:[\"string\"]},{value:\"subscriptionCount\",required:!1,types:[\"number\"]},{value:\"planInterval\",required:!1,types:[\"string\"]},{value:\"subscriptionLimit\",required:!1,types:[\"number\"]},{value:\"subscriptionStartDate\",required:!1,types:[\"string\"]},{value:\"accessCode\",required:!1,types:[\"string\"]},{value:\"onError\",required:!1,types:[\"function\"]},{value:\"onLoad\",required:!1,types:[\"function\"]},{value:\"onSuccess\",required:!1,types:[\"function\"]},{value:\"onCancel\",required:!1,types:[\"function\"]},{value:\"callback\",required:!1,types:[\"function\"]},{value:\"onClose\",required:!1,types:[\"function\"]},{value:\"onBankTransferConfirmationPending\",required:!1,types:[\"function\"]},{value:\"firstname\",required:!1,types:[\"string\"]},{value:\"lastname\",required:!1,types:[\"string\"]},{value:\"customer_code\",required:!1,types:[\"string\"]},{value:\"payment_request\",required:!1,types:[\"string\",\"number\"]},{value:\"subaccount\",required:!1,types:[\"string\"]},{value:\"transaction_charge\",required:!1,types:[\"number\",\"string\"]},{value:\"plan\",required:!1,types:[\"string\"]},{value:\"quantity\",required:!1,types:[\"number\"]},{value:\"interval\",required:!1,types:[\"string\"]},{value:\"invoice_limit\",required:!1,types:[\"number\",\"string\"]},{value:\"start_date\",required:!1,types:[\"string\"]},{value:\"payment_page\",required:!1,types:[\"number\",\"string\"]},{value:\"order_id\",required:!1,types:[\"number\"]},{value:\"ref\",required:!1,types:[\"string\"]},{value:\"card\",required:!1,types:[\"string\"]},{value:\"bank\",required:!1,types:[\"string\"]},{value:\"split\",required:!1,types:[\"object\"]},{value:\"split_code\",required:!1,types:[\"string\"]},{value:\"transaction_type\",required:!1,types:[\"string\"]},{value:\"subscription\",required:!1,types:[\"number\"]}];function j(e){var t,a=n({},e);a.metadata=e.metadata||{},a.metadata.referrer=(t=window.location.href)&&t.length>500?t.split(\"?\")[0]:t,a.metadata=JSON.stringify(a.metadata),a.mode=\"popup\",e.split&&\"string\"!=typeof e.split&&(a.split=JSON.stringify(a.split));return void 0!==a.card&&[\"false\",!1].indexOf(a.card)>-1&&(a.channels=[\"bank\"],delete a.card),void 0!==a.bank&&[\"false\",!1].indexOf(a.bank)>-1&&(a.channels=[\"card\"],delete a.bank),[{to:\"firstname\",from:\"firstName\"},{to:\"lastname\",from:\"lastName\"},{to:\"customer_code\",from:\"customerCode\"},{to:\"payment_request\",from:\"paymentRequest\"},{to:\"subaccount\",from:\"subaccountCode\"},{to:\"transaction_charge\",from:\"transactionCharge\"},{to:\"plan\",from:\"planCode\"},{to:\"quantity\",from:\"subscriptionCount\"},{to:\"interval\",from:\"planInterval\"},{to:\"invoice_limit\",from:\"subscriptionLimit\"},{to:\"start_date\",from:\"subscriptionStartDate\"},{to:\"ref\",from:\"reference\"}].forEach((function(e){a[e.from]&&(a[e.to]=a[e.from],delete a[e.from])})),Object.values(e).forEach((function(n,t){if(\"function\"==typeof n){var o=Object.keys(e)[t];delete a[o]}})),a}var U=[\"iPad Simulator\",\"iPhone Simulator\",\"iPod Simulator\",\"iPad\",\"iPhone\",\"iPod\"],N=window&&window.navigator&&(window.navigator.platform||window.navigator.userAgentData&&window.navigator.userAgentData.platform),R=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.platform,t=e.userAgent,a=void 0===t?window&&window.navigator&&window.navigator.userAgent:t,o=n||N;return U.includes(o)||a.includes(\"Mac\")&&\"ontouchend\"in document},B=function(e,n,t){var a=\"\".concat(m.paystackApiUrl,\"transaction/update_log/\").concat(e),o={Authorization:\"Bearer \".concat(n)};return fetch(a,{method:\"POST\",body:JSON.stringify({payload:JSON.stringify(t)}),headers:o})},Z=function(e,n){var t=\"\".concat(m.paystackApiUrl,\"transaction/set_ip/\").concat(e),a={Authorization:\"Bearer \".concat(n)};return fetch(t,{method:\"POST\",headers:a})},D={initializeLog:function(e){var n=e||{},t=n.attempts,a=n.authentication,o=n.errors,r=n.history;this.log={start_time:Math.round(Date.now()/1e3),time_spent:0,attempts:t||0,authentication:a,errors:o||0,success:!1,mobile:R(),input:[],history:r||[]}},getTimeSpent:function(){var e=Math.round(Date.now()/1e3);return this.log.time_spent=e-this.log.start_time,this.log.time_spent},logAPIResponse:function(e,n){switch(e.status){case\"success\":return this.logApiSuccess(n);case\"failed\":return this.logApiError(e.message);default:return!1}},logValidationResponse:function(e){return this.log.history.push({type:\"action\",message:e,time:this.getTimeSpent()}),this.saveLog()},logAttempt:function(e){var n=\"Attempted to pay\";return e&&(n+=\" with \".concat(e)),this.log.attempts+=1,this.log.history.push({type:\"action\",message:n,time:this.getTimeSpent()}),this.saveLog()},logApiError:function(e){var n=\"Error\";return e&&(n+=\": \".concat(e)),this.log.errors+=1,this.log.history.push({type:\"error\",message:n,time:this.getTimeSpent()}),this.saveLog()},logApiSuccess:function(e){var n=\"Successfully paid\";return e&&(n+=\" with \".concat(e)),this.log.success=!0,this.log.history.push({type:\"success\",message:n,time:this.getTimeSpent()}),this.saveLog()},saveLog:function(){try{if(this.response)return B(this.id,this.response.merchant_key,this.log)}catch(e){}},saveIpAddress:function(){try{if(this.response)return Z(this.id,this.response.merchant_key)}catch(e){}}},F={requestInline:function(){var e=this;return(this.accessCode?fetch(new URL(\"transaction/verify_access_code/\".concat(this.accessCode),m.paystackApiUrl).toString(),{headers:{\"Content-Type\":\"application/json\"}}):fetch(new URL(\"/checkout/request_inline\",m.paystackApiUrl).toString(),{method:\"POST\",body:JSON.stringify(this.urlParameters),headers:{\"Content-Type\":\"application/json\"}})).then((function(e){return e.json()})).then((function(n){if(!1===n.status)throw new Error(n.message);return e.response=n.data,e.id=n.data.id,e.status=n.data.transaction_status,e.accessCode=n.data.access_code,e.log=null,Object.assign(e,D),e.initializeLog(n.data.log),e.saveIpAddress(),n.data}))}},W=function(){function e(n){a(this,e),function(e){function n(e,n){this.message=e,this.issues=n||[]}if(!e||\"object\"!==t(e))throw new n(\"Transaction parameters should be a non-empty object\");var a=e;if(\"accessCode\"in a)return{accessCode:a.accessCode};Object.keys(a).forEach((function(e){void 0!==H.find((function(n){return n.value===e}))||delete a[e]}));var o=Object.keys(a),r=[];if(H.filter((function(e){return e.required})).forEach((function(e){var n=!a[e.value],t=e.or?e.or.some((function(e){return a[e]})):null;n&&!t&&r.push({message:\"Required parameter missing: \".concat(e.value)})})),o.forEach((function(e){var n=a[e],o=H.find((function(n){return n.value===e})),i=t(n);\"object\"===i&&Array.isArray(n)&&(i=\"array\"),o.types.indexOf(i)<=-1&&r.push({message:\"Invalid parameter type: \".concat(e),validTypes:o.types})})),o.forEach((function(e){var n=H.find((function(n){return n.value===e}));n.override&&delete a[n.override]})),r.length)throw new n(\"Invalid transaction parameters\",r)}(n),this.parameters=n,this.urlParameters=j(n),this.id=null,this.status=null,this.accessCode=null,this.authorizationUrl=null,this.errors=[],this.response=null,this.isActive=!0;var o=n.onError,r=n.onLoad,i=n.onSuccess,c=n.onCancel,s=n.callback,l=n.onClose,p=n.onBankTransferConfirmationPending;this.callbacks={onError:o,onLoad:r,onSuccess:i,onCancel:c,onBankTransferConfirmationPending:p},this.deprecatedCallbacks={callback:s,onClose:l},Object.assign(this,F)}return r(e,[{key:\"onSetupError\",value:function(e){this.logError(e),this.callbacks.onError&&this.callbacks.onError(e)}},{key:\"onLoad\",value:function(e){var n=e.id,t=e.customer,a=e.accessCode;Object.assign(this,{id:n,customer:t,accessCode:a}),this.authorizationUrl=\"\".concat(m.checkoutUrl).concat(a),this.callbacks.onLoad&&this.callbacks.onLoad({id:n,customer:t,accessCode:a})}},{key:\"onSuccess\",value:function(e){this.isActive=!1,this.response=e,this.status=e.status,this.callbacks.onSuccess&&this.callbacks.onSuccess(e),this.deprecatedCallbacks.callback&&this.deprecatedCallbacks.callback(e)}},{key:\"setStatus\",value:function(e){this.status=e}},{key:\"onCancel\",value:function(){this.callbacks.onCancel&&this.callbacks.onCancel(),this.deprecatedCallbacks.onClose&&this.deprecatedCallbacks.onClose()}},{key:\"cancel\",value:function(){this.isActive=!1,this.onCancel()}},{key:\"onBankTransferConfirmationPending\",value:function(){this.cancel(),this.callbacks.onBankTransferConfirmationPending&&this.callbacks.onBankTransferConfirmationPending()}},{key:\"logError\",value:function(e){this.errors.push(e)}}]),e}(),J=console?console.warn||console.log:function(){};function K(e,n,t){J('\"'.concat(e,'\" has been deprecated, please use \"').concat(n,'\". ').concat(t||\"\"))}var Q,G=[\"preload\",\"inlineTransaction\"],Y=[\"container\",\"styles\",\"onElementsMount\"];function X(e,n){if(!e.length)return null;var t=e.filter((function(e){var t,a,o,r,i=!e.status||\"abandoned\"===e.status,c=(t=e.parameters,a=n,o=Object.keys(t).sort().join(\"\")===Object.keys(a).sort().join(\"\"),r=Object.values(t).sort().join(\"\")===Object.values(a).sort().join(\"\"),o&&r);return i&&c}));return t.length?t[t.length-1]:null}function $(e){var n=e.checkoutIframe,t=e.urlParameters;n&&t&&n.contentWindow.postMessage({type:\"inline:url\",path:\"newTransaction\",params:t},\"*\")}var ee=\"trackCheckoutClosed\",ne=\"trackPaymentError\",te=\"trackPaymentAttempt\",ae=\"trackPaymentCompletion\";function oe(e){throw J(e),new Error(e)}var re,ie,ce=function(){function e(n){var t,o;a(this,e),this.id=function(){for(var e=\"\",n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",t=0;t<5;t+=1)e+=n.charAt(Math.floor(Math.random()*n.length));return e}(),this.transactions=[],this.isOpen=!1,this.isLoaded=!1,this.isDeprecatedApi=n&&n.isDeprecatedApi,n&&n.isEmbed?this.isEmbed=!0:n&&n.isPaymentRequest&&(n.container&&_(n.container)||oe(\"A container is required to mount the payment request button\"),this.paymentRequestContainer=_(n.container),this.paymentRequestTransaction=null),this.preCheckoutModal=null,this.backgroundIframe=function(e){var n=E(\"inline-background-\".concat(e));n.style.cssText=\"\\n z-index: 999999999999999;\\n background: transparent;\\n background: rgba(0, 0, 0, 0.75); \\n border: 0px none transparent;\\n overflow-x: hidden;\\n overflow-y: hidden;\\n margin: 0;\\n padding: 0;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-touch-callout: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n transition: opacity 0.3s;\\n -webkit-transition: opacity 0.3s;\\n visibility: hidden;\\n display: none;\\n\",document.body.appendChild(n);var t=n.contentWindow.document;return t.open(),t.write('\\n \\n \\n\\n \\n \\n \\n \\n Paystack Popup Loader\\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n'),t.close(),n}(this.id),this.checkoutIframe=(t=this.id,(o=E(\"inline-checkout-\".concat(t))).src=\"\".concat(m.checkoutUrl,\"popup\"),o.style.cssText=\"\\n z-index: 999999999999999;\\n background: transparent;\\n border: 0px none transparent;\\n overflow-x: hidden;\\n overflow-y: hidden;\\n margin: 0;\\n padding: 0;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-touch-callout: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n visibility: hidden;\\n display: none;\\n height: 100%;\\n\",o.setAttribute(\"allowpaymentrequest\",\"true\"),document.body.appendChild(o),o),this.registerListeners()}return r(e,[{key:\"registerListeners\",value:function(){var e=this;window.addEventListener(\"message\",(function(n){var t=\"\".concat(n.origin,\"/\")===m.checkoutUrl,a=e.checkoutIframe&&e.checkoutIframe.contentWindow===n.source,o=e.isEmbed;t||a?e.respondToEvent(n):o&&e.respondToEmbedEvents(n)}))}},{key:\"sendAnalyticsEventToCheckout\",value:function(e,n){this.checkoutIframe.contentWindow.postMessage({type:\"analytics\",action:e,params:n},\"*\")}},{key:\"checkout\",value:function(e){if(!L()||!function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.platform,t=e.userAgent,a=void 0===t?window&&window.navigator&&window.navigator.userAgent:t,o=n||N,r=a&&!!a.match(/Version\\/[\\d.]+.*Safari/),i=o&&/(Mac)/i.test(o);return R()||i&&r}())return Promise.resolve(this.newTransaction(e));this.activeTransaction()&&this.activeTransaction().cancel(),Q=this;var n=X(this.transactions,e)||new W(e);return new Promise((function(e,t){n.requestInline().then((function(t){t.channels.includes(\"apple_pay\")?(Q.preloadTransaction({inlineTransaction:n}),Q.preCheckoutModal=O(Q.id,t),Q.paymentRequestContainer=z(Q.preCheckoutModal),q(Q.paymentRequestContainer,{channels:t.channels,styles:{applePay:{width:\"100%\",type:\"pay\",height:\"42px\",padding:\"15px\",borderRadius:\"5px\"}}}).then((function(){var t;Q.registerPreCheckoutModalEventListeners(),Q.registerPaymentRequestEventListeners(),t=Q.preCheckoutModal,new Promise((function(e,n){try{var a=t.querySelector(\".pre-checkout-modal__content\");t.classList.add(\"show\"),setTimeout((function(){a.classList.add(\"show\"),e(!0)}),50)}catch(e){n(e)}})),e(n)})).catch((function(){Q.closePreCheckoutModal(),Q.animateCheckoutIn(),e(n)}))):(Q.newTransaction({inlineTransaction:n}),e(n))})).catch((function(e){n.onSetupError({status:!1,message:e.message}),t(e)}))}))}},{key:\"registerPreCheckoutModalEventListeners\",value:function(){var e,n=this,t=!1,a=this.activeTransaction();document.addEventListener(\"touchstart\",(function(n){n.preventDefault(),t||(t=!0,e=setTimeout((function(){t=!1}),125))}),!0),document.addEventListener(\"touchend\",(function(n){n.target&&n.target.isSameNode(Q.preCheckoutModal)&&t&&(clearTimeout(e),Q.closePreCheckoutModal(),a&&a.cancel()),t=!1}),!0),I(this.preCheckoutModal).onclick=function(){n.closePreCheckoutModal(),n.animateCheckoutIn()},this.preCheckoutModal.querySelector(\"#apple-pay-close-button\").onclick=function(){n.sendAnalyticsEventToCheckout(ee),n.closePreCheckoutModalAndCancelTransaction()}}},{key:\"closePreCheckoutModal\",value:function(){var e;this.preCheckoutModal&&((e=this.preCheckoutModal)&&(e.querySelector(\".pre-checkout-modal__content\").classList.remove(\"show\"),e.classList.remove(\"show\")),this.preCheckoutModal.remove(),this.preCheckoutModal=null)}},{key:\"closePreCheckoutModalAndCancelTransaction\",value:function(){this.preCheckoutModal&&(this.cancelTransaction(),this.checkoutIframe&&this.checkoutIframe.contentWindow&&this.checkoutIframe.contentWindow.postMessage(\"close\",\"*\"),this.closePreCheckoutModal())}},{key:\"newTransaction\",value:function(e){var n,t=e.preload,a=e.inlineTransaction,o=c(e,G),r=this.paymentRequestContainer&&T(this.paymentRequestContainer);this.activeTransaction()&&!r&&this.activeTransaction().cancel();var i=X(this.transactions,a?a.parameters:o),s=i||a||new W(o);return i?(s.isActive=!0,n={accessCode:s.accessCode}):(n=s.accessCode?{accessCode:s.accessCode}:s.urlParameters,this.transactions.push(s)),this.isDeprecatedApi||this.open(n,t),s}},{key:\"preloadTransaction\",value:function(e){var t=this;this.newTransaction(n(n({},e),{},{preload:!0}));return function(){return t.animateCheckoutIn()}}},{key:\"paymentRequest\",value:function(e){var n=e.container,t=e.styles,a=e.onElementsMount,o=c(e,Y);return Q=this,new Promise((function(r,i){var c=document.querySelector(\"#\".concat(e.loadPaystackCheckoutButton));if(L()){Q.activeTransaction()&&Q.activeTransaction().cancel(),n&&_(n)||oe(\"A container is required to mount the payment request button\"),Q.paymentRequestContainer=_(n);var s=X(Q.transactions,o),l=s||new W(o);l.requestInline().then((function(e){q(Q.paymentRequestContainer,{channels:e.channels,styles:t}).then((function(e){a&&a(e)})).catch((function(){a&&a(null)})).finally((function(){if(s?l.isActive=!0:Q.transactions.push(l),Q.registerPaymentRequestEventListeners(),c){var e=Q.preloadTransaction({inlineTransaction:l});c.onclick=e}r(l)}))})).catch((function(e){l.onSetupError({status:!1,message:e.message}),i(e)}))}else{if(e&&e.loadPaystackCheckoutButton)if(c){var p=Q.preloadTransaction(o);c.onclick=p}else J(\"This device does not support any payment request wallet options. Please consult our documentation at https://developers.paystack.co/docs/paystack-inline to see how to load alternative payment options using 'loadPaystackCheckoutButton'\");a&&a(null);var u=Q.activeTransaction();r(u)}}))}},{key:\"registerApplePayEventListener\",value:function(){var e=this;T(this.paymentRequestContainer).onclick=function(){return e.startApplePay()}}},{key:\"registerPaymentRequestEventListeners\",value:function(){var e=this.activeTransaction();e&&S(e.response.channels)?this.registerApplePayEventListener():A(this.paymentRequestContainer)}},{key:\"startApplePay\",value:function(){var e,t,a,o,r,i=this,c=\"apple pay\",s=this.activeTransaction();if(s){var l={channel:\"apple_pay\",paymentMethod:c,currency:s.currency,amount:s.amount},p={channel:\"apple_pay\",currency:s.currency,amount:s.amount,timeSpent:s.getTimeSpent()};try{s.logAttempt(c),this.sendAnalyticsEventToCheckout(te,l);var u=(e={currency:s.response.currency,amount:s.response.amount,merchantName:s.response.merchant_name,interval:s.response.plan_details&&s.response.plan_details.interval},t=e.currency,a=e.amount,o=e.merchantName,r=e.interval,n({countryCode:\"NG\",currencyCode:t,merchantCapabilities:[\"supports3DS\",\"supportsCredit\",\"supportsDebit\"],supportedNetworks:[\"visa\",\"masterCard\"],requiredBillingContactFields:[\"postalAddress\",\"name\",\"phone\",\"email\"],total:{label:\"\".concat(o,\" - Paystack\"),type:\"final\",amount:String(x(a))}},\"string\"==typeof r&&\"\"!==r.trim()&&{lineItems:[{label:V(r),amount:String(x(a))}]})),d=new window.ApplePaySession(m.applePayVersion,u);d.onvalidatemerchant=function(e){var t=function(e){var t=e.transactionId,a=e.validationURL,o=e.merchantName,r=e.domainName,i=void 0===r?window&&window.location&&window.location.hostname:r,c=\"\".concat(m.paymentBaseUrl).concat(m.applePayValidateSessionPath),s=P({transaction:t,sessionUrl:a,displayName:o,domainName:i});return fetch(c,n(n({},M),{},{body:s})).then((function(e){return e.json()}))}({validationURL:e.validationURL,transactionId:s.id,merchantName:s.response.merchant_name});t.then((function(e){\"success\"!==e.status?s.onSetupError(e):d.completeMerchantValidation(e.data),s.logValidationResponse(e.message)})).catch((function(e){s.onSetupError(e)}))},d.oncancel=function(){Q.preCheckoutModal||s.onCancel()},d.onpaymentauthorized=function(e){var t=e.payment,a=function(e){var t=e.transactionId,a=e.payment,o=\"\".concat(m.paymentBaseUrl).concat(m.applePayChargePath),r=P({transaction:t,paymentObject:JSON.stringify(a)});return fetch(o,n(n({},M),{},{body:r})).then((function(e){return e.json()}))}({transactionId:s.id,payment:t});a.then((function(e){s.logAPIResponse(e,c),\"success\"===e.status?(d.completePayment(d.STATUS_SUCCESS),s.onSuccess(e),i.sendAnalyticsEventToCheckout(ae,p)):(d.completePayment(d.STATUS_FAILURE),s.onSetupError(e),i.sendAnalyticsEventToCheckout(ne,{channel:\"apple_pay\",message:e&&e.message||\"Transaction attempt failed\"})),Q.closePreCheckoutModal()})).catch((function(e){d.completePayment(d.STATUS_FAILURE),s.onSetupError(e),i.sendAnalyticsEventToCheckout(ne,{channel:\"apple_pay\",message:e&&e.message||\"Error occurred\"}),Q.closePreCheckoutModal()}))},d.begin()}catch(e){s.onSetupError(e)}}else oe(\"Could not initiate apple pay transaction\")}},{key:\"resumeTransaction\",value:function(e){return this.newTransaction({accessCode:e})}},{key:\"activeTransaction\",value:function(){var e=this.transactions.filter((function(e){return e.isActive})),n=e.length?e[e.length-1]:null;return n}},{key:\"cancelTransaction\",value:function(e){var n=this.transactions.find((function(n){return n.id===e}))||this.activeTransaction();n&&(n.cancel(),this.close())}},{key:\"respondToEvent\",value:function(e){if(e){var n,t,a=this.activeTransaction();try{var o=e.data||e.message,r=o.event,i=o.data;if(r)switch(r){case\"loaded:checkout\":if(this.isLoaded=!0,a)$({checkoutIframe:this.checkoutIframe,urlParameters:a.urlParameters});break;case\"loaded:transaction\":n=this.backgroundIframe,(t=n.contentWindow.document)&&(t.getElementById(\"app-loader\").style.display=\"none\"),a.onLoad(i);break;case\"error\":\"setup\"===i.type?a.onSetupError(i):a.logError(i);break;case\"cancel\":case\"close\":this.close();var c=i&&i.status;c&&a.setStatus(c),!(this.paymentRequestContainer&&T(this.paymentRequestContainer)&&!this.preCheckoutModal)&&(a.isActive=!1),a.onCancel();break;case\"transfer:pending\":this.close();var s=i&&i.status;s&&a.setStatus(s),a.onBankTransferConfirmationPending();break;case\"success\":this.close(),a.onSuccess(i)}}catch(e){}}}},{key:\"respondToEmbedEvents\",value:function(e){var n,t,a=this.activeTransaction(),o=e.data||e.message;if(o&&(\"string\"==typeof o||o instanceof String)){var r={action:t=(n=o)&&\"string\"==typeof n?n.split(\" \")[0]:null,data:t?n.split(\" \").slice(2).join(\" \"):null};if(r&&\"PaystackClose\"===r.action)r.data&&a.onSuccess(o);\"PaystackTLSClose\"===r.action&&a.cancel()}}},{key:\"animateCheckoutIn\",value:function(){var e,n=this;if(!this.isOpen){var t=this.checkoutIframe,a=this.backgroundIframe;(e={checkoutIframe:t,backgroundIframe:a},new Promise((function(n,t){e||t(\"No dom element provided\");var a=e.checkoutIframe,o=e.backgroundIframe;a&&o||t(\"No dom element provided\"),a.style.display=\"\",a.style.visibility=\"visible\",o.style.display=\"\",o.style.visibility=\"visible\",n()}))).then((function(){n.checkoutIframe.contentWindow.postMessage(\"render\",\"*\")})),this.isOpen=!0}}},{key:\"open\",value:function(e,n){e&&($({checkoutIframe:this.checkoutIframe,urlParameters:e}),n||this.animateCheckoutIn())}},{key:\"close\",value:function(){var e=this;if(this.isOpen){var n,t=this.checkoutIframe,a=this.backgroundIframe;(n={checkoutIframe:t,backgroundIframe:a},new Promise((function(e,t){n||t(\"No dom element provided\");var a=n.checkoutIframe,o=n.backgroundIframe;a&&o||t(\"No dom element provided\"),o.style.opacity=0,a.style.display=\"none\",a.style.visibility=\"hidden\",setTimeout((function(){o.style.display=\"none\",o.style.visibility=\"hidden\",o.style.opacity=1,e()}),300)}))).then((function(){e.checkoutIframe.contentWindow.postMessage(\"close\",\"*\")})),this.isOpen=!1}}},{key:\"isLoaded\",value:function(){return this.isLoaded}}],[{key:\"setup\",value:function(n){var t=n&&n.container;Q||(Q=new e({isDeprecatedApi:!0,isEmbed:t})),K(\"PaystackPop.setup()\",\"new PaystackPop()\",\"Please consult our documentation at https://developers.paystack.co/docs/paystack-inline\");var a=Q.newTransaction(n,\"deprecated\"),o=a.urlParameters;if(t){var r=\"\".concat(m.siteUrl,\"/assets/payment/production/inline.html?\").concat(y(o)),i=function(e,n){var t=E(\"embed-checkout-\".concat(e));return t.style.cssText=\"\\n background: transparent;\\n background: rgba(0,0,0,0);\\n border: 0px none transparent;\\n overflow-x: hidden;\\n overflow-y: hidden;\\n nmargin: 0;\\n padding: 0;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-touch-callout: none;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n visibility: hidden;\\n display: none;\\n\",t.src=n,t.id=e,t.name=e,t}(Q.id,r);!function(e,n){var t=document.getElementById(e);t.innerHTML=\"\",t.removeAttribute(\"style\"),t.className=\"paystack-embed-container\",t.style.position=\"relative\",t.style.width=\"100%\",t.appendChild(n)}(n.container,i),i.onload=function(){var e;i.contentWindow.postMessage(\"PaystackOpen \".concat(Q.id),\"*\"),e=i,new Promise((function(n,t){e||t(\"No dom element provided\"),e.style.display=\"\",e.style.visibility=\"visible\",n()}))}}else a.openIframe=function(){K(\"openIframe\",\"open\",\"Please consult our documentation at https://developers.paystack.co/docs/paystack-inline\"),Q.open(o)};return a}}]),e}();if(re=g().length>0,ie=f()&&\"FORM\"===f().parentElement.tagName,re&&ie){var se,le=function(){var e={},t=f();return g().forEach((function(n){var a=t.getAttribute(n),o=n.split(\"data-\")[1].replace(/-([a-z])/g,(function(e){return e[1].toUpperCase()}));e[o]=a})),function(e){if(e.buttonId&&!document.getElementById(e.buttonId))throw new Error(\"Please make sure the buttonId is an element available in the DOM\");var t=n({},e);t.buttonText=e.buttonText||\"Pay\",t.buttonVariant=\"normal\",t.buttonWordmarkVariant=\"normal\";var a=[\"normal\",\"light\"];return e.buttonVariant&&a.indexOf(e.buttonVariant)>-1&&(t.buttonVariant=e.buttonVariant),e.buttonWordmarkVariant&&a.indexOf(e.buttonWordmarkVariant)>-1&&(t.buttonWordmarkVariant=e.buttonWordmarkVariant),t}(e)}(),pe=f().parentElement;Q||(Q=new ce),function(e){var n;if(e.id)(n=document.getElementById(e.id)).setAttribute(\"data-inline-id\",e.id);else{var t=document.createElement(\"div\");t.id=\"inline-button-\".concat(e.inlineId),t.innerHTML=function(e){var n,t,a={normal:'\\n \\n \\n ',light:b};return\"\\n \\n \\n
\\n ').concat(a[e.wordmarkVariant||\"normal\"],\"\\n
\\n \")}(e),e.parent.parentNode.insertBefore(t,e.parent.nextSibling),n=s(t.getElementsByTagName(\"button\"),1)[0]}return n}({inlineId:Q.id,amount:le.amount/100,currency:le.currency,id:le.buttonId,text:le.buttonText,variant:le.buttonVariant,wordmarkVariant:le.buttonWordmarkVariant,parent:f()}).addEventListener(\"click\",(function(e){e.preventDefault(),se?Q.resumeTransaction(se.accessCode):se=Q.newTransaction(n(n({},le),{},{onSuccess:function(e){var n,t,a,o,r,i;n={type:\"hidden\",name:\"reference\",value:e.reference,parent:pe},t=n.type,a=n.value,o=n.name,r=n.parent,(i=document.createElement(\"input\")).type=t,i.value=a,i.name=o,r.appendChild(i),pe.submit()}}))}))}export{ce as default};\n","import {AbstractPage} from \"../AbstractPage\";\nimport {JqueryApp} from \"../JqueryApp\";\n\nexport class AbstractGateway extends AbstractPage {\n constructor(app: JqueryApp) {\n super(app);\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected sendSizeFrameMessage(height: number) {\n if (window.parent === window.self)\n return;\n let targetOrigin = \"*\"; // send to all windows as we likely navigated in the frame\n window.parent.postMessage({\n 'func': 'onVpayFrameSize',\n 'data': {height: height},\n }, targetOrigin);\n }\n}\n","import PaystackPop from '@paystack/inline-js';\nimport {JqueryApp} from \"../JqueryApp\";\nimport {Payment, isSuccess} from \"../structs/Payment\";\nimport {logger} from \"../utils/Log\";\nimport {AbstractGateway} from \"./AbstractGateway\";\n\nexport class GatewaySa extends AbstractGateway { // PayStack\n protected static readonly FRAME_SIZE = 1050;\n\n protected ps: PaystackPop = null;\n protected transaction: any = null;\n protected checkPaymentStatusTimer: number = 0;\n protected paymentCheckStatusCount: number = 0;\n\n constructor(app: JqueryApp) {\n super(app);\n }\n\n public connectForm() {\n const paymentForm = document.getElementById('paymentForm');\n //paymentForm.addEventListener(\"submit\", payWithPaystack, false);\n //this.app.$(paymentForm).submit();\n if (this.app.$(paymentForm).length === 0)\n return;\n\n this.sendPayment();\n this.sendSizeFrameMessage(GatewaySa.FRAME_SIZE);\n this.app.$(paymentForm).on(\"submit\", (e) => {\n this.sendPayment(e);\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected sendPayment(e?: any) {\n if (e)\n e.preventDefault();\n\n const config = this.app.getConfig();\n if (!config.gateway || !config.gateway.key) {\n window.alert(this.app.getTr().get(\"gatewayConfigError\"));\n return;\n }\n\n this.ps = new PaystackPop();\n const tx = this.ps.newTransaction({\n key: config.gateway.key,\n email: config.payment.email,\n amount: config.payment.amountGateway * 100,\n currency: 'ZAR', // NGN, GHS, ZAR or USD // config.payment.gatewayCurrency,\n ref: config.payment.token + \"-\" + config.payment.merchantId, // twice number\n channels: ['card'], // ['card', 'bank', 'ussd', 'qr', 'mobile_money', 'bank_transfer']\n //channels: 'card', // invalid\n //metadata: {},\n label: config.payment.descGateway, // replaces customer email on checkout form\n\n //first_name: \"Daniel\", // not stored\n //last_name: \"King\",\n //phone: \"\",\n\n onLoad: (transaction) => {\n // not firing\n },\n onError: (error) => {\n console.log(\"PAY ERROR\", error)\n },\n onSuccess: (transaction) => {\n // transaction.reference\n console.log(\"PAID\", transaction);\n this.transaction = transaction;\n this.checkPaymentStatus(config.payment);\n },\n onCancel: () => {\n // user closed popup\n console.log(\"customer cancelled payment\") // TODO notify cancel or just let it expire/try again?\n this.app.$(\"#confirm-purchase-gateway\").fadeIn(\"slow\");\n },\n onBankTransferConfirmationPending: () => {\n\n }\n });\n if (tx && tx.parameters) {\n this.removeGrayOverlay();\n if (isSuccess(config.payment)) {\n logger.info(\"Skipping payment updates for payment status %s\", config.payment.status);\n return;\n }\n setTimeout(() => { // delay to ensure server knows reference\n this.pingPayment(config.payment, tx.parameters.ref);\n },\n 3000);\n this.transaction = tx;\n setTimeout(() => {\n this.scheduleCheckPayment();\n }\n , 9*1000); // higher initial delay\n }\n }\n\n /**\n * Notify the server that a payment has been initiated.\n * @param payment\n * @param reference\n * @protected\n */\n protected pingPayment(payment: Payment, reference: string) {\n const config = this.app.getConfig();\n const fullToken = payment.token + \"-\" + payment.merchantId;\n const url = config.apiBase + config.pathUpdatePayment + \"/\" + fullToken;\n const data = {\n ref: reference,\n };\n this.webHelpers.getApi(url, data, (data) => {\n //console.log(\"PAYMENT PINGED\", data);\n if (!data || data.error) {\n console.error(\"Error during payment refresh\", data);\n return;\n }\n });\n }\n\n /**\n * Confirm if a payment has been made with the server.\n * @param payment\n * @param transaction\n * @protected\n */\n protected checkPaymentStatus(payment: Payment) {\n clearTimeout(this.checkPaymentStatusTimer);\n this.checkPaymentStatusTimer = 0;\n if (this.paymentCheckStatusCount > this.app.getConfig().maxCheckStatusCount) {\n console.error(\"Reached max check status count %d\", this.paymentCheckStatusCount);\n return;\n }\n\n const config = this.app.getConfig();\n const fullToken = payment.token + \"-\" + payment.merchantId;\n const url = config.apiBase + config.pathPayRefresh + \"/\" + fullToken;\n const data = {\n //ref: this.transaction.reference, // not set when opening the page\n ref: fullToken,\n };\n this.webHelpers.getApi(url, data, (data) => {\n //console.log(\"PAYMENT REFRESHED\", data);\n this.scheduleCheckPayment();\n this.paymentCheckStatusCount++;\n if (!data || data.error) {\n console.error(\"Error during payment refresh\", data);\n return;\n }\n\n if (data.payment.status === \"PAID\" || data.payment.status === \"DECLINED\") {\n const urlStr = config.pathPayDone + \"/\" + fullToken + window.document.location.search;\n clearTimeout(this.checkPaymentStatusTimer);\n window.location.assign(urlStr);\n }\n }).fail((err) => {\n console.error(\"Error during payment refresh\", err);\n this.scheduleCheckPayment();\n });\n }\n\n protected scheduleCheckPayment() {\n clearTimeout(this.checkPaymentStatusTimer);\n this.checkPaymentStatusTimer = window.setTimeout(() => {\n this.checkPaymentStatus(this.app.getConfig().payment);\n }, this.app.getConfig().checkStatusIntervalSec * 1000);\n }\n\n protected removeGrayOverlay() {\n this.app.$(\"body iframe\").each((i, el) => {\n const $el = this.app.$(el);\n if ($el.attr(\"src\") === undefined && $el.attr(\"allowtransparency\") !== undefined) {\n $el.remove();\n }\n const popup = $('iframe[src=\"https://checkout.paystack.com/popup\"]').detach();\n this.app.$('#paymentForm').append(popup);\n popup.css('display', 'block');\n popup.css('position', 'inherit');\n popup.css('width', '100%');\n popup.css('height', '100%');\n //popup.css('min-height', '630px');\n popup.addClass(\"scrollablePayFrame\");\n popup.css('margin-bottom', '20px');\n\n this.app.$(\"#confirm-purchase-gateway\").css(\"display\", \"none\");\n });\n }\n}\n","import {PaymentStatus} from \"./PaymentResponse\";\n\nexport interface PaymentChargeResponse {\n error: string; // possibly localized\n errorUser: string; // possibly localized\n\n payment?: Payment;\n existing: boolean;\n}\n\nexport interface Payment {\n timeTotalSec: number;\n timeRemainingSec: number;\n token: string;\n merchantId: number;\n amountFiat: number;\n status: PaymentStatus;\n email: string;\n // paidAmountCrypto: number;\n // remainingAmountCrypto: number;\n fiatCurrency: string;\n amountGateway: number;\n gatewayCurrency: string;\n couponCode: string;\n gateway: string; // enum short name\n descGateway: string;\n\n returnUrl: string; // URL to send the customer back to. may be empty\n\n //successPayImage: string; // image url, animated\n //successPayImageFinal: string; // image url\n}\n\nexport function isSuccess(payment: Payment): boolean {\n return payment.status === \"PAID\"; // or redeemed timestmap set (status still paid)\n}\n","\nclass Store {\n protected static readonly SERIALIZE_PREFIX = \"__s\";\n\n constructor() {\n }\n\n public getItem(key: string): any {\n let value = localStorage.getItem(key);\n if (value !== null && value.substr(0, Store.SERIALIZE_PREFIX.length) === Store.SERIALIZE_PREFIX)\n value = this.unserialize(value);\n return value;\n }\n\n public setItem(key: string, value: any) {\n if (typeof value !== \"string\")\n value = this.serialize(value); // localStorage only supports strings\n localStorage.setItem(key, value);\n }\n\n public removeItem(key: string) {\n localStorage.removeItem(key);\n }\n\n public clear() {\n localStorage.clear();\n }\n\n public getLength() {\n return localStorage.length;\n }\n\n public keyName(index: number) {\n return localStorage.key(index);\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected serialize(value: any): string {\n return Store.SERIALIZE_PREFIX + JSON.stringify(value);\n }\n\n protected unserialize(value: string): any {\n if (value && value.substr(0, Store.SERIALIZE_PREFIX.length) === Store.SERIALIZE_PREFIX)\n value = value.substr(Store.SERIALIZE_PREFIX.length);\n return JSON.parse(value);\n }\n}\n\nexport const store = new Store(); // export a singleton\n","import {logger} from \"../utils/Log\";\nimport {AbstractGateway} from \"./AbstractGateway\";\nimport {JqueryApp} from \"../JqueryApp\";\nimport {PaymentChargeResponse} from \"../structs/Payment\";\n\nexport class GatewayUs extends AbstractGateway { // PayStack\n constructor(app: JqueryApp) {\n super(app);\n }\n\n public async connectForm() {\n const config = this.app.getConfig();\n if (!config.gateway || !config.gateway.key) {\n window.alert(this.app.getTr().get(\"gatewayConfigError\"));\n return;\n }\n const {loadStripe} = await import('@stripe/stripe-js'); // code splitting\n const stripe = await loadStripe(config.gateway.key);\n //stripe.confirmCardPayment(paymentIntent.client_secret);\n\n const elements = stripe.elements();\n\n // Create individual Elements\n const style = {\n base: {\n color: \"#32325d\",\n fontFamily: 'Arial, sans-serif',\n fontSmoothing: \"antialiased\",\n fontSize: \"16px\",\n lineHeight: \"40px\",\n //border: \"1px solid #e5e6e7\", // doesn't work, needs JS\n \"::placeholder\": {\n color: \"#aab7c4\"\n }\n },\n invalid: {\n color: \"#cf0d17\",\n iconColor: \"#fa755a\"\n }\n };\n\n const cardNumber = elements.create('cardNumber', { style });\n const cardExpiry = elements.create('cardExpiry', { style });\n const cardCvc = elements.create('cardCvc', { style });\n\n const nrEl = document.getElementById(\"cardNumber\");\n nrEl.style.minWidth = \"275px\";\n this.styleInput(nrEl);\n const expiryEl = document.getElementById(\"cardExpiry\");\n expiryEl.style.minWidth = \"120px\";\n this.styleInput(expiryEl);\n const cvvEl = document.getElementById(\"cvv\");\n cvvEl.style.minWidth = \"100px\";\n this.styleInput(cvvEl);\n\n // Mount the elements to the DOM\n cardNumber.mount('#cardNumber');\n cardExpiry.mount('#cardExpiry');\n //const expMonthSelect = document.getElementById('credit_expiry_month') as HTMLOptionElement; // TODO JS API for card expiry removed?\n //const expYearSelect = document.getElementById('credit_expiry_year') as HTMLOptionElement;\n cardCvc.mount('#cvv');\n\n // Handle form submission\n const form = document.getElementById('payauth-form');\n form.addEventListener('submit', async (event) => {\n event.preventDefault();\n\n // Create a token\n //const expMonth = expMonthSelect.value;\n //const expYear = expYearSelect.value;\n const { token, error } = await stripe.createToken(cardNumber, {\n //exp_month: expMonth,\n //exp_year: expYear\n });\n\n if (error && error.message) {\n document.getElementById('card-errors').textContent = error.message;\n return;\n }\n //console.log('Token created:', token.id);\n\n // Send the token to your server\n this.sendPaymentToken(token.id);\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected sendPaymentToken(token: string) {\n const config = this.app.getConfig();\n const payment = config.payment;\n const fullToken = payment.token + \"-\" + payment.merchantId;\n const url = config.apiBase + config.submitCardToken + \"/\" + fullToken;\n const data = {\n token: token,\n };\n this.webHelpers.postApi(url, data, (data: PaymentChargeResponse) => {\n if (data && data.errorUser)\n document.getElementById('card-errors').textContent = data.errorUser;\n if (data.payment && data.payment.status === \"DECLINED\") {\n window.location.reload(); // show declined and possibly other payment options\n return;\n }\n if (!data || data.error) {\n console.error(\"Error submitting card token\", data);\n return;\n }\n //console.log(\"RES\", data)\n\n if (data.payment && data.payment.status === \"PAID\") {\n window.location.assign(config.pathPayDone + \"/\" + fullToken + window.document.location.search);\n }\n }).fail((err) => {\n console.error(\"Error HTTP submitting card token\", err);\n });\n }\n\n protected styleInput(el: HTMLElement) {\n el.style.border = \"1px solid #e5e6e7\"; // Adds a border manually\n //el.style.padding = \"10px\"; // Adds padding\n //el.style.borderRadius = \"5px\"; // Rounds corners\n el.style.paddingLeft = \"10px\"; // for placeholders\n }\n}\n","import {AbstractPage} from \"./AbstractPage\";\nimport {JqueryApp} from \"./JqueryApp\";\n//import * as ProgressBar from \"progressbar.js\"\nimport * as misc from \"./utils/misc\";\nimport {logger} from \"./utils/Log\";\nimport {PaymentResponse} from \"./structs/PaymentResponse\";\nimport {CreditCard} from \"./CreditCard\";\nimport {GatewaySa} from \"./gateway/GatewaySa\";\nimport {store} from \"./utils/Store\";\nimport {Payment} from \"./structs/Payment\";\nimport {clearInterval} from \"timers\";\nimport {getBetween} from \"./utils/misc\";\nimport {GatewayUs} from \"./gateway/GatewayUs\";\n\n\nexport class Pay extends AbstractPage {\n //protected payment: PaymentResponse = null; // the latest payment status from API\n protected payment: Payment = null;\n protected gatewayUs: GatewayUs = null;\n protected gatewaySa: GatewaySa = null;\n protected cards: CreditCard = null;\n protected customerCountUpdateTimerID: number = 0;\n\n constructor(app: JqueryApp) {\n super(app);\n\n const config = this.app.getConfig();\n if (config.payment.gateway === \"st\")\n this.gatewayUs = new GatewayUs(app);\n else if (config.payment.gateway === \"ps\")\n this.gatewaySa = new GatewaySa(app);\n else\n this.cards = new CreditCard(app); // TODO only load on certain gateways\n\n if (window.Pace !== undefined) {\n /*\n window.Pace.options = { // must be done before Pace is started\n ajax: false\n }*/\n window.Pace.options.ajax = false;\n //window.Pace.restart();\n }\n\n this.app.$(window).on(\"load\", ($) => {\n //this.addButtonLinkClass();\n /*\n if (this.app.$(\".pay-preloader\").length > 0) {\n this.app.$(\".pay-preloader\").fadeOut(\"slow\");\n }\n this.webHelpers.preloadImages(config.payment.successPayImage, config.payment.successPayImageFinal);\n */\n if (this.cards !== null)\n this.cards.styleCards();\n if (this.gatewayUs !== null)\n this.gatewayUs.connectForm();\n else if (this.gatewaySa !== null)\n this.gatewaySa.connectForm();\n this.connectReturnToMerchantButton();\n this.listenPaymentReceivedFrame();\n });\n this.app.$(() => { // jQuery 3.0 \"document.ready\"\n this.addEventListeners();\n this.payment = config.payment;\n if (config.payment && config.payment.status === \"PAID\")\n this.sendPaidFrameMessage();\n this.startCustomerCountUpdateTimer();\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected addEventListeners() {\n //if (this.app.$(\"#pay-qrcode-form\").length !== 0)\n //this.addPaymentFormEvents(this.app.$(\"#pay-qrcode-form\").eq(0)); // the form after the order has been placed\n this.hightlightDescriptor();\n }\n\n protected hightlightDescriptor(): void {\n let html = this.app.$(\".charged-pay\").html();\n if (html === undefined)\n return;\n let descriptor = getBetween(html, '\"descriptor\":\"', '\"');\n if (descriptor === false)\n return;\n html = html.replace(descriptor, `${descriptor}`);\n this.app.$(\".charged-pay\").html(html);\n }\n\n\n /*\n protected showPaymentReceived() {\n //if (this.fullyPaid === true)\n //return; // already updated\n //this.fullyPaid = true;\n\n const config = this.app.getConfig();\n const tr = this.app.getTr();\n\n config.payment.status = \"PAID\";\n //clearTimeout(this.checkLocalPaymentTimerID);\n let successImage = window.document.createElement(\"img\");\n successImage.src = config.payment.successPayImage;\n successImage.alt = tr.get(\"paid\");\n successImage.id = \"pay-success-image-animated\";\n this.addSuccessImageProperties(successImage);\n setTimeout(() => {\n this.showFinalPaidImage(); // TODO remove?\n }, 1300);\n\n this.app.$(\"#pay-payment-status\").text(tr.get(\"paid\"));\n this.app.$(\"#pay-payment-pending, #pay-payment-options, #pay-pay-instructions\").fadeOut(\"slow\");\n //this.app.$(\"#pay-qr-code\").replaceWith(successImage);\n\n this.sendPaidFrameMessage();\n }\n */\n\n protected sendPaidFrameMessage() {\n const config = this.app.getConfig();\n if (this.payment === null) {\n //console.warn(\"Generating mock payment. This shouldn't happen in production!\");\n //this.payment = PaymentResponse.generateMockPayment(config.payment.token);\n console.error(\"Unable to find payment config object\")\n return;\n }\n\n // only fire once\n const paidKey = \"paid-\" + this.payment.token;\n if (store.getItem(paidKey) == true)\n return;\n store.setItem(paidKey, true);\n\n /* // unreliable on confirm page\n if (config.fullPage === true) {\n console.debug(\"Skipped sending 'paid' message in fullPage mode\");\n return;\n }\n */\n if (window.parent === window.self) {\n console.debug(\"Skipped sending 'paid' message without parent\");\n return; // should be same as fullPage === true\n }\n //let targetOrigin = config.ref || \"*\"; // send to all windows as fallback only\n let targetOrigin = \"*\"; // send to all windows as we likely navigated in the frame\n //console.debug(\"Sending 'paid' message to origin: %s\", targetOrigin);\n window.parent.postMessage({\n 'func': 'onVpayPaid',\n 'data': this.payment,\n }, targetOrigin);\n }\n\n protected connectReturnToMerchantButton() {\n const btn = this.app.$(\"#return-merchant\");\n if (btn.length === 0)\n return;\n else if (window.parent === window.self) {\n btn.fadeOut(\"fast\");\n console.log(\"Disabling return to merchant button as we are not in an iframe\");\n return;\n }\n\n // TODO cancel click timer?\n btn.on(\"click\", (e) => {\n this.disableReturnToMerchantButtonTimer();\n let targetOrigin = \"*\";\n window.parent.postMessage({\n 'func': 'onVpayReturnToMerchant',\n 'data': {},\n }, targetOrigin);\n });\n\n // only auto reload once\n const reloadKey = \"reload-\" + this.payment.token;\n if (store.getItem(reloadKey) == true)\n return;\n store.setItem(reloadKey, true);\n setTimeout(() => {\n btn.click();\n },\n 30*1000);\n }\n\n protected listenPaymentReceivedFrame() {\n //const gatewayOrigin = \"https://verified-store.org\"; // ignore messages from other frames\n const gatewayOrigin = \"verified\";\n\n const onMessage = (event) => {\n //if (event.origin !== gatewayOrigin) {\n if (event.origin.indexOf(gatewayOrigin) === -1) {\n return;\n }\n\n let data = event.data;\n if (data.func === undefined)\n return;\n if (data.func === \"onVpayStorePaid\") {\n //const payment = data.data;\n //window.location.assign(payment.return_url);\n this.app.$(\"#vpay-frame-wrap\").fadeOut();\n }\n else\n console.debug(\"Received unknwon Vpay message type: %s\", data.func);\n }\n\n if (window.addEventListener) {\n window.addEventListener(\"message\", onMessage, false);\n }\n else if ((window as any).attachEvent) {\n (window as any).attachEvent(\"onmessage\", onMessage, false);\n }\n }\n\n protected disableReturnToMerchantButtonTimer() {\n const confirmButton = $('#return-merchant');\n confirmButton.attr('disabled', \"true\");\n setTimeout(() => {\n confirmButton.removeAttr('disabled');\n }, 9000);\n }\n\n protected startCustomerCountUpdateTimer() {\n if (this.customerCountUpdateTimerID !== 0)\n return;\n this.app.$(\"#customerCount\").text(0.9 * this.app.getConfig().customerCount);\n this.customerCountUpdateTimerID = window.setInterval(() => {\n this.updateCustomerCount();\n }, 150);\n }\n\n protected updateCustomerCount() {\n const config = this.app.getConfig();\n const currentCount = parseInt(this.app.$(\"#customerCount\").text()) || 0;\n if (currentCount >= config.customerCount) {\n window.clearInterval(this.customerCountUpdateTimerID);\n return;\n }\n const step = Math.floor(config.customerCount / 120)\n let nextCount = currentCount + Math.floor(Math.random() * step);\n if (nextCount > config.customerCount)\n nextCount = config.customerCount;\n this.app.$(\"#customerCount\").text(nextCount);\n }\n\n /*\n protected showFinalPaidImage() {\n const config = this.app.getConfig();\n //let successImageFinal: HTMLImageElement = Object.assign(this.slpPayments.window.document.createElement(\"img\"), successImage); // doesn't copy attributes of native elements\n let successImageFinal = window.document.createElement(\"img\");\n successImageFinal.src = config.payment.successPayImageFinal;\n //successImageFinal.alt = this.slpPayments.getConfig().paidTxt;\n successImageFinal.id = \"pay-success-image\";\n this.addSuccessImageProperties(successImageFinal);\n this.app.$(\"#pay-success-image-animated, #pay-qr-code\").replaceWith(successImageFinal);\n\n // redirect customer back to store\n logger.verbose(\"Returning customer to URL: %s\", config.payment.returnUrl);\n if (!config.payment.returnUrl || config.payment.returnUrl.toLowerCase().indexOf(\"http\") !== 0)\n return;\n window.location.replace(config.payment.returnUrl);\n }\n */\n\n /*\n protected addSuccessImageProperties(image: HTMLImageElement) {\n image.style.maxWidth = \"300px\";\n image.style.maxHeight = \"300px\";\n image.style.width = \"100%\";\n image.style.display = \"block\";\n image.className = \"pay-center\";\n }\n */\n}\n","import {WebHelpers} from \"./utils/WebHelpers\";\n\n\nexport interface LanguageData {\n [key: string]: string; // can be string or sub-object with strings (rare)\n}\n\nexport class Localizer {\n public static readonly DEFAULT_LANG = \"en\";\n\n protected webHelpers: WebHelpers;\n protected baseUrl: string = \"/pub/locales/\"; // + {lang}.json\n protected language: string;\n protected data: LanguageData = null;\n\n /**\n * Create the translation class.\n * @param language the language to load (en, de, es, ...)\n * @param baseUrl the server to serve the {lang}.json file\n */\n constructor(webHelpers: WebHelpers, language: string, baseUrl: string = \"\") {\n this.webHelpers = webHelpers;\n this.language = language || Localizer.DEFAULT_LANG;\n if (baseUrl.length !== 0)\n this.baseUrl = baseUrl;\n }\n\n /**\n * Load the translation JSON file from server.\n */\n public async loadTranslations(): Promise {\n const langUrl = `${this.baseUrl}${this.language}.json`;\n try {\n let res = await fetch(langUrl);\n this.data = await res.json();\n console.log(this.data)\n }\n catch (err) {\n console.error(\"Error loading translation from %s\", langUrl, err);\n }\n }\n\n public loadTranslationsFromObject(key: string): void {\n if (typeof window[key] !== \"object\") {\n console.error(\"window.%s object to load translations doesn't exist\", key);\n return;\n }\n this.data = window[key];\n }\n\n /**\n * Adds the tr() function to the global window object (under the specified key as function name).\n * @param key\n */\n public exportTranslationFunctionToWindow(key: string = \"tr\"): void {\n if (window[key] !== undefined) {\n console.error(\"There already exists another translation function under the same key: %s\", key);\n return;\n }\n\n window[key] = this.get.bind(this);\n }\n\n /**\n * Get translation for a specific key.\n * @param key\n */\n public get(key: string): string {\n return this.data[key];\n }\n\n public getAll(): LanguageData {\n return this.data;\n }\n\n public setLang(lang: string): void {\n this.language = lang;\n this.webHelpers.setCookie(\"lang\", lang, this.webHelpers.getConfig().cookieLifeDays);\n document.location.reload();\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n}\n","import {AbstractPage} from \"./AbstractPage\";\nimport {JqueryApp} from \"./JqueryApp\";\n\nexport class Landing extends AbstractPage {\n protected contactValidated = false;\n\n constructor(app: JqueryApp) {\n super(app);\n\n this.app.$(() => { // jQuery 3.0 \"document.ready\"\n this.initPage();\n //this.addEventListeners();\n });\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected initPage() {\n this.app.$(\".contact-comment #comment\").removeAttr(\"required\");\n if (window.grecaptcha == undefined)\n return; // disabled\n\n this.app.$(\"#contact-form\").on(\"submit\", (event) => {\n //this.app.$(\"#submit-contact\").on(\"click\", (event) => {\n if (this.contactValidated === true)\n return;\n this.disableContactButtonTimer();\n event.preventDefault();\n grecaptcha.ready(() => {\n grecaptcha.execute(this.app.getConfig().reCaptchaKey, {action: 'submit'}).then((token) => {\n this.app.$(\"#contact-token\").val(token);\n this.contactValidated = true;\n this.app.$(\"#contact-form\").submit();\n });\n });\n });\n }\n\n protected disableContactButtonTimer() {\n const confirmButton = $('#submit-contact');\n confirmButton.attr('disabled', \"true\");\n setTimeout(() => {\n confirmButton.removeAttr('disabled');\n }, 6000);\n }\n}\n","import {AbstractPage} from \"./AbstractPage\";\nimport {JqueryApp} from \"./JqueryApp\";\nimport {format} from \"./utils/misc\";\n\n// required lang keys: dateTimeFormatLocale: YYYY-MM-DD HH:mm:ss // use date.toLocaleString() instead\n// justNow, minAgo, hourAgo\n\n// optional: \"timezone_diff\":-60 // offset to UTC0 in minutes\n\nexport class Timestamps extends AbstractPage {\n protected timezoneDiffMin: number = 0;\n protected updateTimestampsTimer: number | null = null;\n protected unixTimestampAttr: string;\n\n constructor(app: JqueryApp, timezoneDiffMin: number = 0, unixTimestampAttr: string = \"data-time\") {\n super(app);\n this.timezoneDiffMin = timezoneDiffMin;\n this.unixTimestampAttr = unixTimestampAttr;\n }\n\n public updateTimestamps() {\n //const nowLocal = new Date();\n //const timestamp = this.getServerDate(); // use if server time is not GMT0\n const timestamp = Date.now() / 1000;\n const $ = this.app.$;\n const tr = this.app.getTr();\n\n $('.' + this.unixTimestampAttr).each((i, el) => {\n const $el = $(el);\n const added = $el.attr(this.unixTimestampAttr) as unknown as number;\n if (added == 0) // keep server value (might be \"n/a\" or \"unknown\"...)\n return;\n let diff = timestamp - added;\n let displayDate = \"\";\n if (diff > 0) {\n const showFullDate = $el.hasClass(\"date-full\");\n if (diff <= 60*60 && !showFullDate) {\n let minAgo = this.toInt(diff/60);\n if (minAgo < 1)\n displayDate = tr.get(\"justNow\");\n else\n displayDate = format(tr.get(\"minAgo\"), minAgo.toString());\n }\n else if (diff <= 24*60*60 && !showFullDate)\n displayDate = format(tr.get(\"hourAgo\"), this.toInt(diff/(60*60)).toString());\n else {\n // else: update to regular datetime formats using user locale\n displayDate = new Date(added*1000).toLocaleString();\n }\n }\n if (displayDate != \"\")\n $(el).html(displayDate);\n });\n }\n\n public updateTimestampsRepeating() {\n const $ = this.app.$;\n if (this.updateTimestampsTimer !== null) {\n clearTimeout(this.updateTimestampsTimer);\n this.updateTimestampsTimer = null;\n }\n if ($('.' + this.unixTimestampAttr).length === 0)\n return;\n this.updateTimestamps();\n this.updateTimestampsTimer = this.app.getWebHelpers().window.setTimeout(this.updateTimestampsRepeating.bind(this), 60*1000);\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected getServerDate(ms: boolean = false) {\n const date = new Date();\n let msDate = date.getTime() + (date.getTimezoneOffset()-this.timezoneDiffMin)*60000;\n return ms === true ? msDate : msDate/1000;\n }\n\n protected toInt(number: number) {\n if (number < 0)\n return Math.ceil(number);\n return Math.floor(number);\n }\n}\n","import {WebHelpers} from \"./utils/WebHelpers\";\nimport {AppMessage, AppMessageType} from \"./ui/AppMessage\";\nimport * as misc from \"./utils/misc\";\nimport {Merchant} from \"./Merchant\";\n//import {Statistics} from \"./Statistics\"; // use dynamic import because amcharts is too big for non-merchants\nimport {Pay} from \"./Pay\";\nimport {logger} from \"./utils/Log\";\nimport {Localizer} from \"./Localizer\";\nimport {Landing} from \"./Landing\";\nimport {Payment} from \"./structs/Payment\";\nimport {AbstractPage} from \"./AbstractPage\";\nimport {PlotConfig} from \"./Statistics\";\nimport {Timestamps} from \"./Timestamps\";\n\nexport interface AppConfig {\n // PAY page\n pathPay: string;\n pathPayDone: string;\n pathUpdatePayment: string;\n pathPayRefresh: string;\n submitCardToken: string;\n pathCardEvent: string;\n apiBase: string;\n ref: string; // referer\n reCaptchaKey: string;\n numDecimals: number; // 2\n checkStatusIntervalSec: number;\n maxCheckStatusCount: number;\n customerCount: number;\n\n // on Pay (payment) page\n fullPage: boolean; // true = full page payment, false = iframe\n payment: Payment;\n gateway: {\n key: string;\n }\n\n // Account page\n balance: number; // balance in merchant wallet\n\n // Refund page\n exchangeRate?: number;\n\n // Statistics pages\n plot: PlotConfig;\n\n // localizations\n tr: {\n // TODO can be removed in favor of new Localizer.ts\n close: string;\n confirmSignatures: string;\n updating: string;\n }\n\n cookieLifeDays: number;\n cookiePath: string;\n cookieHost: string;\n siteUrl: string;\n}\n\nexport type PageType = \"landing\" | \"merchant\" | \"pay\";\n\nexport class JqueryApp {\n protected static readonly TEXT_FIELDS = [\"wp-address\", \"private-key\", \"token-id\", \"reward-amount\",\n \"wc-api-key\", \"wc-api-secret\"];\n\n public readonly $: JQueryStatic;\n protected readonly config: AppConfig;\n protected readonly webHelpers: WebHelpers;\n protected readonly localizer: Localizer;\n protected readonly landing: Landing;\n protected readonly merchant: Merchant;\n protected statistics: AbstractPage; // Statistics // TODO dynamic import type?\n protected readonly pay: Pay;\n\n protected readonly pageType: PageType;\n\n constructor($: JQueryStatic) {\n this.$ = $;\n this.config = (window as any).vpayCfg || {};\n if (!this.config.cookieHost)\n this.config.cookieHost = window.location.host;\n\n this.webHelpers = new WebHelpers(window as any, this.$, this.config);\n const lang = this.webHelpers.getCookie(\"lng\");\n this.localizer = new Localizer(this.webHelpers, lang, `${document.location.origin}/pub/locales/`);\n this.localizer.loadTranslationsFromObject(\"vpayTr\");\n this.localizer.exportTranslationFunctionToWindow();\n\n AppMessage.setJquery(this.$);\n AppMessage.setLocales(this.config.tr);\n\n // create the class and bind events based on the page we are on\n this.pageType = this.getPageType();\n logger.info(\"%s page loading\", this.pageType);\n switch (this.pageType)\n {\n case \"merchant\":\n this.merchant = new Merchant(this);\n (async () => {\n //const { Merchant } = await import(\"./Merchant\"); // 1KB bundle, not worth splitting\n //this.merchant = new Merchant(this);\n\n if(this.$(\"#chartdiv\").length !== 0) {\n const { Statistics } = await import(\"./Statistics\"); // 466KB\n this.statistics = new Statistics(this);\n }\n })();\n break;\n case \"landing\":\n this.landing = new Landing(this);\n break;\n case \"pay\":\n this.pay = new Pay(this);\n break;\n default:\n misc.assertUnreachableCode(this.pageType);\n }\n this.$(() => {\n this.setupBoostrapFramework();\n const ts = new Timestamps(this, 0, \"data-unix\");\n ts.updateTimestampsRepeating();\n });\n }\n\n public getConfig() {\n return this.config;\n }\n\n public getWebHelpers() {\n return this.webHelpers;\n }\n\n public getTr() {\n return this.localizer;\n }\n\n // ################################################################\n // ###################### PRIVATE FUNCTIONS #######################\n\n protected getPageType(): PageType {\n // must be checked before landing-area\n if (this.$(\"body\").hasClass(\"page-pay\") === true)\n return \"pay\";\n else if (this.$(\"body\").hasClass(\"landing-area\") === true)\n return \"landing\";\n else if (this.$(\"body\").hasClass(\"merchant-area\") === true)\n return \"merchant\";\n throw new Error(\"Unknown page type on body: \" + this.$(\"body\").attr(\"class\"));\n }\n\n protected setupBoostrapFramework() {\n const $ = this.$('[data-toggle=\"tooltip\"]') as any;\n $.tooltip();\n }\n}\n","import {JqueryApp} from \"./src/JqueryApp\";\n\nlet jqApp = new JqueryApp(jQuery);\n// export it so that the API is accessible to other libraries\n// this is optional\n(window as any).verifiedPay = jqApp;\n"],"names":["inProgress","dataWebpackPrefix","exports","formatArgs","args","this","useColors","namespace","module","humanize","diff","c","color","splice","index","lastC","replace","match","save","namespaces","storage","setItem","removeItem","error","load","r","getItem","process","env","DEBUG","window","type","__nwjs","navigator","userAgent","toLowerCase","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","localStorage","localstorage","destroy","warned","warn","colors","log","debug","formatters","j","v","JSON","stringify","message","createDebug","prevTime","enableOverride","enabled","self","curr","Number","Date","ms","prev","coerce","unshift","format","formatter","val","call","apply","selectColor","extend","Object","defineProperty","enumerable","configurable","get","set","init","delimiter","newDebug","toNamespace","regexp","toString","substring","length","default","Error","stack","disable","names","map","skips","join","enable","i","split","len","push","substr","name","test","keys","forEach","key","hash","charCodeAt","Math","abs","s","m","h","d","plural","msAbs","n","isPlural","round","options","str","String","exec","parseFloat","parse","isFinite","long","fmtShort","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","Array","arguments","prototype","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","app","webHelpers","getWebHelpers","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","o","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","url","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","event","onerror","onload","doneFns","parentNode","removeChild","fn","bind","target","head","appendChild","Symbol","toStringTag","value","scriptUrl","importScripts","location","currentScript","p","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","id","chunkLoadingGlobal","$","config","cssSelectors","setConfig","getConfig","getBrowserLang","language","getCookie","c_name","x","y","ARRcookies","cookie","indexOf","decodeURI","setCookie","expireDays","date","getTime","cookieLifeDays","toUTCString","cookiePath","cookieHost","removeCookie","fromBase64","atob","toBase64","btoa","translate","text","variables","safeHtml","start","end","charAt","placeHolder","translation","tr","textPiece","escapeOutput","reg","convertNewlines","escapeRegex","isAppleIOS","MSStream","getAllCssSelectors","cached","originRegex","origin","styleSheets","sheet","href","rules","selectorText","imports","err","isExistingCssSelector","selector","selectors","addParamToUrl","urlStr","overwrite","search","queryParam","getApi","path","callback","dataType","fixRelativeUrl","textStatus","jqXHR","postApi","post","postJson","that","ajax","contentType","accepts","json","method","success","errorThrown","preloadImages","urls","image","alt","fullUrl","siteUrl","canDismiss","AppMessage","counter","display","append","toHtml","animate","scrollTop","locales","close","setJquery","setLocales","string","NS_BASE","logger","trace","verbose","info","selectorPrefix","handleDropdownTitle","handleCheckboxChange","el","boxes","getTr","eq","is","each","attr","checkedValues","filter","AbstractPage","multiDropdown","MultiDropdown","initPage","addEventListeners","togglePayoutMethodInputs","onRefundAmountChange","confirm","preventDefault","amount","gatewayAmount","exchangeRate","toFixed","fadeOut","fadeIn","action","time","CardEvent","autoSend","send","setWebHelpers","setAutoSend","setMessage","apiBase","pathCardEvent","tx_id","payment","token","merchantId","validated","expiryMonth","expiryYear","expiryField","changedMonth","changedYear","removeAttr","styleCards","form","width","height","cardNumber","cardNumberField","cvvNumberField","CVV","mastercard","visa","amex","payform","removeClass","validateCardNumber","addClass","showCardError","removeCardError","parseCardType","validateCardCVC","validateExpiration","isCardValid","isCvvValid","isValidExpiry","clearCardError","disablePayButtonTimer","trigger","validateCardExpiry","confirmButton","errLabel","html","t","getOwnPropertySymbols","a","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","iterator","constructor","TypeError","writable","propertyIsEnumerable","slice","from","cookieTestUrl","publishableKey","publicKey","applePayVersion","applePayValidateSessionPath","applePayChargePath","C","checkoutUrl","paymentBaseUrl","paystackApiUrl","pusherKey","pusherUrl","encodeURIComponent","attributes","nodeName","b","k","borderRadius","padding","locale","w","M","headers","accept","referrerPolicy","mode","credentials","P","isArray","V","biannually","annually","toUpperCase","L","protocol","ApplePaySession","supportsVersion","S","includes","E","T","querySelector","_","q","channels","styles","applePay","addEventListener","remove","then","webpackJsonp","theme","styleSheet","cssText","createTextNode","catch","classList","add","I","z","H","required","types","or","override","metadata","referrer","card","bank","to","values","U","N","platform","userAgentData","R","D","initializeLog","attempts","authentication","errors","history","start_time","now","time_spent","mobile","input","getTimeSpent","logAPIResponse","status","logApiSuccess","logApiError","logValidationResponse","saveLog","logAttempt","response","Authorization","fetch","body","payload","B","merchant_key","saveIpAddress","Z","F","requestInline","accessCode","URL","urlParameters","transaction_status","access_code","assign","W","issues","find","validTypes","parameters","authorizationUrl","isActive","onError","onLoad","onSuccess","onCancel","onClose","onBankTransferConfirmationPending","callbacks","deprecatedCallbacks","logError","customer","cancel","J","K","Q","G","Y","X","sort","checkoutIframe","contentWindow","postMessage","params","ne","oe","re","ie","ce","floor","random","transactions","isOpen","isLoaded","isDeprecatedApi","isEmbed","isPaymentRequest","container","paymentRequestContainer","paymentRequestTransaction","preCheckoutModal","backgroundIframe","open","write","registerListeners","source","respondToEvent","respondToEmbedEvents","newTransaction","activeTransaction","preloadTransaction","inlineTransaction","zIndex","querySelectorAll","getComputedStyle","isNaN","pop","merchant_logo","merchant_name","email","currency","innerHTML","innerText","textContent","O","registerPreCheckoutModalEventListeners","registerPaymentRequestEventListeners","closePreCheckoutModal","animateCheckoutIn","onSetupError","isSameNode","onclick","sendAnalyticsEventToCheckout","closePreCheckoutModalAndCancelTransaction","cancelTransaction","preload","onElementsMount","loadPaystackCheckoutButton","finally","startApplePay","registerApplePayEventListener","firstChild","A","channel","paymentMethod","timeSpent","merchantName","interval","plan_details","countryCode","currencyCode","merchantCapabilities","supportedNetworks","requiredBillingContactFields","total","label","trim","lineItems","onvalidatemerchant","transactionId","validationURL","domainName","hostname","transaction","sessionUrl","displayName","completeMerchantValidation","oncancel","onpaymentauthorized","paymentObject","completePayment","STATUS_SUCCESS","STATUS_FAILURE","begin","getElementById","setStatus","visibility","opacity","removeAttribute","className","position","openIframe","parentElement","tagName","se","le","buttonId","buttonText","buttonVariant","buttonWordmarkVariant","pe","inlineId","normal","light","variant","wordmarkVariant","parent","insertBefore","nextSibling","next","return","resumeTransaction","reference","submit","sendSizeFrameMessage","ps","checkPaymentStatusTimer","paymentCheckStatusCount","connectForm","paymentForm","sendPayment","GatewaySa","FRAME_SIZE","gateway","tx","amountGateway","ref","descGateway","checkPaymentStatus","removeGrayOverlay","pingPayment","scheduleCheckPayment","alert","fullToken","pathUpdatePayment","maxCheckStatusCount","pathPayRefresh","pathPayDone","fail","checkStatusIntervalSec","$el","popup","detach","css","AbstractGateway","store","Store","SERIALIZE_PREFIX","unserialize","serialize","clear","getLength","keyName","loadStripe","stripe","elements","base","fontFamily","fontSmoothing","fontSize","lineHeight","invalid","iconColor","create","cardExpiry","cardCvc","nrEl","minWidth","styleInput","expiryEl","cvvEl","mount","createToken","sendPaymentToken","submitCardToken","errorUser","reload","border","paddingLeft","gatewayUs","gatewaySa","cards","customerCountUpdateTimerID","GatewayUs","CreditCard","Pace","connectReturnToMerchantButton","listenPaymentReceivedFrame","sendPaidFrameMessage","startCustomerCountUpdateTimer","hightlightDescriptor","descriptor","startTxt","endTxt","startPos","preStart","prestartTxt","searchText","caseInsensitive","toLocaleLowerCase","endPos","getBetween","paidKey","btn","disableReturnToMerchantButtonTimer","reloadKey","click","onMessage","func","attachEvent","customerCount","setInterval","updateCustomerCount","currentCount","clearInterval","step","nextCount","baseUrl","Localizer","DEFAULT_LANG","loadTranslations","langUrl","res","loadTranslationsFromObject","exportTranslationFunctionToWindow","getAll","setLang","lang","contactValidated","grecaptcha","disableContactButtonTimer","ready","execute","reCaptchaKey","timezoneDiffMin","unixTimestampAttr","updateTimestampsTimer","updateTimestamps","timestamp","added","displayDate","showFullDate","hasClass","minAgo","toInt","toLocaleString","updateTimestampsRepeating","getServerDate","msDate","getTimezoneOffset","number","ceil","vpayCfg","host","WebHelpers","localizer","pageType","getPageType","merchant","Merchant","Statistics","statistics","landing","Landing","pay","Pay","setupBoostrapFramework","Timestamps","tooltip","TEXT_FIELDS","jqApp","JqueryApp","jQuery","verifiedPay"],"sourceRoot":""}