@taiga-ui/addon-commerce
Version:
Extension package for Taiga UI related to commerce, payment systems, currencies etc.
101 lines (93 loc) • 2.35 kB
JavaScript
import { tuiIsCardLengthValid, tuiIsCardNumberValid } from '@taiga-ui/addon-commerce/utils';
import { TUI_DIGIT_REGEXP, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
import { maskitoDateOptionsGenerator } from '@maskito/kit';
const tuiDefaultCardValidator = (card) => card.length > 11 && tuiIsCardLengthValid(card) && tuiIsCardNumberValid(card);
const TUI_MASK_CARD = {
mask: [
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
CHAR_NO_BREAK_SPACE,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
CHAR_NO_BREAK_SPACE,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
CHAR_NO_BREAK_SPACE,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
CHAR_NO_BREAK_SPACE,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
TUI_DIGIT_REGEXP,
],
};
const MAP = {
А: 'F',
В: 'D',
Г: 'U',
Д: 'L',
Е: 'T',
З: 'P',
И: 'B',
Й: 'Q',
К: 'R',
Л: 'K',
М: 'V',
Н: 'Y',
О: 'J',
П: 'G',
Р: 'H',
С: 'C',
Т: 'N',
У: 'E',
Ф: 'A',
Ц: 'W',
Ч: 'X',
Ш: 'I',
Щ: 'O',
Ы: 'S',
Ь: 'M',
Я: 'Z',
};
function toEnglishUppercase(value) {
return value
.toUpperCase()
.split('')
.map((char) => MAP[char] || char)
.join('');
}
const TUI_MASK_CARD_HOLDER = {
mask: /^[a-z\s]+$/i,
preprocessors: [
({ elementState, data }) => {
const { value, selection } = elementState;
return {
elementState: {
selection,
value: toEnglishUppercase(value),
},
data: toEnglishUppercase(data),
};
},
],
};
const TUI_MASK_CVC = (length) => ({
mask: new Array(length).fill(TUI_DIGIT_REGEXP),
});
const TUI_MASK_EXPIRE = maskitoDateOptionsGenerator({
mode: 'mm/yy',
separator: '/',
});
/**
* Generated bundle index. Do not edit.
*/
export { TUI_MASK_CARD, TUI_MASK_CARD_HOLDER, TUI_MASK_CVC, TUI_MASK_EXPIRE, tuiDefaultCardValidator };
//# sourceMappingURL=taiga-ui-addon-commerce-constants.mjs.map