UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

50 lines (49 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertMaskToPlaceholder = convertMaskToPlaceholder; exports.isArray = isArray; exports.isNil = isNil; exports.isNumber = isNumber; exports.isString = isString; exports.processCaretTraps = processCaretTraps; var _push = _interopRequireDefault(require("core-js-pure/stable/instance/push.js")); var _constants = require("./constants.js"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const emptyArray = []; function convertMaskToPlaceholder(mask = emptyArray, placeholderChar = _constants.placeholderChar) { if (!isArray(mask)) { throw new Error('Text-mask:convertMaskToPlaceholder; The mask property must be an array.'); } if (mask.indexOf(placeholderChar) !== -1) { throw new Error('Placeholder character must not be used as part of the mask. Please specify a character ' + 'that is not present in your mask as your placeholder character.\n\n' + `The placeholder character that was received is: ${JSON.stringify(placeholderChar)}\n\n` + `The mask that was received is: ${JSON.stringify(mask)}`); } return mask.map(char => char instanceof RegExp ? placeholderChar : String(char)).join(''); } function isArray(value) { return Array.isArray && Array.isArray(value) || value instanceof Array; } function isString(value) { return typeof value === 'string' || value instanceof String; } function isNumber(value) { return typeof value === 'number' && Number.isFinite(value); } function isNil(value) { return typeof value === 'undefined' || value === null; } const strCaretTrap = '[]'; function processCaretTraps(mask) { const indexes = []; let indexOfCaretTrap; while (indexOfCaretTrap = mask.indexOf(strCaretTrap), indexOfCaretTrap !== -1) { (0, _push.default)(indexes).call(indexes, indexOfCaretTrap); mask.splice(indexOfCaretTrap, 1); } return { maskWithoutCaretTraps: mask, indexes }; } //# sourceMappingURL=utilities.js.map