UNPKG

@taiga-ui/addon-commerce

Version:

Extension package for Taiga UI related to commerce, payment systems, currencies etc.

105 lines 11.2 kB
// https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN) export const TUI_BIN_TABLE = [ ['mir', 2200, 2204], ['mastercard', 2221, 2720], ['jcb', 3528, 3589], ['amex', 34], ['amex', 37], ['dinersclub', 36], ['electron', 4026], ['electron', 4175], ['electron', 4405], ['electron', 4508], ['electron', 4844], ['electron', 4913], ['electron', 4917], ['visa', 4], ['verve', 506099, 506198], ['verve', 507865, 507964], ['maestro', 5018], ['maestro', 5020], ['maestro', 5038], ['maestro', 5090], ['maestro', 5890], ['maestro', 5893], ['rupay', 508], ['maestro', 50], ['mastercard', 51, 55], ['maestro', 56], ['maestro', 58], ['mastercard', 5], ['maestro', 6000], ['maestro', 6304], ['maestro', 6759, 6763], ['verve', 650002, 650027], ['maestro', 676770], ['maestro', 676774], ['discover', 644, 649], ['discover', 6011], ['rupay', 60], ['unionpay', 62], ['discover', 65], ['maestro', 6], ['rupay', 81, 82], ['uzcard', 8600], ['humo', 9860], ]; export function tuiGetPaymentSystem(cardNumber, supported) { if (!cardNumber) { return null; } const row = TUI_BIN_TABLE.find(([paymentSystem, start, end = start]) => { const cardNumberNumeric = Number.parseInt(cardNumber.slice(0, String(start).length), 10); const match = cardNumberNumeric >= start && cardNumberNumeric <= end; return match && (!supported?.length || supported.includes(paymentSystem)); }); return row?.[0] ?? null; } export function tuiIsMaestro(three, two, one) { if (one === 6) { return true; } if (two === 50 || (two > 55 && two < 59)) { return true; } if (three < 500) { return false; } return three < 510; } export function tuiIsMastercard(four, two, one) { if (one === 5) { return true; } if (two < 10) { return false; } if (two > 50 && two < 56) { return true; } if (four < 1000) { return false; } return four > 2220 && four < 2721; } export function tuiIsMir(four) { return four > 2199 && four < 2205; } export function tuiIsElectron(four) { switch (four) { case 4026: case 4175: case 4405: case 4508: case 4844: case 4913: case 4917: return true; default: return false; } } export function tuiIsVisa(one) { return one === 4; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBheW1lbnQtc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY29tbWVyY2UvdXRpbHMvZ2V0LXBheW1lbnQtc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBRXRCO0lBQ0EsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNuQixDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQzFCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDbkIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ1osQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQ1osQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNsQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDbEIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ2xCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNsQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDbEIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ2xCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNsQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDekIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQ2pCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQztJQUNqQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7SUFDakIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQ2pCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FB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QUFJLEdBQUcsR0FBRyxFQUFFLEVBQUU7UUFDdEIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksSUFBSSxHQUFHLElBQUksRUFBRTtRQUNiLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBWTtJQUNqQyxPQUFPLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3RDLFFBQVEsSUFBSSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssSUFBSSxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssSUFBSSxDQUFDO1FBQ1YsS0FBSyxJQUFJO1lBQ0wsT0FBTyxJQUFJLENBQUM7UUFDaEI7WUFDSSxPQUFPLEtBQUssQ0FBQztLQUNwQjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDakMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R5cGUgVHVpUGF5bWVudFN5c3RlbX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3R5cGVzJztcblxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUGF5bWVudF9jYXJkX251bWJlciNJc3N1ZXJfaWRlbnRpZmljYXRpb25fbnVtYmVyXyhJSU4pXG5leHBvcnQgY29uc3QgVFVJX0JJTl9UQUJMRTogUmVhZG9ubHlBcnJheTxcbiAgICBbcGF5bWVudFN5c3RlbTogVHVpUGF5bWVudFN5c3RlbSwgc3RhcnQ6IG51bWJlciwgZW5kPzogbnVtYmVyXVxuPiA9IFtcbiAgICBbJ21pcicsIDIyMDAsIDIyMDRdLFxuICAgIFsnbWFzdGVyY2FyZCcsIDIyMjEsIDI3MjBdLFxuICAgIFsnamNiJywgMzUyOCwgMzU4OV0sXG4gICAgWydhbWV4JywgMzRdLFxuICAgIFsnYW1leCcsIDM3XSxcbiAgICBbJ2RpbmVyc2NsdWInLCAzNl0sXG4gICAgWydlbGVjdHJvbicsIDQwMjZdLFxuICAgIFsnZWxlY3Ryb24nLCA0MTc1XSxcbiAgICBbJ2VsZWN0cm9uJywgNDQwNV0sXG4gICAgWydlbGVjdHJvbicsIDQ1MDhdLFxuICAgIFsnZWxlY3Ryb24nLCA0ODQ0XSxcbiAgICBbJ2VsZWN0cm9uJywgNDkxM10sXG4gICAgWydlbGVjdHJvbicsIDQ5MTddLFxuICAgIFsndmlzYScsIDRdLFxuICAgIFsndmVydmUnLCA1MDYwOTksIDUwNjE5OF0sXG4gICAgWyd2ZXJ2ZScsIDUwNzg2NSwgNTA3OTY0XSxcbiAgICBbJ21hZXN0cm8nLCA1MDE4XSxcbiAgICBbJ21hZXN0cm8nLCA1MDIwXSxcbiAgICBbJ21hZXN0cm8nLCA1MDM4XSxcbiAgICBbJ21hZXN0cm8nLCA1MDkwXSxcbiAgICBbJ21hZXN0cm8nLCA1ODkwXSxcbiAgICBbJ21hZXN0cm8nLCA1ODkzXSxcbiAgICBbJ3J1cGF5JywgNTA4XSxcbiAgICBbJ21hZXN0cm8nLCA1MF0sXG4gICAgWydtYXN0ZXJjYXJkJywgNTEsIDU1XSxcbiAgICBbJ21hZXN0cm8nLCA1Nl0sXG4gICAgWydtYWVzdHJvJywgNThdLFxuICAgIFsnbWFzdGVyY2FyZCcsIDVdLFxuICAgIFsnbWFlc3RybycsIDYwMDBdLFxuICAgIFsnbWFlc3RybycsIDYzMDRdLFxuICAgIFsnbWFlc3RybycsIDY3NTksIDY3NjNdLFxuICAgIFsndmVydmUnLCA2NTAwMDIsIDY1MDAyN10sXG4gICAgWydtYWVzdHJvJywgNjc2NzcwXSxcbiAgICBbJ21hZXN0cm8nLCA2NzY3NzRdLFxuICAgIFsnZGlzY292ZXInLCA2NDQsIDY0OV0sXG4gICAgWydkaXNjb3ZlcicsIDYwMTFdLFxuICAgIFsncnVwYXknLCA2MF0sXG4gICAgWyd1bmlvbnBheScsIDYyXSxcbiAgICBbJ2Rpc2NvdmVyJywgNjVdLFxuICAgIFsnbWFlc3RybycsIDZdLFxuICAgIFsncnVwYXknLCA4MSwgODJdLFxuICAgIFsndXpjYXJkJywgODYwMF0sXG4gICAgWydodW1vJywgOTg2MF0sXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpR2V0UGF5bWVudFN5c3RlbShcbiAgICBjYXJkTnVtYmVyPzogc3RyaW5nIHwgbnVsbCxcbiAgICBzdXBwb3J0ZWQ/OiBUdWlQYXltZW50U3lzdGVtW10sXG4pOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgaWYgKCFjYXJkTnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJvdyA9IFRVSV9CSU5fVEFCTEUuZmluZCgoW3BheW1lbnRTeXN0ZW0sIHN0YXJ0LCBlbmQgPSBzdGFydF0pID0+IHtcbiAgICAgICAgY29uc3QgY2FyZE51bWJlck51bWVyaWMgPSBOdW1iZXIucGFyc2VJbnQoXG4gICAgICAgICAgICBjYXJkTnVtYmVyLnNsaWNlKDAsIFN0cmluZyhzdGFydCkubGVuZ3RoKSxcbiAgICAgICAgICAgIDEwLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gY2FyZE51bWJlck51bWVyaWMgPj0gc3RhcnQgJiYgY2FyZE51bWJlck51bWVyaWMgPD0gZW5kO1xuXG4gICAgICAgIHJldHVybiBtYXRjaCAmJiAoIXN1cHBvcnRlZD8ubGVuZ3RoIHx8IHN1cHBvcnRlZC5pbmNsdWRlcyhwYXltZW50U3lzdGVtKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcm93Py5bMF0gPz8gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUlzTWFlc3Rybyh0aHJlZTogbnVtYmVyLCB0d286IG51bWJlciwgb25lOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAob25lID09PSA2KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0d28gPT09IDUwIHx8ICh0d28gPiA1NSAmJiB0d28gPCA1OSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRocmVlIDwgNTAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhyZWUgPCA1MTA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlJc01hc3RlcmNhcmQoZm91cjogbnVtYmVyLCB0d286IG51bWJlciwgb25lOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAob25lID09PSA1KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0d28gPCAxMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHR3byA+IDUwICYmIHR3byA8IDU2KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChmb3VyIDwgMTAwMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdXIgPiAyMjIwICYmIGZvdXIgPCAyNzIxO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNNaXIoZm91cjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZvdXIgPiAyMTk5ICYmIGZvdXIgPCAyMjA1O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVjdHJvbihmb3VyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGZvdXIpIHtcbiAgICAgICAgY2FzZSA0MDI2OlxuICAgICAgICBjYXNlIDQxNzU6XG4gICAgICAgIGNhc2UgNDQwNTpcbiAgICAgICAgY2FzZSA0NTA4OlxuICAgICAgICBjYXNlIDQ4NDQ6XG4gICAgICAgIGNhc2UgNDkxMzpcbiAgICAgICAgY2FzZSA0OTE3OlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNWaXNhKG9uZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9uZSA9PT0gNDtcbn1cbiJdfQ==