@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
50 lines (49 loc) • 2 kB
JavaScript
;
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