UNPKG

@taiga-ui/addon-commerce

Version:

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

79 lines (71 loc) 1.94 kB
import { tuiIsCardLengthValid, tuiIsCardNumberValid } from '@taiga-ui/addon-commerce/utils'; import { maskitoInitialCalibrationPlugin } from '@maskito/core'; 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 = { plugins: [maskitoInitialCalibrationPlugin()], mask: Array.from({ length: 23 }).map((_, i) => (i + 1) % 5 ? TUI_DIGIT_REGEXP : CHAR_NO_BREAK_SPACE), }; 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: Array.from({ length }, () => 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