UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

116 lines (115 loc) 3.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getInputMode = getInputMode; exports.getMask = getMask; exports.getWidth = getWidth; exports.hasVariableMask = hasVariableMask; var _push = _interopRequireDefault(require("core-js-pure/stable/instance/push.js")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const norwegianBbanMask = [/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/]; const norwegianBbanMaskNoFormat = Array.from({ length: 11 }, () => /\d/); const swedishBbanMask = [/\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/]; const swedishBbanMaskNoFormat = Array.from({ length: 14 }, () => /\d/); const swedishBankgiroMaskDigitsOnly = Array.from({ length: 8 }, () => /\d/); function buildSwedishBankgiroMask(value) { var _value$replace; const digits = (_value$replace = value === null || value === void 0 ? void 0 : value.replace(/[^0-9]/g, '')) !== null && _value$replace !== void 0 ? _value$replace : ''; if (digits.length === 7) { return [/\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/, /\d/]; } if (digits.length === 8) { return [/\d/, /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]; } return swedishBankgiroMaskDigitsOnly; } const swedishPlusgiroMaskDigitsOnly = Array.from({ length: 8 }, () => /\d/); function buildSwedishPlusgiroMask(value) { var _value$replace2; const digits = (_value$replace2 = value === null || value === void 0 ? void 0 : value.replace(/[^0-9]/g, '')) !== null && _value$replace2 !== void 0 ? _value$replace2 : ''; if (digits.length >= 2 && digits.length <= 8) { const maxDigits = 8; const dashPosition = digits.length - 1; const mask = []; for (let i = 0; i < maxDigits; i++) { if (i === dashPosition) { (0, _push.default)(mask).call(mask, '-'); } (0, _push.default)(mask).call(mask, /\d/); } return mask; } return swedishPlusgiroMaskDigitsOnly; } const ibanMask = buildIbanMask(); function buildIbanMask() { const alphanumeric = /[A-Za-z0-9]/; const mask = []; for (let i = 0; i < 34; i++) { if (i > 0 && i % 4 === 0) { (0, _push.default)(mask).call(mask, ' '); } (0, _push.default)(mask).call(mask, alphanumeric); } return mask; } const ibanMaskNoFormat = Array.from({ length: 34 }, () => /[A-Za-z0-9]/); function getMask(bankAccountType, omitMask, value) { if (omitMask) { switch (bankAccountType) { case 'swedishBban': return swedishBbanMaskNoFormat; case 'swedishBankgiro': return swedishBankgiroMaskDigitsOnly; case 'swedishPlusgiro': return swedishPlusgiroMaskDigitsOnly; case 'iban': return ibanMaskNoFormat; case 'norwegianBban': default: return norwegianBbanMaskNoFormat; } } switch (bankAccountType) { case 'swedishBban': return swedishBbanMask; case 'swedishBankgiro': return buildSwedishBankgiroMask(value); case 'swedishPlusgiro': return buildSwedishPlusgiroMask(value); case 'iban': return ibanMask; case 'norwegianBban': default: return norwegianBbanMask; } } function getInputMode(bankAccountType) { if (bankAccountType === 'iban') { return 'text'; } return 'numeric'; } function getWidth(bankAccountType) { switch (bankAccountType) { case 'iban': return 'large'; default: return 'medium'; } } function hasVariableMask(bankAccountType) { return bankAccountType === 'swedishBankgiro' || bankAccountType === 'swedishPlusgiro'; } //# sourceMappingURL=masks.js.map